承诺使用折扣

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

如果您的工作负载稳定且可预测,您可以签订 1 年或 3 年期限的承诺使用合约,这样就能以优惠价格购买特定数量的 vCPU 和内存。对于大多数机器类型或自定义机器类型而言,折扣可高达 57%。对于内存优化机器类型而言,折扣可高达 70%。

购买后,无论您是否使用这些服务,在您所选择的期限内,您都需要按月支付相关费用。

承诺使用折扣适用于所有 Compute Engine 非共享核心机器类型,包括预定义机器类型和自定义机器类型。承诺使用折扣具有以下特点:

  • 简单灵活:折扣适用于某个区域内 vCPU 或内存的总数,因此它们不受实例机器类型更改的影响。

  • 无需预付费:承诺使用折扣没有任何预付费用。每月您的帐单结算时都会应用承诺使用折扣。

准备工作

承诺使用折扣的运用方法

要使用承诺使用折扣,您必须通过 Compute Engine API 或 Google Cloud Platform Console购买承诺使用合约。购买承诺使用合约后,系统便会将其自动应用于您的项目,以供并发使用。

例如,如果您购买 8 个核心的承诺使用合约,并且您运行 24 个核心 8 小时,则您将获得 8 个核心 8 小时的承诺使用折扣。另外 16 个核心将按标准的非承诺使用费率计费。请记住,购买一定数量的承诺使用合约后,即使您不使用它们,也需要按月为这些承诺使用合约付费。因此,如果您购买了 8 个核心的承诺使用合约,即使您仅在这个月内的某些时间段运行了这些核心,也需要为这 8 个核心支付整月的承诺使用费用。因此,仅以您知道将使用的增量购买承诺使用合约将对您有利。

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

承诺使用折扣有以下几种类型:

  • 通用型:此类承诺使用折扣适用于标准、高内存、高 CPU、自定义机器类型,以及通用单租户节点
  • 内存优化型:此类承诺使用折扣适用于内存优化机器类型

不能对 f1-micro 机器类型、g1-small 机器类型或单租户附加费应用承诺使用折扣。

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

  • 通用承诺使用折扣需要您为每个 vCPU 购买 0.9 GB(含)到 6.5 GB(含)的内存。
  • 适用于内存优化机器类型的内存优化承诺使用折扣需要您为每个 vCPU 购买 14 GB(含)到 40 GB(含)的内存。

您必须按区域购买承诺使用折扣。

当您购买承诺使用折扣时,折扣将按以下顺序应用于资源:

  1. 自定义机器类型
  2. 单租户节点组
  3. 预定义机器类型

例如,假设您有一个具有以下资源组合的区域:

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

您在承诺使用合约中购买了 15 个 vCPU 和 13.5 GB 内存。承诺使用折扣额度将首先应用于自定义机器类型,任何剩余的折扣额度将应用于预定义机器类型。在这种情况下,自定义机器类型的所有 10 个 vCPU 将按承诺使用合约价格付费,而 13.5 GB 的自定义机器类型内存也将按承诺使用合约价格付费。承诺使用合约中剩余的 5 个 vCPU 折扣额度将随机应用于两个 n1-standard-4 机器类型中的任意 5 个 vCPU。承诺使用合约未涵盖的任何资源都有资格享受持续使用折扣。

如果您向您的区域添加了内存优化机器类型(例如 n1-megamem-96 或 n1-ultramem-160),则该类型不会从先前的承诺使用合约中获得承诺使用折扣。您必须为内存优化机器类型单独购买 vCPU 和内存承诺使用折扣,才能获得这些机器类型的折扣。

承诺使用折扣受 Google Cloud Platform 服务专用条款的约束。购买承诺使用折扣,即表示您同意这些条款。承诺使用折扣不会续订,因此您必须创建新的承诺使用合约才能继续享受折扣。

规格

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

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

    gcloud components update
    

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

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

限制

  • 承诺使用折扣会自动应用于由 Google Kubernetes Engine、Google Cloud Dataproc 和 Google Compute Engine 创建的虚拟机。承诺使用折扣不适用于使用 App Engine 柔性环境、Google Cloud Dataflow 或 Google Cloud SQL 创建的虚拟机。
  • 处于免费方案期限内且拥有免费方案赠送金额的项目和没有任何付款记录的项目均不符合承诺使用折扣的适用条件。
  • 您只能按区域购买承诺使用折扣。
  • 承诺使用折扣可适用于购买了这些折扣方案的项目。
  • 承诺使用折扣不适用于抢占式虚拟机实例共享核心机器类型扩展内存

  • 您必须同时为 vCPU 和内存购买承诺使用折扣合约:

    • 对于通用折扣,您必须为每个 vCPU 购买 0.9 GB 到 6.5 GB 内存。总内存大小必须是 256 MB 的整数倍。
    • 对于内存优化折扣,您必须为每个 vCPU 购买 14 GB 到 40 GB 内存,以适应可用内存优化机器类型的范围。总内存大小必须是 256 MB 的整数倍。
    • 对于 n1-standard、n1-highmem、n1-highcpu、自定义机器类型和单租户节点,您必须为每个 vCPU 配套购买 0.9 GB 到 6.5 GB 内存。总内存大小必须是 256 MB 的整数倍。

价格

享受承诺使用折扣的虚拟机实例的具体价格因区域而异。有关当前费率,请参阅价格页面。

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

任何承诺使用折扣的资源都不符合持续使用折扣的条件。这两种不同的折扣类型绝对无法同时应用于 vCPU 或内存大小 (GB) 的同一个部分。

承诺使用折扣未涵盖的资源将自动获得持续使用折扣的资格,具体取决于机器类型系列。如果您在当月的某个时间段运行 n1-standard-2,并在同一个月的另一个时间段运行 n1-standard-8,则 Compute Engine 会将这两者合并计算,并对承诺使用折扣未涵盖的时间段应用持续使用折扣,因为这两种机器类型都属于 n1-standard 系列。同样的逻辑适用于 n1-highmem 和 n1-highcpu 机器类型系列。

申请承诺使用合约配额

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

使用 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. 点击提交请求以提交您的请求。

增加 COMMITTED_CPUS 配额

如果您没有足够的 COMMITTED_CPUS 配额,可以申请增加承诺使用合约配额以匹配您的总 CPU 配额。您可以随时请求增加此配额。

购买承诺使用合约

您可以在 GCP Console、gcloud 命令行工具中购买承诺使用合约,也可以通过 API 以编程方式购买承诺使用合约。

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

要购买承诺使用合约,请按照以下说明操作。

Console

  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 的内存。对于内存优化承诺使用折扣,为每个 vCPU 指定 14 GB 或 40 GB 的内存,具体取决于您计划使用的内存优化机器类型。总内存大小必须是 256 MB 的整数倍。

  8. 点击购买按钮以购买承诺使用合约。

  9. 阅读购买条款,并在您准备好购买承诺使用合约后再次点击购买

gcloud

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

gcloud 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。在指定自定义内存时也必须遵循相同的规范,即:

    • 为自定义机器类型的每个 vCPU 分配的内存大小必须介于 0.9 GB 到 6.5 GB 之间(含 0.9 GB 和 6.5 GB)。
    • 总内存大小必须是 256 MB 的整数倍。
  • [DURATION] 是承诺使用合约的期限,只能从 12-month36-month 中选择其一。

  • [COMMITMENT_TYPE] 对于大多数机器类型而言为 GENERAL_PURPOSE,对于内存优化机器类型而言为 MEMORY_OPTIMIZED。如果未指定此标志,则默认值为 GENERAL_PURPOSE

要创建通用承诺使用合约,您可以使用以下示例:

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

要创建内存优化承诺使用合约,您可以使用以下示例,该示例为 n1-megamem-96 机器类型购买 1 年的承诺使用合约:

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

API

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

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

资源正文应包含:

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

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

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

要创建内存优化承诺使用合约,请使用 Alpha 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"
    }
  ]
}

如需了解详情,请参阅参考文档

查看有效的承诺使用合约

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

Console

在 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://www.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 Platform 使用的是资产负债表帐单格式。当您比较帐单时,资源的全部费用显示在一行中,然后是用来抵消承诺使用合约实际涵盖金额的返还金额,最后是您实际支付的承诺使用合约费用。通过以下示例帐单来了解您自己帐单中的各项费用。

示例

在本示例中,客户购买的承诺使用合约涵盖了其所有资源使用量。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 文档