承诺使用折扣

Compute Engine 可让您通过购买“承诺使用合约”来换取大幅度的虚拟机使用费折扣。此类折扣被称为承诺使用折扣

承诺使用折扣非常适合具有可预测资源需求的工作负载。购买承诺使用合约以后,您可以按折扣价购买一定数量的 vCPU、内存、GPU 和本地 SSD,以享受因承诺为这些资源付费 1 年或 3 年而获得的回报。对于大多数资源(如机器类型或 GPU),折扣可高达 57%。对于内存优化机器类型,折扣可高达 70%。如需查看不同机器类型的承诺使用价格,请访问虚拟机实例价格页面。

购买后,无论您是否使用这些服务,在您所选择的期限内,您都需要按月为您所购买的资源支付相关费用。如果您有可预测的工作负载,则可以通过承诺使用折扣来帮助您降低所需资源的费用。

承诺使用折扣适用于所有 Compute Engine 非共享核心机器类型,包括预定义机器类型和自定义机器类型。承诺使用折扣既简单又灵活,而且不需要支付前期费用。折扣适用于某个区域内 vCPU、内存、GPU 和本地 SSD 的总数,因此它们不受实例机器设置变更的影响。

准备工作

承诺使用折扣的运作方式

若要使用承诺使用折扣,您必须通过 Compute Engine API、gcloud 命令行工具或 Google Cloud Platform Console购买承诺使用合约。当您购买承诺使用合约后,系统会自动将其应用于您的项目在合约期间的并发使用。

您应根据自己清楚将会用到的特定资源数量来购买承诺使用合约。例如,如果您购买了 8 个核心的承诺使用合约,而您在当月运行了 24 个核心,那么只有 8 个核心将获得承诺使用折扣。另外 16 个核心将按标准的非承诺使用费率计费。请记住,购买一定数量的承诺使用合约后,即使您并未使用,也需要按月为承诺的使用量付费。例如,如果您购买了 8 个核心的承诺使用合约,则即使您可能仅在当月的一部分时间里运行了这些核心,您也需要按这 8 个核心在整个月内的承诺使用费率付费。因此,仅按照您清楚自己将会用到的增量来购买承诺使用合约将对您更为有利。

承诺使用折扣同时适用于 vCPU 和内存。您不能单独为 vCPU 或内存购买承诺使用折扣。与自定义机器类型一样,当您购买承诺使用折扣时,必须按特定增量购买内存。

不能针对用量爆发情况叠加承诺使用合约。例如,如果您为某个月购买了 10 个核心,然后在半个月内运行了 20 个核心,承诺使用合约不会因为使用时间只有半个月而适用于所有 20 个核心。

承诺使用折扣受 Google Cloud Platform (GCP) 承诺使用合约价格和结算条款的约束。购买承诺使用折扣,即表示您同意这些条款。承诺使用折扣不会续期,因此您必须创建新的承诺使用合约才能继续享受折扣。

规范

  • 只有当您拥有承诺使用合约所需的配额时,才能购买承诺使用合约。请查看“配额”页面,确保您有足够的配额来创建承诺使用合约。如果“配额”页面上未列出承诺使用合约,或者您需要额外配额,请申请增加配额

  • 您必须按区域购买承诺使用合约。

  • 如需使用 gcloud 工具管理承诺使用合约,您必须运行 147.0.0 版或更高版本。如需将 gcloud 工具更新到最新版本,请执行以下命令:

    gcloud components update
    

    如需查看您正在运行的 gcloud 工具的版本,请执行以下命令:

    gcloud version
    
  • 承诺使用折扣未涵盖的其余任何 vCPU 和内存将有资格享受持续使用折扣

限制

  • 承诺使用折扣会自动应用于 Google Kubernetes Engine、Cloud Dataproc、Compute Engine 创建的虚拟机。承诺使用折扣不适用于使用 App Engine 柔性环境、Cloud Dataflow 或 Cloud SQL 创建的虚拟机。
  • 处于免费层级期限内且拥有免费层级赠金的项目,以及没有任何付款记录的项目,均不符合承诺使用折扣的适用条件。
  • 您只能按区域购买承诺使用合约。
  • 承诺使用折扣适用于在其中购买了折扣方案的项目的使用量。
  • 承诺使用折扣不适用于抢占式虚拟机实例共享核心机器类型扩展内存
  • 您必须同时购买 vCPU 和内存承诺使用合约:
    • 对于通用承诺使用合约
      • N1 机器类型:您必须为每个 vCPU 购买 0.9 GB 到 6.5 GB 的内存。总内存大小必须是 256 MB 的整数倍。
      • (Beta 版)N2 机器类型:您必须为每个 vCPU 购买 0.5 GB 到 8 GB 的内存。总内存大小必须是 256 MB 的整数倍。
    • (Beta 版)对于内存优化承诺使用合约,您必须为每个 vCPU 购买 14 GB 到 40 GB 的内存,以适配可用内存优化机器类型的范围。总内存大小必须是 256 MB 的整数倍。
    • 对于计算优化承诺使用合约,您必须为每个 vCPU 购买 2 GB 到 4 GB 内存,以适配可用计算优化机器类型的范围。总内存大小必须是 256 MB 的整数倍。
  • 对于 GPU 和本地 SSD 的承诺使用折扣价格,您必须在购买承诺使用合约时创建预留
  • 如果某预留附加于承诺使用折扣,则在承诺使用合约期间不能删除该预留。
  • 对于 K80 GPU,您只能购买 1 年期承诺使用合约。

价格

虚拟机实例(无论是否挂接了 GPU 或本地 SSD)的承诺使用折扣价格因区域而异。如需了解当前费率,请参阅价格页面。

承诺使用合约类型

您可以为以下资源购买承诺使用合约。

承诺使用合约类型 可购买折扣的资源 适用于以下资源类型
通用 N1 承诺使用合约
  • vCPU
  • 内存
  • GPU
  • 本地 SSD
  • 预定义机器类型
    • n1-standard
    • n1-highmem
    • n1-highcpu
  • N1 自定义机器类型
  • 单租户节点
  • GPU:
    • NVIDIA® Tesla® V100
    • NVIDIA® Tesla® P100
    • NVIDIA® Tesla® P4
    • NVIDIA® Tesla® K80
通用 N2 承诺使用合约
  • vCPU
  • 内存
  • 本地 SSD
  • 预定义机器类型
    • n2-standard
    • n2-highmem
    • n2-highcpu
  • N2 自定义机器类型
  • 单租户节点
(Beta 版)内存优化承诺使用合约
  • vCPU
  • 内存
m1-ultramemm1-megamemm2-ultramem
计算优化承诺使用合约
  • vCPU
  • 内存
c2-standard

您不能为 f1-micro 机器类型、g1-small 机器类型或单租户附加费购买承诺使用合约。

适用于机器类型的承诺使用合约

您可以根据自己要使用的机器类型来购买相应的承诺使用合约类型。例如,如果您要使用 n1-standardn1-highmemn1-highcpu 机器类型中的任何一种,并且想要为这些机器类型购买承诺使用合约,则应购买通用承诺使用合约类型。

通用承诺使用合约

如果您想要为自定义机器类型、单租户节点或预定义机器类型应用承诺使用合约,则应购买通用承诺使用合约类型。根据机器类型,您必须为每个 vCPU 购买一定数量范围内(含边界值)的内存:

  • N1 机器类型:为每个 vCPU 购买 0.9 GB 到 6.5 GB 的内存
  • N2 机器类型:为每个 vCPU 购买 0.5 GB 到 8 GB 的内存

通用承诺使用合约的折扣按以下顺序应用于各资源:

  1. N1 或 N2 自定义机器类型,具体取决于您购买的承诺使用合约。
  2. 单租户节点
  3. N1 或 N2 预定义机器类型,具体取决于您购买的承诺使用合约。

当您购买通用承诺使用合约时,您需要选择合约所适用的代次。例如,如果您购买通用 N1 承诺使用合约,则其仅适用于 N1 机器类型;如果您购买通用 N2 承诺使用合约,则其仅适用于 N2 机器类型。这两种承诺使用合约绝不会重叠。

例如,假设您的区域混合使用了以下资源:

  • 10 个 N2 自定义机器类型 vCPU
  • 30 GB 自定义机器类型内存
  • 2 个 n2-standard-4 预定义机器类型

您为 15 个 vCPU 和 13.5 GB 内存购买了 N2 承诺使用合约。承诺使用折扣额度将首先应用于 N2 自定义机器类型,任何剩余的折扣额度将应用于 N2 预定义机器类型。在本示例中,所有 N2 自定义机器类型的 10 个 vCPU 都将按承诺使用合约价格付费,而 13.5 GB 的自定义机器类型内存也将按承诺使用合约价格付费。

最后,承诺使用合约中剩余的 5 个 vCPU 折扣额度将随机应用于两个 n2-standard-4 machine 类型中的任意 5 个 vCPU。承诺使用折扣未涵盖的任何资源都有资格享受持续使用折扣。

如需了解如何为通用机器类型购买承诺使用合约,请参阅为机器类型购买承诺使用合约

内存优化承诺使用合约

如果您打算使用内存优化机器类型,可购买内存优化承诺使用合约。对于内存优化机器类型,您必须为每个 vCPU 购买 14 GB 到 40 GB(含边界值)的内存

当您购买内存优化承诺使用合约时,系统将对以下机器类型应用相应折扣(没有顺序之分):

  1. n1-ultramem 机器类型
  2. n1-megamem 机器类型
  3. m2-ultramem 机器类型

如需了解如何为内存优化机器类型购买承诺使用合约,请参阅为机器类型购买承诺使用合约

计算优化承诺使用合约

如果您打算使用计算优化机器类型,可购买计算优化承诺使用合约。对于计算优化机器类型,您必须为每个 vCPU 购买 2 GB 到 4 GB(含边界值)的内存。计算优化机器类型包括所有 c2-standard 机器类型。

如需了解如何为计算优化机器类型购买承诺使用合约,请参阅为机器类型购买承诺使用合约

适用于 GPU 和本地 SSD 的承诺使用合约

如需为 GPU 或本地 SSD 购买承诺使用合约,您还必须在购买承诺使用合约时预留这些资源。预留这些资源旨在确保它们始终可供您使用(无论您是否使用它们)。预留资源不会产生任何额外费用。

您必须按特定的 GPU 类型购买承诺使用合约。例如,您可以为 Tesla P100 或 Tesla V100 购买 GPU,但不能在为 Tesla P100 GPU 购买承诺使用合约后,期望将该合约应用于其他 GPU 类型。

如需了解如何为 GPU 和本地 SSD 购买承诺使用合约,请参阅为 GPU 和本地 SSD 购买承诺使用合约

如需详细了解预留,请参阅预留地区资源

承诺使用折扣和持续使用折扣

您不能叠加使用持续使用折扣和承诺使用折扣。这两种不同的折扣类型不能应用于 vCPU 或内存 (GB) 的同一部分。

承诺使用折扣未涵盖的资源将自动获得持续使用折扣,具体取决于机器类型系列。

例如:

如果您在当月的某个时间段运行 n2-standard-2,并在同一个月的另一个时间段运行 n2-standard-8,则 Compute Engine 会将这两者合并计算,并对承诺使用折扣未涵盖的时间段应用持续使用折扣,因为这两种机器类型都属于 n2-standard 系列。

申请承诺使用合约配额

只有当您拥有承诺使用合约所需的配额时,才能购买承诺使用合约。请查看“配额”页面,确保您有足够的配额来创建承诺使用合约。

使用 gcloud 工具或 API 发出请求时,如果您没有承诺使用合约配额,服务器将返回以下错误:

"Quota 'COMMITMENTS' exceeded. Limit: 0.0"

如需在控制台中查看配额信息,请执行以下操作:

  1. 转到 Google Cloud Platform Console 中的“配额信息”页面。

    转到“配额信息”页面

  2. 展开配额类型下拉菜单,然后选择所有配额。
  3. 展开指标下拉菜单。
  4. 点击以隐藏所有配额,然后在搜索框中输入 commitments 以搜索承诺使用合约配额。
  5. 从结果列表中选择承诺

    承诺

  6. 检查所需区域的承诺使用合约配额。如果您没有承诺使用合约的配额,则配额将显示为 0

    无承诺使用合约配额。

申请承诺使用合约配额

  1. 转到 Google Cloud Platform Console 中的“配额增加”页面。

    转到“配额增加”页面

  2. 展开配额类型下拉菜单,然后选择所有配额。
  3. 展开指标下拉菜单。
  4. 点击以隐藏所有配额,然后在搜索框中输入 commitments 以搜索承诺使用合约配额。
  5. 从结果列表中选择承诺

    承诺

  6. 选中所需区域的承诺使用合约旁边的复选框,然后点击修改配额按钮。

  7. 如果出现提示,请填写您的姓名和电话号码。点击下一步

  8. 填写请求表单,然后点击下一步

  9. 点击提交请求以提交您的请求。

提高承诺资源配额

如果您没有足够的承诺 CPU、承诺本地 SSD 或承诺 GPU 配额(如 COMMITTED_NVIDIA_V100_GPUS 配额),则可以在“配额”页面申请增加配额。如需使用承诺使用合约,您还需要足够的资源配额(例如 NVIDIA_V100_GPUS)。您可以随时申请增加配额。

为机器类型购买承诺使用合约

您可以通过 GCP Console、gcloud 命令行工具或以编程方式通过 API 为机器类型购买承诺使用合约。如需为 GPU 或本地 SSD 购买承诺使用合约,请参阅为 GPU 和本地 SSD 购买承诺使用合约

购买承诺使用合约后,该合约将从次日零点开始生效。例如,在太平洋标准时间星期一下午 3 点购买的承诺使用合约将于太平洋标准时间星期二零点生效。承诺使用折扣将自动应用于您所指定区域中的适用实例。

一旦购买了承诺使用合约,您就无法取消该合约。

控制台

  1. 转到 GCP Console 中的“承诺使用折扣”页面

    转到“承诺使用折扣”页面

  2. 点击购买承诺以购买新的承诺使用合约。
  3. 为您的承诺使用合约命名,并选择您希望应用该合约的区域。
  4. 选择承诺使用合约类型。选择通用 N1(适用于 N1 类型)、通用 N2(适用于 N2 机器类型)、内存优化计算优化
  5. 选择承诺使用合约的持续时间(1 年或 3 年)。
  6. 选择承诺使用合约的输入模式:

    • (推荐)自定义输入可让您自定义 vCPU 数量和内存大小。

    • 基本输入可让您选择 vCPU 的数量,Compute Engine 将根据 vCPU 数量自动填充内存大小。

  7. 输入要购买的 vCPU 和内存的数量。每个 vCPU 的内存必须为特定比例,具体取决于您选择的折扣类型。请根据承诺使用合约的类型指定以下内存:

    • 通用 N1:为 N1 机器类型创建承诺使用合约。每个 vCPU 使用 0.9 GB 到 6.5 GB 的内存。
    • (Beta 版)通用 N2:为 N2 机器类型创建承诺使用合约。每个 vCPU 使用 0.5 GB 到 8 GB 的内存。
    • 内存优化:每个 vCPU 使用 2 GB 到 4 GB 的内存。总内存大小必须是 256 MB 的整数倍。
    • (Beta 版)内存优化:每个 vCPU 使用 14 GB 到 40 GB 的内存。
  8. 点击购买按钮以购买承诺使用合约。

  9. 阅读购买条款;如果您已准备好购买承诺使用合约,请再次点击购买

gcloud

使用 gcloud 工具,运行 beta compute commitments create 命令:

gcloud beta compute commitments create [COMMITMENT_NAME] --region [REGION] \
    --resources vcpu=[NUMBER_VCPUS],memory=[MEMORY] --plan [DURATION] \
    --type [COMMITMENT_TYPE]

其中:

  • [COMMITMENT_NAME] 是您想要用来标识此承诺使用合约的名称。
  • [REGION] 是此承诺使用合约所适用的区域。每个区域都有不同的承诺使用合约价格。如需了解当前价格,请参阅价格表
  • [NUMBER_VCPUS] 是您愿意为其购买承诺使用合约的 vCPU 数量。vCPU 的数量必须大于等于 1,可以是奇数,也可以是偶数。
  • [MEMORY] 是您愿意为其购买承诺使用合约的内存大小(以 MBGB 为单位),例如 1000MB。如果您未指定单位,则系统会默认使用 GB 单位。请根据承诺使用合约的类型指定以下内存:

    • general-purpose:为 N1 机器类型创建承诺使用合约。每个 vCPU 使用 0.9 GB 到 6.5 GB 的内存。
    • (Beta 版)general-purpose-n2:为 N2 机器类型创建承诺使用合约。每个 vCPU 使用 0.5 GB 到 8 GB 的内存。
    • (Beta 版)memory-optimized:每个 vCPU 使用 14 GB 到 40 GB 的内存。
    • compute-optimized:每个 vCPU 使用 2 GB 到 4 GB 的内存。
  • [DURATION] 是承诺使用合约的期限,只能从 12-month36-month 中选择其一。

  • [COMMITMENT_TYPE] 可为以下项之一:

    • general-purpose(适用于通用 N1 机器类型承诺使用合约)。
    • (Beta 版)general-purpose-n2(适用于通用 N2 机器类型承诺使用合约)。
    • (Beta 版)memory-optimized(适用于内存优化承诺使用合约)。
    • compute-optimized(适用于计算优化承诺使用合约)。

      如果您未指定此标志,则系统会默认使用 general-purpose

如需为 N1 机器类型创建通用承诺使用合约,您可以按照以下示例编写并执行相应命令:

gcloud compute commitments create example-commitment --region us-central1 \
    --resources vcpu=5,memory=33280MB --plan 12-month

如需创建计算优化承诺使用合约,请使用 gcloud compute commitments create 命令。以下示例为计算优化机器类型购买 1 年期合约:

gcloud compute commitments create example-compute-optimized-commitment \
    --region us-central1 --resources vcpu=2,memory=3814GB --plan 12-month \
    --type compute-optimized

如需创建内存优化承诺使用合约,请使用以下命令示例:

gcloud beta compute commitments create example-memory-optimized-commitment \
    --region us-central1 --resources vcpu=96,memory=1434MB \
    --plan 12-month --type memory-optimized

对于 GPU 和本地 SSD,如需创建承诺使用合约,您必须使用 gcloud compute commitments create 命令在购买承诺使用合约时创建预留。例如,以下承诺使用合约包括 4 个 GPU 和 1 个相关的预留,以便在 us-central1-a 的 2 个实例中使用这些 GPU。

gcloud compute commitments create example-reservation-commitment \
    --region=us-central1 \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-central1-a \
    --machine-type=n1-standard-32
    --accelerator=type=nvidia-tesla-v100,count=2 \
    --vm-count=2

API

在 API 中,向以下网址发出一个 POST 请求,其请求正文中包含有关承诺使用合约的信息:

https://compute.googleapis.com/compute/beta/projects/[PROJECT_ID]/regions/[REGION]/commitments?requestId=[OPTIONAL_UNIQUE_ID]

资源正文应包含以下内容:

  • name:表示承诺使用合约的名称。
  • plan:表示承诺使用合约的期限,只能从 TWELVE_MONTHTHIRTY_SIX_MONTH 中选择其一。
  • resources:用来指定内存大小和 vCPU 数量。必须以 MB 为单位来指定内存大小。您必须在 部分中同时指定 VCPUMEMORY
  • 承诺使用合约的 typeGENERAL_PURPOSEMEMORY_OPTIMIZEDCOMPUTE_OPTIMIZEDGENERAL_PURPOSE_N2

例如,以下示例将创建一个为期 1 年的承诺使用合约,包含 5 个 vCPU 和 18.75 GB 内存:

{
  "name": "example-commitment",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources": [
    {
    "amount": "5",
    "type": "VCPU"
    },
    {
    "amount": "19200",
    "type": "MEMORY"
    }
  ]
}

如需创建内存优化承诺使用合约,请使用 Beta 版 API 并添加 type 属性。以下示例演示了如何为 n1-megamem-96 机器类型购买 1 年期的承诺使用合约:

{
  "name": "example-memory-optimized-commitment",
  "plan": "TWELVE_MONTH",
  "type": "MEMORY_OPTIMIZED",
  "resources": [
    {
    "amount": "96",
    "type": "VCPU"
    },
    {
    "amount": "1434",
    "type": "MEMORY"
    }
  ]
}

如需创建计算优化承诺使用合约,请添加 type 属性。以下示例演示了如何为 c2-standard-16 机器类型购买 1 年期的承诺使用合约:

{
  "name": "example-compute-optimized-commitment",
  "plan": "TWELVE_MONTH",
  "type": "COMPUTE_OPTIMIZED",
  "resources": [
    {
    "amount": "16",
    "type": "VCPU"
    },
    {
    "amount": "1434",
    "type": "MEMORY"
    }
  ]
}

为 GPU 和本地 SSD 购买承诺使用合约

如需为 GPU 或本地 SSD 购买承诺使用合约,请注意以下几点:

  • 您必须购买通用 N1 承诺使用合约。GPU 仅受 N1 机器类型支持。
  • 在购买承诺使用合约时创建包含 GPU 或本地 SSD 的预留
  • 您无需在承诺使用合约中包含 vCPU 或内存。

您必须为特定的 GPU 类型购买承诺使用合约。例如,您可以购买 Tesla P100 或 Tesla V100,但不能在为 Tesla P100 GPU 购买承诺使用合约后,期望将该合约应用于其他 GPU 类型。

您预留的 GPU 和本地 SSD 的数量必须与您承诺使用合约中的数量相同。例如,如果要预留 4 个 V100 GPU,那么您的承诺使用合约中也必须包含 4 个 V100 GPU。但是,您预留的 vCPU 和内存的数量可能多于或少于您承诺使用合约中的数量。

如果您只想在承诺使用合约中包含 GPU 或本地 SSD,则可以为 vCPU 和内存承诺使用合约指定 0。但是,您附加到承诺使用合约的预留必须包含与承诺使用合约相同的 GPU 和本地 SSD,以及要预留的机器类型(包含 vCPU 和内存)。

您可以使用控制台、gcloud 工具或 API 购买包含附属预留的承诺使用合约。

控制台

  1. 转到 GCP Console 中的“承诺使用折扣”页面

    转到“承诺使用折扣”页面

  2. 点击购买承诺以购买新的承诺使用合约。
  3. 为您的承诺使用合约命名,并选择您希望应用该合约的区域。
  4. 对于承诺类型,请选择通用。
  5. 选择承诺使用合约的持续时间(1 年或 3 年)。
  6. 选择承诺使用合约的输入模式:

    • (推荐)自定义输入可让您自定义 vCPU 数量和内存大小。

    • 基本输入可让您选择 vCPU 的数量,Compute Engine 将根据 vCPU 数量自动填充内存大小。

  7. 输入要购买的 vCPU 和内存的数量。每个 vCPU 的内存必须为特定比例,具体取决于您选择的折扣类型。对于标准承诺使用折扣,每个 vCPU 使用 0.9 GB 到 6.5 GB 的内存。总内存大小必须是 256 MB 的整数倍。

    如果您只想在承诺使用合约中包含并预留 GPU 或本地 SSD,而不包含 vCPU 和内存,请为 vCPU 和内存承诺使用合约数量指定 0

  8. 点击添加 GPU,然后选择您要在承诺使用合约中包含的 GPU 类型和 GPU 数量。

  9. 点击添加本地 SSD,然后指定您要在承诺使用合约中包含的磁盘数。

  10. 点击添加新预留,为将要使用 GPU 和本地 SSD 的实例创建一个或多个预留。

    1. 为预留命名。
    2. 用于虚拟机实例下,执行以下操作:
      • 如果您只想在创建按名称明确指定此预留的匹配实例时使用此预留的资源,请选中选择特定预订
      • 如果您希望匹配实例自动使用此预留,请选择自动使用预订
    3. 选择您要预留资源的区域和地区。
    4. 指定您要预留的虚拟机实例数量
    5. 指定您要为每个实例预留的资源:
      • 如果您有实例模板,请点击使用实例模板,然后从列表中选择一个实例模板。
      • 否则,请点击指定机器类型
        1. 对于预定义机器类型,请从下拉菜单中选择所需的类型。
        2. 对于自定义机器类型(包括满足最低要求的 CPU 平台),或者,如需添加 GPU,请点击自定义并作出选择。
        3. (可选)指定您要添加到每个实例的本地 SSD 磁盘的数量,然后指定要使用的接口类型。
    6. 点击完成按钮以创建预留。
  11. 点击购买按钮以购买承诺使用合约。

  12. 阅读购买条款;如果您已准备好购买承诺使用合约,请再次点击购买

gcloud

使用 gcloud compute commmitments create 命令购买承诺使用合约,并添加用于创建附属预留的标志。

例如,以下承诺使用合约包括 4 个 GPU 和 1 个相关的新预留,以便在 us-central1-a 的 2 个 n1-standard-32 实例中使用这些 GPU。

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-central1-a \
    --machine-type=n1-standard-16 \
    --accelerator=type=nvidia-tesla-v100,count=2 \
    --vm-count=2

如果您想在承诺使用合约中包含并预留 GPU 或本地 SSD,而不包含 vCPU 和内存,请为 vCPU 和内存承诺使用合约数量指定 0

gcloud compute commitments create commitment-01 \
    --region=us-west2 \
    --resources=vcpu=0,memory=0 \
    --resources-accelerator=type=nvidia-tesla-p4,count=1 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-west2-b \
    --machine-type=n1-standard-1 \
    --accelerator=type=nvidia-tesla-p4,count=1 \
    --vm-count=1

如需在购买承诺使用合约时创建多个预留,请使用 YAML 文件。例如:

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --resources=vcpu=96,memory=624,local-ssd=750 \
    --resources-accelerator=type=nvidia-tesla-v100,count=1 \
    --plan 12-month \
    --reservations-from-file=[YAML_FILE]

其中,[YAML_FILE] 包含预留属性。

例如,以下 YAML 文件包含 2 个预留。第一个预留 res-01 包含 1 个 n1-standard-1 实例,该实例挂接了 1 个 GPU;这是一个目标预留,表示您必须明确指定其名称才能使用其预留的实例。第二个预留 res-02 包含 1 个 n1-standard-1 虚拟机实例,该实例挂接了 2 种本地 SSD。

- reservation: res-01
  reservation_zone: us-central1-a
  require_specific_reservation: true
  vm_count: 1
  machine_type: n1-standard-1
  accelerator:
  - count: 1
    type: nvidia-tesla-v100
- reservation: res-02
  reservation_zone: us-central1-a
  vm_count: 1
  machine_type: n1-standard-1
  local_ssd:
  - interface: scsi
    size: 375
  - interface: nvme
    size: 375

API

使用 regionCommitments.insert API 并添加 reservations 字段以定义预留的属性。例如,以下承诺使用合约包括 4 个 GPU 和 1 个相关的预留,以便在 us-central1-a 中的 2 个实例中使用这些 GPU。

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 2,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

如果您只想在承诺使用合约中包含并预留 GPU 或本地 SSD,而不包含 vCPU 和内存,请为 VCPUMEMORY 承诺使用合约数量指定 0。例如:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "resources":
  [
    {
      "amount": "0",
      "type": "VCPU"
    },
    {
      "amount": "0",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 2,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

只有在请求时有足够的配额,并且目标地区中有足够的资源时,才能成功创建承诺使用合约。

如果您创建的承诺使用合约附加了预留,则无法在承诺使用合约期间删除该预留。承诺使用合约到期时,Compute Engine 会自动删除所有附加预留。

如果您需要跨承诺使用合约中的预留转移 GPU 或本地 SSD,请参阅修改附加到承诺使用合约的预留

组合使用预留与承诺使用合约

承诺使用折扣提供 1 年或 3 年期折扣价格协议,但不在特定地区预留容量。预留可确保即使预留的虚拟机未运行,特定地区中仍保留有容量。通过将预留与承诺使用合约相结合,您可按折扣价使用预留资源。

对于 GPU 和本地 SSD,如需购买承诺使用合约并享受折扣价格,请在购买承诺使用合约时创建预留。对于这些资源,在承诺使用合约期间,您不能更改预留的位置和大小。

如需了解预留,请参阅将预留与承诺使用折扣相结合

修改承诺使用合约

购买承诺使用合约后,您无法更改该合约。如果您需要修改承诺使用合约,请购买新的合约,并为该资源增量设置新的到期日期。

例如,如果您要将承诺使用合约的 vCPU 数量从 10 个 vCPU 增加到 15 个 vCPU,请为增加的 vCPU 数量购买一份新的承诺使用合约。在本例中,您需要为 5 个 vCPU 购买新的承诺使用合约。

您不能减少承诺使用合约中已经购买的资源。例如,不能将针对 15 个 vCPU 的承诺使用合约更改为 10 个 vCPU。

查看有效的承诺使用合约

在控制台或 API 中查看承诺使用合约。

控制台

在 Google Cloud Platform Console 的“承诺使用折扣”页面中查看承诺使用合约列表。

转到“承诺使用折扣”页面

gcloud

使用 commitments list 命令发出请求:

gcloud compute commitments list

该工具将返回一个承诺使用合约列表:

 NAME              REGION    END_TIMESTAMP                  STATUS
 my-commitment     us-east1  2018-03-17T00:00:00.000-07:00  NOT_YET_ACTIVE

API

您可以通过向以下网址发出 aggregatedList 请求来获取所有区域中的承诺使用合约列表:

https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/aggregated/commitments

该请求将返回一个承诺使用合约列表:

"commitments": [
{
  "kind": "compute#commitment",
  "id": "3294122326373778983",
  "creationTimestamp": "2017-02-09T15:18:32.411-08:00",
  "name": "example-commitment",
  "region": "https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1",
  "selfLink": "https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/commitments/example-commitment",
  "status": "NOT_YET_ACTIVE",
  "statusMessage": "The commitment is not yet active (its startTimestamp is in the future). It will not apply to current resource usage.",
  "plan": "TWELVE_MONTH",
  "startTimestamp": "2017-02-10T00:00:00.000-08:00",
  "endTimestamp": "2018-02-10T00:00:00.000-08:00",
  "resources": [
    {
      "type": "VCPU",
      "amount": "5"
    },
    {
      "type": "MEMORY",
      "amount": "32500"
    }]
  }
]

承诺使用合约可以是以下状态之一:

  • CREATING:正在创建承诺使用合约。
  • NOT_YET_ACTIVE:承诺使用合约已创建成功但尚未生效。 承诺使用合约从次日零点开始生效。
  • ACTIVE:承诺使用合约处于有效状态。
  • EXPIRED:承诺使用合约已过期。Compute Engine 保留移除已过期 210 天或更长时间的承诺使用合约的权利。

取消承诺使用合约

承诺使用合约一旦创建就无法取消。您必须在承诺使用合约期间支付同意的每月金额。将来对 Compute Engine 资源标准价格的更改不会影响承诺使用合约。

如果您购买承诺使用合约的行为纯属意外,或者错误配置了承诺使用合约,请与 Google Cloud Platform 结算支持团队联系以获得帮助。

了解您的承诺使用折扣帐单

GCP 使用的是资产负债表帐单格式。在您的帐单上,资源的全部费用显示为一个专列项,然后是可抵消承诺使用合约实际涵盖金额的返还金额,最后是您实际支付的承诺使用合约费用。请通过以下示例帐单来了解您自己帐单中的各项费用。

示例

在本示例中,客户购买的承诺使用合约涵盖了其所有资源使用量。A 行显示了这些资源的标准(非承诺使用合约)费用。B 行是可完全抵消 A 行数据的返还金额,因为承诺使用合约涵盖了所有使用量。C 行是客户实际应支付的打折后的承诺使用合约价格。帐单总金额是记帐金额减去返还金额的总和。在本示例中,由于承诺使用合约涵盖了所有使用量,因此最终的帐单金额为 $7.17。

承诺使用合约帐单。

示例

在本示例中,客户购买的承诺使用合约涵盖了其帐单中的一部分。A.1A.2 行显示了 vCPU 和内存的标准(非承诺使用合约)费用。B.1B.2 行显示了用来抵消承诺使用合约所涵盖的部分费用的返还金额。C.1C.2 行显示了 B.1 和 B.2 行中描述的部分资源在打折后的承诺使用合约价格。此帐单的总金额是 C.1 和 C.2 行中承诺使用合约费用以及承诺使用合约未涵盖的帐单剩余部分费用的总和。

复杂的承诺使用合约帐单。

支持

如果您对帐单上的承诺使用折扣有任何疑问,可以与 Google Cloud Platform 支持团队联系

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档