如果您的工作负载具有可预测的资源需求,则可以通过基于资源的承诺使用折扣 (CUD) 来降低费用。您可以通过购买基于资源的承诺(1 年或 3 年)收到基于资源的 CUD。默认情况下,基于资源的承诺在期限结束时到期。承诺到期后,您必须购买新的承诺才能继续享受 CUD。如果自动续订基于资源的承诺,您无需在该承诺每次到期时手动重新购买承诺。通过自动续订承诺,您可以无限期地延长现有承诺,并继续享受这些承诺的资源的 CUD。
本文档介绍了自动续订的工作方式,并向您展示了如何执行以下操作:
- 购买新承诺时启用自动续订。
- 为现有有效承诺启用和停用自动续订。
限制
- 您只能为基于资源的承诺启用自动续订。
- 您只能为有效承诺启用自动续订。
- 如需创建自动续订的承诺,您必须使用 gcloud CLI 和 Compute Engine API。您无法使用 Google Cloud 控制台来执行此操作。但是,您可以使用 gcloud CLI、Compute Engine API 或 Google Cloud 控制台对已生效的承诺启用自动续订。
自动续订的工作方式
为基于资源的承诺启用自动续订后,每次承诺到期时,Compute Engine 都会自动为该承诺续订一个新期限。为承诺启用自动续订后,该设置将保持启用状态,直到您手动将其停用。您可以在续订日期当天的凌晨 0 点(美国和加拿大太平洋时间(UTC-8 或夏令时期间的 UTC-7))之前对承诺停用自动续订。
您可以为新承诺和现有承诺启用自动续订。
- 对于新承诺,在购买承诺时,您可以选择是否指定自动续订承诺。
- 对于有效且未启用自动续订的现有承诺,您可以修改承诺的属性并启用自动续订。您无法为已过期的承诺启用自动续订。
您必须为要在项目中自动续订的每个承诺单独启用自动续订。
为承诺启用自动续订后,承诺的当前结束日期将成为其续订日期。承诺的所有其他属性均保持不变。在当前结束日期(续订日期)的凌晨 0 点(美国和加拿大太平洋时间(UTC-8 或夏令时期间的 UTC-7)),您的承诺的续订期限将自动开始。续订承诺的期限长度与原始承诺相同,并且您可以享受相同的折扣。在续订期限结束时,Compute Engine 将再次为您的承诺续订新的一期,除非您在承诺期限内手动停用自动续订。
为承诺激活自动续订,即表示您同意:
- 您的承诺会在其当前结束日期自动续订新的一期。
- 在新的一期中,您将继续为承诺的资源付费。
自动续订示例
考虑一个不自动续订的 1 年期承诺 my-commitment-1
示例。假设您在 2020 年 1 月 1 日为 100 个 N2 vCPU 购买了此承诺。您的承诺将于 2021 年 1 月 1 日结束。假设您对此承诺执行以下系列操作:
- 您在此承诺的此结束日期之前为其启用自动续订。
- 在此承诺的期限续订 2 次后,您为此承诺停用自动续订,并让您的承诺在新的结束日期后到期。
下表显示了此承诺在其整个生命周期内的属性的表现情况:
原始期限 (启用自动续订之前) |
原始期限 (启用自动续订之后) |
第一次自动续订的期限 (自动续订保持启用状态) |
第二次自动续订的期限 (停用自动续订之前) |
第二次自动续订的期限 (停用自动续订之后) |
|
---|---|---|---|---|---|
期限 | 1 年 | 1 年 | 1 年 | 1 年 | 1 年 |
折扣 | 37% | 37% | 37% | 37%‡ | 37%‡ |
开始日期* | 2020 年 1 月 1 日 | 2020 年 1 月 1 日 | 2020 年 1 月 1 日 | 2020 年 1 月 1 日 | 2020 年 1 月 1 日 |
结束日期或续订日期† | 2021 年 1 月 1 日 | 2021 年 1 月 1 日 | 2022 年 1 月 1 日 | 2023 年 1 月 1 日 | 2023 年 1 月 1 日 |
结束日期或续订日期当天的操作 | 承诺按计划结束 | 承诺按计划续订 | 承诺按计划续订 | 承诺按计划续订 | 承诺按计划结束 |
*承诺从指定开始日期的凌晨 0 点(美国和加拿大太平洋时间,即 UTC-8 或 UTC-7)开始。
†承诺于指定结束日期的凌晨 0 点(美国和加拿大太平洋时间,即 UTC-8 或 UTC-7)结束或续订。
‡即使承诺期的总持续时间为 3 年或更长时间,自动续订承诺的折扣百分比也会保持不变,因为每个期限的持续时间仍为 1 年。
自动续订的配额影响
您无需申请额外的配额,因为续订的承诺使用与原始承诺相同的配额。如需详细了解承诺配额,请参阅承诺和承诺资源的配额。
自动续订的价格影响
承诺费用是所有承诺的资源的折扣价格总和。在您续订承诺的期限后,系统会重新计算所有承诺的资源的折扣价格,并且可能会发生变化。为了进行这种重新计算,Compute Engine 会使用续订期限生效当天的资源现行按需价格。即使按需价格变化,也会在整个新期限内保留资源的这些价格。
购买自动续订的承诺
您可以使用 gcloud CLI 或 Compute Engine API 购买自动续订的承诺。
执行此任务所需的权限
您必须拥有以下权限才能执行此任务:
- 针对项目的
compute.commitments.create
gcloud
使用 gcloud
commitments create
命令购买自动续订的承诺。
例如,以下 gcloud CLI 命令会创建一个自动续订的 3 年期承诺。
gcloud compute commitments create COMMITMENT \ --auto-renew \ --plan=36-month \ --region=us-west1 \ --project=PROJECT_ID \ --resources=vcpu=4,memory=9
替换以下内容:
COMMITMENT
:新承诺的名称。PROJECT_ID
:要在其中创建承诺的项目的 ID。
REST
使用 regionCommitments.insert
方法购买自动续订的承诺。
例如,以下 Compute Engine API 请求会创建一个自动续订的 3 年期承诺。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/commitments { "name": "COMMITMENT", "plan": "THIRTY_SIX_MONTH", "resources": [ { "type": "VCPU", "amount": 4 }, { "type": "MEMORY", "amount": 9 } ], "autoRenew": true }
替换以下内容:
COMMITMENT
:新承诺的名称。PROJECT_ID
:要在其中创建承诺的项目的 ID。
购买不自动续订的承诺
您可以使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API 购买不自动续订的承诺。
执行此任务所需的权限
您必须拥有以下权限才能执行此任务:
- 项目或组织的
compute.commitments.create
权限
控制台
在 Google Cloud 控制台中,前往承诺使用折扣页面。
点击购买承诺。
指定承诺的详细信息。如需了解详情,请参阅为机器类型购买承诺。
点击购买。
gcloud
使用 gcloud
commitments create
命令购买不自动续订的承诺。
例如,您可使用以下 gcloud CLI 购买不自动续订的新的 3 年期承诺。
gcloud compute commitments create COMMITMENT \ --plan=36-month \ --region=us-west1 \ --project=PROJECT_ID \ --resources=vcpu=4,memory=9
替换以下内容:
COMMITMENT
:新承诺的名称。PROJECT_ID
:要在其中创建承诺的项目的 ID。
REST
使用 regionCommitments.insert
方法购买不自动续订的承诺。
例如,以下 Compute Engine API 请求会创建一个不自动续订的新 3 年期承诺。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/commitments { "name": "COMMITMENT", "plan": "THIRTY_SIX_MONTH", "resources": [ { "type": "VCPU", "amount": 4 }, { "type": "MEMORY", "amount": 9 } ], }
替换以下内容:
COMMITMENT
:新承诺的名称。PROJECT_ID
:要在其中创建承诺的项目的 ID。
为现有承诺启用自动续订
您可以使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API 为现有承诺启用自动续订。
执行此任务所需的权限
您必须拥有以下权限才能执行此任务:
- 项目或组织的
compute.commitments.update
权限
控制台
在 Google Cloud 控制台中,前往承诺使用折扣页面。
在承诺列表的硬件承诺下,点击承诺的名称。
在硬件承诺详情页面上,点击自动续订切换开关。
gcloud
使用 gcloud
commitments update
命令为现有承诺启用自动续订。
gcloud compute commitments update COMMITMENT \ --auto-renew
将 COMMITMENT
替换为该承诺的名称。
REST
使用 regionCommitments.update
方法为现有承诺启用自动续订。
例如,以下 Compute Engine API 请求为 us-west1
区域中的承诺启用自动续订。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/commitments { "name": "COMMITMENT", "autoRenew": true }
替换以下内容:
COMMITMENT
:要更新的承诺的名称。PROJECT_ID
:要在其中更新承诺的项目的 ID。
为现有承诺停用自动续订
您可以使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API 为现有承诺停用自动续订。
执行此任务所需的权限
您必须拥有以下权限才能执行此任务:
- 项目或组织的
compute.commitments.update
权限
控制台
在 Google Cloud 控制台中,前往承诺使用折扣页面。
在承诺列表的硬件承诺下,点击承诺的名称。
在硬件承诺详情页面上,点击自动续订切换开关。
gcloud
使用 gcloud
commitments update
命令为现有承诺停用自动续订。
gcloud compute commitments update COMMITMENT --no-auto-renew
将 COMMITMENT
替换为该承诺的名称。
REST
使用 regionCommitments.update
方法为现有承诺停用自动续订。
例如,以下 Compute Engine API 请求可为 us-west1
区域中的承诺停用自动续订。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/commitments { "name": "COMMITMENT", "autoRenew": false }
替换以下内容:
COMMITMENT
:要更新的承诺的名称。PROJECT_ID
:要在其中更新承诺的项目的 ID。
后续步骤
- 了解如何排查基于资源的承诺的自动续订问题。
- 了解如何合并和拆分基于资源的承诺。
- 了解如何升级基于资源的承诺的期限。
- 了解如何分析基于资源的承诺使用折扣的有效性。