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


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

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

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

制限事項

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

自動更新の仕組み

リソースベースのコミットメントで自動更新を有効にすると、コミットメントが期間終了するたびに、Compute Engine はそのコミットメントを新しい期間で自動更新します。コミットメントで自動更新を有効にすると、手動で無効にするまで設定が有効なままになります。米国とカナダの太平洋時間(UTC-8、夏時間中は UTC-7)の更新日の午前 12 時以前であれば、コミットメントの自動更新を無効にできます。

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

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

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

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

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

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

自動更新の例

自動更新されない 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 済みリソースの割り当てをご覧ください。

自動更新による料金への影響

コミットメント料金は、すべての commit 済みリソースの割引価格の合計です。コミットメントの期間を更新すると、コミットしたすべてのリソースの割引価格が再計算され、変更される可能性があります。この再計算を行うために、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

コンソール

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

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

  2. [コミットメントを購入] をクリックします。

  3. コミットメントの詳細を指定します。詳細については、マシンタイプのコミットメントを購入するをご覧ください。

  4. [購入] をクリックします。

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

コンソール

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

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

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

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

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

コンソール

  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。

次のステップ