コミットメントを自動的に更新する


予測可能なリソース要件を持つワークロードがある場合は、リソースベースの確約利用割引(CUD)によってコストを削減できます。リソースベースの CUD を受け取るには、1 年または 3 年間のリソースベースのコミットメントを購入します。デフォルトでは、リソースベースのコミットメントは契約期間の終了時に期限切れになります。コミットメントの有効期限が切れた後に CUD を引き続き受信するには、新しいコミットメントを購入する必要があります。リソースベースのコミットメントの自動更新により、有効期限が切れるたびにコミットメントを手動で再購入する必要がなくなります。コミットメントの自動更新を使用すると、既存のコミットメントを無期限に延長し、commit されたリソースの CUD を引き続き受信できます。

このドキュメントでは、自動更新の仕組みと、次のことを行う方法について説明します。

  • 新しいコミットメントを購入する際に自動更新を有効にします。
  • 既存のアクティブなコミットメントの自動更新を有効または無効にします。

自動更新の仕組み

リソースベースのコミットメントで自動更新を有効にすると、コミットメントが期間終了するたびに、Compute Engine はそのコミットメントを新しい期間で自動更新します。コミットメントに関する自動更新を有効にすると、手動で無効にするまでその設定は有効なままになります。

新しいコミットメントと既存のコミットメントの両方でコミットメントの自動更新を有効にできます。

  • 新しいコミットメントの場合、コミットメントを購入するときに、コミットメントを自動更新するかどうかを指定できます。
  • 有効で、自動更新が有効になっていない既存のコミットメントの場合は、コミットメントのプロパティを変更して自動更新を有効にできます。期限切れのコミットメントの自動更新を有効にすることはできません。

プロジェクトで自動更新するコミットメントごとに、自動更新を有効にする必要があります。

コミットメントで自動更新を有効にすると、コミットメントの現在の終了日が更新日になります。コミットメントの他のすべてのプロパティは変わりません。現在の終了日(更新日)の米国およびカナダの太平洋時間(UTC-8 または UTC-7)の午前 12 時に、コミットメントの更新期間が自動的に開始されます。更新されたコミットメントの期間の長さは元のコミットメントと同じままで、同じ割引率が適用されます。コミットメントの期間中に手動で自動更新を無効にしない限り、更新された期間の終了時に、Compute Engine はコミットメントを再度新しい期間に更新します。

コミットメントの自動更新は、コミットメントの有効期限が設定される前であればいつでも有効にできます。同様に、更新日より前であれば、いつでもコミットメントの自動更新を無効にできます。たとえば、1 年間のコミットメントの有効期限が 2024 年 1 月 1 日午前 0 時(UTC-8)に設定されている場合、2024 年 1 月 1 日午前 0 時(UTC-8)より前であればいつでも自動更新を有効にできます。自動更新を有効にすると、コミットメントは 2024 年 1 月 1 日の午前 0 時(UTC-8)にさらに 1 年間自動更新されます。自動更新を無効にする場合は、2025 年 1 月 1 日の午前 12 時(UTC-8)より前であればいつでも行えます。

コミットメントで自動更新を有効にすると、以下に同意したことになります。

  • お客様のコミットメントは、現在の終了日に新しい期間に自動更新されます。
  • 確約したリソースに対して、新しい期間にも引き続き支払いが発生します。

自動更新の例

自動更新されない 1 年間のコミットメント my-commitment-1 の例を考えてみましょう。2020 年 1 月 1 日に 100 個の N2 vCPU に対するこのコミットメントを購入したとします。コミットメントの期間は 2021 年 1 月 1 日に終了する予定です。このコミットメントに対して次の一連の操作を行うとします。

  1. このコミットメントの自動更新は、終了日より前に有効にします。
  2. コミットメント期間が 2 回更新されると、コミットメントの自動更新が無効になり、新しい終了日にコミットメントが期限切れになります。

次の表に、コミットメントの有効期間全体でコミットメントのプロパティがどのように動作するかを示します。

元の期間
(自動更新を有効にする前)
元の期間
(自動更新を有効にした後)
初回の自動更新期間
(自動更新は引き続き有効です)
2 回目の自動更新期間
(自動更新を無効にする前)
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 日
終了日または更新日への対応 コミットメントの終了がスケジュールされています コミットメントの更新がスケジュールされています コミットメントの更新がスケジュールされています コミットメントの更新がスケジュールされています コミットメントの終了がスケジュールされています

*コミットメントは、指定した開始日の午前 12 時(米国とカナダの太平洋時間(UTC-8 または UTC-7))に開始されます。
コミットメントは、指定した終了日の午前 12 時(米国とカナダの太平洋時間(UTC-8 または UTC-7))に終了または更新されます。
コミットメント期間の合計期間が 3 年以上になっても、各期間が 1 年のままであるため、自動更新コミットメントの割引率は変わりません。

割り当てに関する考慮事項

更新されたコミットメントは元のコミットメントと同じ割り当てを使用するため、追加の割り当てをリクエストする必要はありません。コミットメントの割り当ての詳細については、コミットメントと commit 済みリソースの割り当てをご覧ください。

料金への影響

コミットメント料金は、すべての確約済みリソースの割引価格の合計です。コミットメントの期間を更新すると、コミットしたすべてのリソースの割引価格が再計算され、変更される可能性があります。この再計算を行うために、Compute Engine では、更新された期間が有効になった日に、リソースの対応するオンデマンド料金を使用します。オンデマンド料金が変更されても、新しい契約期間中はリソースの料金が保持されます。

制限事項

  • 自動更新は、リソースベースのコミットメントでのみ有効にできます。
  • 自動更新を有効にできるのは、アクティブなコミットメントのみです。
  • 自動更新されるコミットメントを作成するには、gcloud CLI と Compute Engine API を使用する必要があります。これは、Google Cloud コンソールを使用して行うことはできません。ただし、gcloud CLI、Compute Engine API、または Google Cloud コンソールを使用して、すでにアクティブなコミットメントの自動更新を有効にすることはできます。

コミットメントの自動更新を有効にする

コミットメントを期間の終了時に自動更新するには、次のいずれかの方法で自動更新を有効にします。

  • 新しいコミットメントの購入時に自動更新を有効にする
  • 既存のコミットメントの自動更新を有効にする

新しいコミットメントの購入時に自動更新を有効にする

新しいコミットメントを購入する際に、gcloud CLI または REST で自動更新を有効にできます。

このタスクに必要な権限

このタスクを行うには、次の権限が必要です。

  • プロジェクトに対する compute.commitments.create

gcloud

自動更新されるコミットメントを購入するには、gcloud commitments create コマンドを実行し、--auto-renew フラグを含めます。

たとえば、次の 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 メソッドPOST リクエストを送信し、autoRenew フィールドを true に設定します。

たとえば、次の 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、または REST を使用します。

このタスクに必要な権限

このタスクを行うには、次の権限が必要です。

  • プロジェクトまたは組織に対する compute.commitments.update

コンソール

  1. Google Cloud コンソールで [確約利用割引] ページに移動します。

    [確約利用割引] ページに移動

  2. [コミットメント] リストの [ハードウェアのコミットメント] で、コミットメントの名前をクリックします。

  3. [ハードウェア コミットメントの詳細] ページで、[自動更新] 切り替えをクリックします。

gcloud

既存のコミットメントの自動更新を有効にするには、gcloud commitments update コマンドを実行し、--auto-renew フラグを含めます。

gcloud compute commitments update COMMITMENT \
    --auto-renew

COMMITMENT は、コミットメントの名前に置き換えます。

REST

既存のコミットメントで自動更新を有効にするには、regionCommitments.update メソッドに POST リクエストを行い、autorenew フィールドを true に設定します。

たとえば、次の 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

コンソール

  1. Google Cloud コンソールで [確約利用割引] ページに移動します。

    [確約利用割引] ページに移動

  2. [コミットメント] リストの [ハードウェアのコミットメント] で、コミットメントの名前をクリックします。

  3. [ハードウェア コミットメントの詳細] ページで、[自動更新] 切り替えをクリックします。

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。

次のステップ