承诺使用折扣

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

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

承诺使用折扣建议让您有机会通过分析虚拟机支出趋势来优化计算费用的机会(无论是否有承诺使用折扣合约)。通过比较这些数字,您可以借助承诺使用合约来了解每月可以节省的费用。如需详细了解承诺建议的工作原理,您还可以查看了解承诺建议

您可以为单个项目购买一份承诺使用合约,也可以购买多份合约(您可以通过启用共享折扣在多个项目之间共享这些合约)。

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

承诺使用折扣适用于大多数 Compute Engine 机器类型,包括预定义机器类型和自定义机器类型,但不包括 f1-micro 和 g1-small 共享核心机器类型。承诺使用折扣既简单又灵活,且无需预付费用。折扣适用于某个区域内 vCPU、内存、GPU 和本地 SSD 的总数,因此它们不受实例机器设置变更的影响。

准备工作

承诺使用折扣说明

如果您只有几个项目,则可以仅为计划使用的特定资源购买承诺。

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

任何不符合承诺使用折扣条件的资源都会自动获得持续使用折扣。 您不能对相同的资源同时应用承诺使用折扣和持续使用折扣。

承诺使用折扣适用于 vCPU 和内存。您可以为 vCPU 或内存单独购买承诺使用折扣。

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

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

例如:

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

默认情况下,承诺使用折扣适用于项目级层,但您可以在结算帐号中启用折扣共享,以便在多个项目之间共享折扣。

在多个项目之间共享承诺使用折扣

在所有项目之间共享承诺使用折扣可以减少按项目管理折扣的开销,并且可以将项目资源使用费的所有折扣汇集起来,从而最大限度地节省费用。

如果您有多个共享同一 Cloud Billing 帐号的项目,则可以启用承诺使用折扣共享,以便该 Cloud Billing 帐号下的所有项目共享您的所有承诺使用折扣合约。同时,您的持续使用折扣也会汇集起来。也就是说,持续使用折扣是按使用这些项目的所有资源(而不仅仅是单个项目中的资源)来计算的。

例如,如果您为总共 160 个核心购买了两份承诺使用合约,而您在当月运行了 200 个核心,那么在使用这些核心的相关项目中,只有 160 个核心将获得承诺使用折扣。另外 40 个核心将按非承诺、按需使用费率计费。请注意,购买一定的承诺量后,即使您并未使用,也需要按月为承诺量付费。例如,如果您购买了 160 个核心的承诺量,则即使您并未使用,您也需要按这 160 个核心在整个月内的承诺使用费率付费。如需了解如何利用折扣来节省费用的建议,请参阅了解折扣共享

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

规范

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

  • 您必须按区域购买承诺量。

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

    gcloud components update
    

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

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

限制

  • 承诺使用折扣会自动应用于 Google Kubernetes Engine、Dataproc 和 Compute Engine 创建的虚拟机。承诺使用折扣不适用于使用 App Engine 柔性环境或 Dataflow 创建的虚拟机。
  • 处于免费层级期限内且拥有免费层级赠金的项目,以及没有任何付款记录的项目,均不符合承诺使用折扣的适用条件。
  • 您只能按区域购买承诺量。
  • 承诺使用折扣适用于购买了这些折扣方案的项目或 Cloud Billing 帐号中的使用费。
  • 对于在一个 Cloud Billing 帐号下的项目之间共享的承诺量:如果仅使用了任何一部分承诺量,则剩余的承诺量结算将继续保留在购买了相应承诺量的项目中。
  • 承诺使用折扣不适用于抢占式虚拟机实例N1 共享核心机器类型扩展内存
  • 对于 GPU 和本地 SSD 的承诺使用折扣价格,您必须在购买承诺时创建预留
  • 如果某预留附加于承诺使用折扣,则在承诺期间不能删除该预留。
  • 对于 K80 GPU,您只能购买 1 年期承诺。

价格

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

承诺类型

您可以为以下资源购买承诺量。

承诺类型 可购买折扣的资源 适用于以下资源类型
通用 E2 承诺
  • vCPU
  • 内存
所有 E2 机器类型
通用 N2 承诺
  • vCPU
  • 内存
  • 本地 SSD
  • 所有 N2 机器类型
  • 单租户节点
通用 N2D 承诺
  • vCPU
  • 内存
  • 本地 SSD
所有 N2D 机器类型
通用 N1 承诺
  • vCPU
  • 内存
  • GPU
  • 本地 SSD
  • N1 机器类型,共享核心除外。
  • 单租户节点
  • GPU:
    • NVIDIA® Tesla® V100
    • NVIDIA® Tesla® P100
    • NVIDIA® Tesla® P4
    • NVIDIA® Tesla® K80
计算优化承诺
  • vCPU
  • 内存
计算优化机器类型
内存优化承诺
  • vCPU
  • 内存
内存优化机器类型

您不能为 f1-microg1-small 机器类型购买承诺量,也不能为单租户附加费用购买承诺量。

适用于机器类型的承诺

您可以根据自己要使用的机器类型来购买相应类型的承诺。通用承诺的折扣按以下顺序应用于各资源:

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

当您购买通用承诺时,您需要选择承诺所适用的代次。例如,如果您购买通用 E2 承诺,则该承诺仅适用于 E2 机器类型。同样,如果您购买通用 N2、N2D 或 N1 承诺,则这些承诺绝不会重叠。

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

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

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

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

如需为通用机器类型购买承诺,请参阅按机器类型购买承诺

内存优化承诺

如果您打算使用内存优化机器类型,应购买内存优化承诺。如需为内存优化机器类型购买承诺,请参阅按机器类型购买承诺

计算优化承诺

如果您打算使用计算优化机器类型,应购买计算优化承诺。如需为计算优化机器类型购买承诺,请参阅按机器类型购买承诺

适用于 GPU 和本地 SSD 的承诺

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

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

如需为 GPU 和本地 SSD 购买承诺,请参阅为 GPU 和本地 SSD 购买承诺

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

申请承诺量配额

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

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

"Quota 'COMMITMENTS' exceeded. Limit: 0.0"

在 Cloud Console 中查看配额

  1. 在 Google Cloud Console 中,转到配额页面。

    转到“配额”

  2. 配额类型列表中,选择所有配额

  3. 指标列表中,选择全不选以隐藏所有配额,然后在搜索框中输入 commitments 以搜索承诺量配额。

  4. 从结果列表中选择 Commitments

    承诺量。

  5. 检查所需区域的承诺量配额。如果您没有承诺量配额,则上限为 0。

    无承诺量。

申请承诺量配额

  1. 在 Google Cloud Console 中,转到配额页面。

    转到“配额”

  2. 配额类型列表中,选择所有配额

  3. 指标列表中,选择全不选以隐藏所有配额,然后在搜索框中输入 commitments 以搜索承诺量配额。

  4. 从结果列表中选择 Commitments

    承诺量。

  5. 在您要向其中增加配额的区域中的服务承诺旁边,选中相应的复选框。

  6. 点击修改配额按钮。

  7. 如果出现提示,请输入您的姓名电子邮件地址电话号码。点击下一步

  8. 输入所需的配额限制,并提供相应申请的说明。点击完成

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

提高承诺资源配额

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

按机器类型购买承诺

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

默认情况下,项目所有者有权购买承诺使用折扣合约。不过,所有者可以创建包含或排除特定用户的自定义角色。请了解访问权限控制,以确保您有权购买承诺使用折扣合约。

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

购买承诺后,您无法取消该承诺。

控制台

  1. 在 Google Cloud Console 中,转到承诺使用折扣页面。

    转到“承诺使用折扣”

  2. 如需购买新的承诺,请点击购买使用承诺

  3. 为您的承诺命名。

  4. 选择您希望应用该承诺的区域。

  5. 选择承诺类型
    通用 E2(适用于 E2 机器类型)
    通用 N2(适用于 N2 机器类型)
    通用 N2D(适用于 N2D 机器类型)
    通用 N1(适用于 N1 机器类型)
    计算优化(适用于计算优化机器类型)
    内存优化(适用于内存优化机器类型)

  6. 选择承诺的持续时间(1 年或 3 年)。

  7. 输入您要购买的核心数量或内存量。数量没有下限,可以为零。您必须为核心数量输入一个等于或大于零的整数。您可以按 0.25 GB 为增量购买内存。

  8. 阅读购买条款

  9. 点击购买按钮以购买承诺。

gcloud

使用 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 数量必须是等于或大于 0 的整数,可以是偶数或奇数。
  • MEMORY:您愿意为其购买承诺的内存大小(以 MB 或 GB 为单位)。例如 1000MB。如果您未指定单位,则系统会默认使用 GB 单位。您可以按 0.25 GB 为增量购买内存。
  • DURATION:承诺的期限(12-month36-month)。
  • COMMITMENT_TYPE:以下各项中的一项:

    • general-purpose-e2(适用于通用 E2 机器类型承诺)。
    • general-purpose-n2(适用于通用 N2 机器类型承诺)。
    • general-purpose-n2d(适用于通用 N2D 机器类型承诺)。
    • general-purpose(适用于通用 N1 机器类型承诺)。
    • compute-optimized(适用于计算优化承诺)。
    • memory-optimized(适用于内存优化承诺)。

      如果您未指定 --type 标志,则系统会默认使用 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 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 为单位指定。您必须在 resources 部分中同时指定 VCPUMEMORY
  • type:承诺的类型,可以为 GENERAL_PURPOSE_E2GENERAL_PURPOSE_N2GENERAL_PURPOSE_N2DGENERAL_PURPOSECOMPUTE_OPTIMIZEDMEMORY_OPTIMIZED

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

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

如需创建内存优化承诺,请添加 type 属性。以下示例演示了如何为 m1-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 和内存)。

您可以使用 Cloud Console、gcloud 工具或 API 购买附加预留的承诺。

控制台

  1. 在 Google Cloud Console 中,转到承诺使用折扣页面。

    转到“承诺使用折扣”

  2. 如需购买新的承诺,请点击购买使用承诺

  3. 为您的承诺命名,并选择您希望应用该承诺的区域。

  4. 对于承诺类型,请选择通用

  5. 选择承诺的持续时间(1 年或 3 年)。

  6. 输入您要购买的核心数量和内存量。如果您只想在承诺中包含并预留 GPU 或本地 SSD,而不包含 vCPU 和内存,请为 vCPU 和内存承诺数量指定 0。

  7. 点击添加 GPU,然后选择您要在承诺中包含的 GPU 类型GPU 数量

  8. 点击添加本地 SSD 并指定要承诺使用的磁盘数量。

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

    1. 为预留命名。
    2. 用于虚拟机实例下,执行以下操作:
      • 如果您只想在创建按名称明确指定此预留的匹配实例时使用此预留的资源,请选中选择特定预订
      • 如果您希望匹配实例自动使用此预留,请选择自动使用预订
    3. 选择您要预留资源的地区
    4. 指定您要预留的虚拟机实例数量
    5. 指定您要为每个实例预留的资源:
      • 如果您有实例模板,请点击使用实例模板,然后从列表中选择一个实例模板。
      • 否则,请点击指定机器类型
        1. 点击自定义,使用滑块为您的机器类型选择核心数量和内存量。
        2. 指定 CPU 平台
        3. 如需添加 GPU,请输入 GPU 数量GPU 类型
        4. (可选)指定要添加到每个实例的本地 SSD 数量,并指定要使用的接口类型
    6. 点击完成按钮以创建预留。
  10. 点击购买按钮以购买承诺。

  11. 阅读购买条款,并在准备好购买承诺时点击购买

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

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

API

使用 regionCommitments.insert 方法并添加 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 和内存,请为 vCPU 和内存承诺数量指定 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,请参阅修改附加到承诺的预留

为 SLES for SAP 付费映像购买承诺

如果在运行 SUSE Linux Enterprise Server (SLES) for SAP 的虚拟机上运行 SAP 工作负载,则为 SAP 许可购买承诺使用折扣可以节省大量费用。

如果您购买承诺,则承诺会形成由许可构成的“池”,这些许可会自动应用于指定地区中所选项目内正在运行的虚拟机实例。虚拟机启动和关停时折扣适用于任何活动虚拟机,因此承诺不与任何特定虚拟机相关联。

例如,您有 10 个虚拟机在两个地区运行:us-central1 中有 5 个虚拟机,而 us-west1 中有 5 个虚拟机使用同一项目 ID。您必须在每个地区购买 5 个许可,才能涵盖那些运行中的虚拟机。在这些地区中,您都可以在一年内随时将许可应用于任何 5 个并发运行的虚拟机。无论您的使用量是多少,您都需要按月为承诺付费。

承诺到期后,您正在运行的虚拟机将继续以按需费率运行。承诺一旦购买便无法取消。

如需为您的 SAP 许可购买承诺,您必须:

  • 购买许可承诺。您无法修改现有承诺。
  • 购买 1 到 3 年的承诺。

使用 Google Cloud Console、gcloud 命令行工具或 Compute Engine API 购买 SAP SLES 许可承诺。

控制台

  1. 在 Cloud Console 中,转到承诺使用折扣页面。

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

  2. 点击购买承诺以购买新的承诺使用合约。
  3. 点击新许可承诺使用折扣,以购买新的许可承诺。
  4. 为您的承诺使用合约命名,并选择您希望应用该合约的地区。
  5. 选择承诺使用合约的持续时间(1 年或 3 年)。
  6. 选择许可系列
  7. 选择许可类型和数量
  8. 选择许可数量
  9. 点击购买

gcloud

使用 gcloud 工具,运行 gcloud compute commitments create-license 命令以购买许可承诺。

例如,以下承诺适用于 us-central1 地区期限长达 12 个月的 2 个核心的 SAP SUSE 许可。

gcloud compute commitments create-license COMMITMENT_NAME \
    --license https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/licenses/LICENSE_TYPE
    --amount NUMBER_OF_LICENSES \
    --cores-per-license CORES_PER_LICENSE \
    --plan PLAN \
    --region REGION \

替换以下内容:

  • COMMITMENT_NAME:您的承诺的名称。
  • LICENSE:许可 URI。例如:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/licenses/LICENSE_TYPE
  • NUMBER_OF_LICENSES:您计划购买的许可数量。
  • CORES_PER_LICENSE:每个许可的核心数量。输入 1-2 3-45+
  • PLAN:输入方案长度:12-month36-month
  • REGION:此承诺适用的地区。
  • LICENSE_TYPE:SAP 许可类型。

API

使用 regionCommitments.insert 方法并添加 licenseResource 字段来定义承诺的属性。例如,以下承诺包括每个许可 4 个核心(总共 4 个许可)以及该示例的许可资源的公共 URI。

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

{
    "licenseResource":
      "coresPerLicense": "3-4",
      "amount": 4,
      "license": "https://www.googleapis.com/compute/v1/projects/suse-sap-cloud/global/licenses/sles-sap-12"
    }
}

应用承诺使用折扣建议

Google Cloud Console 提供了承诺使用折扣建议。Recommender 会生成一张卡片,其中包含有关过去 30 天内虚拟机使用情况的信息。如果您的虚拟机显示 30 天未授权使用的趋势,则 Recommender 会将其归类为购买承诺使用折扣以降低虚拟机费用的机会。如需了解有关承诺使用建议的更多信息,请参阅结算文档中的了解承诺建议

如果满足以下条件,则使用情况视为未承诺且符合条件。

  • 虚拟机在整个 30 天的期限内都处于活动状态。
  • 虚拟机的 SKU 属于符合条件的承诺使用折扣存储分区。
  • 现有承诺尚未涵盖虚拟机的使用情况。

建议每天刷新一次,并考虑过去 30 天的使用历史记录。

限制

承诺使用折扣建议仅适用于机器类型承诺的 CPU 和内存组件,不适用于 SSD、GPU 或许可承诺。

查看并接受建议

从 Google Cloud Console 信息中心:

  1. 选择您的项目名称
  2. 点击建议。Recommender 卡片会显示建议的 Compute Engine 承诺
  3. 点击链接的建议即可打开该卡片,并借助承诺使用折扣合约查看您的预估节省额。
  4. 1-year3-year 之间切换以查看您的节省额。如需查看卡片信息的更完整说明,请参阅阅读推荐摘要卡片
  5. 点击卡片底部的继续购买以继续履行承诺使用合约。
  6. 完成流程以购买承诺

如果您有多个虚拟机受益于承诺使用折扣,您可以点击该卡片中的查看全部,然后单独查看每个虚拟机。

忽略建议

如果您不想看到推荐,则可以按特定虚拟机将其关闭,也可以关闭整个卡片。您必须恢复建议才能再次看到它们。

启用承诺使用折扣共享

默认情况下,承诺使用折扣会应用于您从中购买该折扣的项目。如需在您的 Cloud Billing 帐号关联的多个项目之间共享该折扣,请通过控制台启用承诺使用折扣共享。

您必须拥有特定权限才能访问结算帐号信息。如需了解详情,请参阅 Cloud Billing 访问权限控制概览文档。

  1. 在 Google Cloud Console 中,登录 Cloud Billing。

    登录 Cloud Billing

    如果您有多个 Cloud Billing 帐号,请执行以下操作之一:

    • 如需管理当前项目的 Cloud Billing,请选择转至关联的结算帐号
    • 如需查找其他 Cloud Billing 帐号,请选择管理结算帐号,然后选择您要管理的帐号。
  2. 在“结算”导航菜单中,选择承诺

  3. 点击查看承诺使用折扣分析

  4. 从页面顶部选择承诺范围

    • 如果您为特定项目选择承诺使用折扣,则默认选项为项目范围。如需更改设置,您必须启用共享结算。
  5. 在文本输入框中输入 Enable,以启用结算帐号范围的承诺。

  6. 点击启用结算帐号范围以保存您的更改。

如果您启用承诺使用折扣共享,则同一 Cloud Billing 帐号下的所有项目中的所有当前有效承诺使用折扣(包括您之前购买的承诺使用折扣以及将来购买的新承诺使用折扣)都会在您的 Cloud Billing 帐号中共享。在您的 Cloud Billing 帐号下的所有项目中,持续使用折扣也会汇集起来并共享。如果您更改承诺范围配置,则更改会在太平洋标准时间 (PST) 的次日零点生效。

如需更好地了解承诺使用折扣对帐单的影响及其显示方式,请参阅了解您的承诺使用折扣帐单

将预留与承诺相结合

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

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

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

修改承诺

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

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

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

查看有效的承诺

在控制台或 API 中查看承诺。

控制台

在 Google Cloud 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://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1",
  "selfLink": "https://www.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 结算支持团队联系以获得帮助。

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

请阅读以下文档,以便更好地了解您的帐单:

支持

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

后续步骤