コミットメントの統合と分割


プロジェクトのリソース要件を管理しやすくするために、Compute Engine では、既存のコミットメントを統合または分割し、プロジェクトに必要な粒度に合わせてリソースを再分配できます。

このドキュメントでは、コミットメントの統合と分割の利点とプロセス、制限事項と要件について説明します。

コミットメントの統合

複数の互換性のあるコミットメントを統合し、新しい大きなコミットメントを作成できます。コミットメントを統合することで、単一のエンティティとして追跡および管理できます。コミットメントを統合すると、個々のコミットメントが同時に期限切れになるように調整することで、コミットメントの有効期限がずれることを回避できます。統合すると、ワークロードを徐々に増やすことができます。たとえば、必要に応じて新しい小規模なコミットメントを購入し、それらのコミットメントを統合するか、既存のコミットメントと統合するかを選択できます。

制限事項

  • ライセンス コミットメントは統合できません。
  • 統合コミットメントの作成時に、新しい予約を作成してこれらのコミットメントに関連付けることはできません。
  • 期限切れのコミットメントやキャンセルされたコミットメントは統合できません。
  • デフォルトでは、統合コミットメントを作成すると、すべてのソース コミットメントが自動更新されるように設定されていても、新しいコミットメントに対する自動更新の設定が無効になります。統合コミットメントを自動的に更新する場合は、それらのコミットメントで自動更新の設定を手動で有効にする必要があります。これは、作成時または作成後に行うことができます。

統合の仕組み

個々のコミットメント(ソース コミットメント)を統合すると、すべてのソース コミットメントを結合したリソースを使用して新しいコミットメント(統合コミットメント)が作成されます。米国とカナダの太平洋時間(UTC-8、夏時間期間中は UTC-7)の翌日の午前 12 時に、統合コミットメントが有効になり、ソース コミットメントがキャンセルされます。この有効化日が、統合コミットメントの開始日になり、統合オペレーションが終了します。統合コミットメントの有効期限は、ソース コミットメントのうち、最も遅い有効期限に設定されます。たとえば、2 つのソース コミットメントがあり、それぞれが 2023 年 1 月 1 日と 2023 年 12 月 1 日に期限切れになる場合、統合コミットメントは 2023 年 12 月 1 日に期限切れになります。

いずれかのソース コミットメントに予約が関連付けられている場合、予約は統合中に保持され、作成後に統合コミットメントに関連付けられます。予約が関連付けられたコミットメントについての詳細は、予約と確約利用割引の併用をご覧ください。

統合による料金への影響

コミットメント料金は、すべての確約済みリソースの割引価格の合計です。コミットメントを統合すると、統合コミットメントのリソースの割引料金は、統合コミットメントが有効になった日に変更される可能性があります。オンデマンド料金が変更されても、統合コミットメントの期間が終了するまで、リソースごとにこの新しい割引料金が適用されます。ただし、将来、このコミットメントを再度統合または分割すると、リソースの割引料金が再び変更される可能性があります。

統合コミットメントの例

次の表は、2 つのコミットメント(source-commitment-1source-commitment-2)が March 1, 2022 で 1 つのコミットメント(merged-commitment)に統合されるというシナリオでの、ソース コミットメントと統合コミットメントのプロパティを示しています。

最初のソース コミットメント
(統合前)
2 番目のソース コミットメント
(統合前)
統合コミットメント
名前 source-commitment-1 source-commitment-2 merged-commitment
タイプ N2 N2 N2
リージョン us-central-1 us-central-1 us-central-1
リソース
  • vCPU: 100
  • メモリ: 100 GB
  • vCPU: 200
  • メモリ: 300 GB
  • vCPU: 300
  • メモリ: 400 GB
期間 3 年 3 年 3 年
開始日* 2020 年 1 月 1 日 2020 年 12 月 1 日 2022 年 3 月 2 日
(統合の翌日)
終了日 2023 年 1 月 1 日 2023 年 12 月 1 日 2023 年 12 月 1 日

* すべてのコミットメントは、指定された開始日の米国およびカナダの太平洋標準時(UTC-8 または UTC-7)の午前 12 時に開始します。
すべてのコミットメントは、指定された終了日の米国およびカナダの太平洋標準時(UTC-8 または UTC-7)の午前 12 時に終了します。

統合の要件

個々のソース コミットメントを統合して、新しい統合コミットメントを作成する場合、ソース コミットメントと統合コミットメントは次の要件を満たす必要があります。

  • ソース コミットメントのプロジェクト、リージョン、期間、コミットメント タイプ、コミットメント カテゴリは同じである必要があります。
  • 新しい統合コミットメントには、ソースのコミットメントと同じプロジェクト、リージョン、期間、コミットメント タイプ、コミットメント カテゴリが必要です。ただし、統合コミットメントに新しい名前を付けることはできます。
  • 統合コミットメントに指定するリソースタイプは、ソース コミットメントとまったく同じリソースタイプである必要があります。また、新しい統合コミットメントの各リソースタイプのリソース量は、すべてのソース コミットメントのそのリソースタイプのリソース量の合計と同じにする必要があります。たとえば、最初のソース コミットメントに 100 個の vCPU と 100 GB のメモリがあり、2 番目のソース コミットメントに 200 個の vCPU と 300 GB のメモリがある場合、300 個の vCPU と 400 GB のメモリがある統合コミットメントを作成する必要があります。
  • ソース コミットメントと統合コミットメントは、ハードウェア リソース(vCPU、メモリ、GPU、ローカル SSD)に関するものである必要があります。

統合コミットメントの作成

gcloud CLI または Compute Engine API を使用して、統合コミットメントを作成します。コミットメントを統合する前に、制限事項をご確認ください。

コンソール

  1. Google Cloud コンソールで、コミットメントを統合するプロジェクトを選択し、[確約利用割引] ページに移動します。

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

  2. 一連のコミットメントの統合オペレーションを開始するには、[コミットメント リスト] ページの [ハードウェアのコミットメント] タブで、[統合] をクリックします。

    または、統合するコミットメントをリストから選択し、[統合] をクリックします。

  3. [統合] ページの [コミットメントを選択] タブで、次の操作を行います。

    1. [統合するコミットメントの選択] で、リストから統合するコミットメントを選択します。[コミットメント リスト] ページでこれらのコミットメントをすでに選択している場合は、このタブで選択したコミットメントを確認します。

      省略可: 統合する個別のコミットメントを選択する前に、統合コミットメントに必要な [プラン]、[リージョン]、[コミットメント タイプ] の値を指定することもできます。これにより、コミットメント リストがフィルタリングされ、指定した属性に対して統合できるコミットメントのみが表示されます。

    2. [次へ] をクリックします。[確認] タブが開きます。

  4. [統合] ページの [確認] タブで、次の操作を行います。

    1. 統合コミットメントの詳細を確認します。統合する個々のコミットメントのリストを変更するには、ウィンドウの左側にある [コミットメントを選択] タブを選択して、ステップ 3 を繰り返します。
    2. [新しいコミットメント名] フィールドに、統合コミットメントの名前を入力します。
    3. 省略可: 統合コミットメントで自動更新を有効にするには、[自動更新を有効にする] チェックボックスをオンにします。
    4. 利用規約を読みます。
    5. 統合コミットメントの作成を完了し、[コミットメント リスト] ページに戻るには、[統合] をクリックします。

gcloud

既存のコミットメントを単一のコミットメントに統合するには、gcloud compute commitments create コマンド--merge-source-commitment フラグを指定して使用します。

gcloud compute commitments create COMMITMENT_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --plan=DURATION \
    --type=COMMITMENT_TYPE \
    --resources=vcpu=NUMBER_VCPUS,memory=MEMORY \
    --merge-source-commitments=SOURCE_COMMITMENT_URLS

次のように置き換えます。

  • COMMITMENT_NAME: 新しい統合コミットメントの名前。
  • NUMBER_VCPUS: ソース コミットメントの vCPU の数の合計。
  • COMMITMENT_TYPE: ソース コミットメントと同じコミットメント タイプ。次のいずれかです。
    • general-purpose: 汎用 N1 マシンタイプのコミットメント
    • general-purpose-n2: 汎用 N2 マシンタイプのコミットメント
    • general-purpose-e2: 汎用 E2 マシンタイプのコミットメント
    • general-purpose-n2d: 汎用 N2D マシンタイプのコミットメント
    • general-purpose-t2d: 汎用 T2D マシンタイプのコミットメント
    • compute-optimized: コンピューティング最適化 C2 マシンタイプのコミットメント
    • compute-optimized-c2d: コンピューティング最適化 C2D マシンタイプのコミットメント
    • memory-optimized: メモリ最適化 M1 または M2 マシンタイプのコミットメント
    • accelerator-optimized: アクセラレータ最適化 A2 マシンタイプのコミットメント
    • graphics-optimized: アクセラレータ最適化 G2 マシンタイプのコミットメント
  • REGION: ソース コミットメントと同じリージョン。
  • PROJECT_ID: コミットメントを統合するプロジェクトのプロジェクト ID。
  • DURATION: ソース コミットメントと同じ期間(12-month または 36-month)。
  • MEMORY: ソース コミットメントのメモリ量の合計(MB または GB)。例: 1,000 MB。単位を指定しないと、デフォルトで GB が使用されます。
  • SOURCE_COMMITMENT_URLS: 個別のソース コミットメント URL のリストを指定します。各 URL はカンマで区切ります。URL の間に空白を追加しないでください。このリストには、ソース コミットメントの URL を 2 つ以上指定する必要があります。

たとえば、2 つのソース コミットメントについて、それぞれ(4 個の vCPU と 2,048 MB)のリソースと、(3 個の vCPU と 2,048 MB)のリソースがあるとします。ソース コミットメントの期間は 12 か月です。次の gcloud CLI コマンドは、2 つのコミットメントを結合し、7 つの vCPU と 4,096 MB のリソース、期間を 12 か月として、新しい統合コミットメントを作成します。

gcloud compute commitments create merged-commitment \
    --plan=12-month \
    --project=myproject \
    --resources=vcpu=7,memory=4096 \
     --merge-source-commitments=projects/myproject/regions/us-central1/commitments/source-commitment-1,projects/myproject/regions/us-central1/commitments/source-commitment-2

API

既存のコミットメントを 1 つのコミットメントに統合するには、regionCommitments.insert メソッドを使用します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
{
  "name": COMMITMENT_NAME,
  "plan": DURATION,
  "type" COMMITMENT_TYPE,
  "resources": [
    {
      "type": "vCPUs",
      "amount": NUMBER_VCPUS
    }
    {
      "type": "MEMORY",
      "amount": MEMORY
    }
  ],
  "mergeSourceCommitments": [SOURCE_COMMITMENT_URL ...]
}

次のように置き換えます。

  • PROJECT_ID: コミットメントを統合するプロジェクトのプロジェクト ID。
  • REGION: ソース コミットメントと同じリージョン。
  • COMMITMENT_TYPE: ソース コミットメントと同じコミットメント タイプ。次のいずれかです。
    • GENERAL_PURPOSE: 汎用 N1 マシンタイプのコミットメント
    • GENERAL_PURPOSE_N2: 汎用 N2 マシンタイプのコミットメント
    • GENERAL_PURPOSE_E2: 汎用 E2 マシンタイプのコミットメント
    • GENERAL_PURPOSE_N2D: 汎用 N2D マシンタイプのコミットメント
    • GENERAL_PURPOSE_T2D: 汎用 T2D マシンタイプのコミットメント
    • COMPUTE_OPTIMIZED: コンピューティング最適化 C2 マシンタイプのコミットメント
    • cCOMPUTE_OPTIMIZED_C2D: コンピューティング最適化 C2D マシンタイプのコミットメント
    • MEMORY_OPTIMIZED: メモリ最適化 M1 または M2 マシンタイプのコミットメント
    • ACCELERATOR_OPTIMIZED: アクセラレータ最適化 A2 マシンタイプのコミットメント
    • GRAPHICS_OPTIMIZED: アクセラレータ最適化 G2 マシンタイプのコミットメント
  • DURATION: ソース コミットメントと同じ期間(TWELVE_MONTH または THIRTY_SIX_MONTH)。
  • COMMITMENT_NAME: 新しい統合コミットメントの名前。
  • NUMBER_VCPUS: ソース コミットメントの vCPU の数の合計。
  • MEMORY: ソース コミットメントのメモリ量の合計(MB)。例: 1,000 MB。単位を指定しないと、デフォルトで MB が使用されます。
  • SOURCE_COMMITMENT_URL: 統合するソース コミットメントの URL。個別のソース コミットメント URL のカンマ区切りリストを指定する必要があります。

たとえば、2 つのソース コミットメント(source-commitment-1source-commitment-2)について、それぞれ(4 個の vCPU と 2,048 MB)のリソースと、(3 個の vCPU と 2,048 MB)のリソースがあるとします。次の Compute Engine API リクエストは、source-commitment-1source-commitment-2 を 1 つのコミットメント(merged-commitment)に統合します。

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/commitments
{
  "name": "merged-commitment",
  "plan": "TWELVE_MONTH",
   "resources": [
    {
      "type": "VCPU",
      "amount": "7"
    }
    {
      "type": "MEMORY",
      "amount": "4096"
    }
  ],
  "mergeSourceCommitments": [
         "projects/myproject/regions/us-central1/commitments/source-commitment-1",
         "projects/myproject/regions/us-central1/commitments/source-commitment-2",
         ...
    ]
}

コミットメントの分割

既存のコミットメントからリソースを転送し、小さなコミットメントに分割できます。分割すると、1 つの大きなコミットメントの一部を、小さな個々のコミットメントの形式で綿密にモニタリングおよび管理できます。たとえば、コミットメントを分割し、子コミットメントの 1 つのみに対して自動更新を有効にすることで、コミットメントの一部だけを自動的に更新するよう設定できます。また、分割機能をコミットメントの優先アトリビューションと組み合わせて使用することで、より詳細に確約利用割引の分配方法を決定することもできます。

制限事項

  • ライセンス コミットメントを分割することはできません。
  • 予約が関連付けられたコミットメントは分割できません。
  • GPU やローカル SSD のコミットメントは、これらのリソースに常に予約が関連付けられているため、分割することはできません。
  • 分割コミットメントの作成時に、新しい予約を作成してこれらのコミットメントに関連付けることはできません。
  • 期限切れのコミットメントやキャンセルされたコミットメントは分割できません。
  • デフォルトでは、分割コミットメントを作成すると、すべてのソース コミットメントが自動更新されるように設定されていても、新しいコミットメントに対する自動更新の設定が無効になります。分割コミットメントを自動的に更新する場合は、それらのコミットメントで自動更新の設定を手動で有効にする必要があります。これは、作成時または作成後に行うことができます。
  • Compute Engine API または gcloud CLI を使用して一度に作成できる新しい分割コミットメントは 1 つだけです。

分割の仕組み

既存のコミットメントを分割する(ソース コミットメント)場合、リソースをソース コミットメントから転送し、1 つ以上の新しいコミットメント(分割コミットメント)を作成して、移行したリソースを新しい分割されたコミットメント間で再分配します。新しい分割コミットメントの有効化とソース コミットメントのサイズ変更は、どちらも米国とカナダの太平洋時間(UTC-8、夏時間期間中は UTC-7)の翌日午前 12 時に行われます。この有効化された日付は、分割されたコミットメントの開始日として設定されます。この時点で分割オペレーションが終了し、次のコミットメントができあがります。

  • 分割後に残ったリソースを含むサイズ変更されたソース コミットメント。
  • 新しく作成された分割コミットメントと再配布されたリソース。

ソース コミットメントはサイズが変更されますが、開始日や有効期限など、他のすべての属性が保持され、引き続き正常に動作します。分割コミットメントの有効期限はソース コミットメントと同じになります。

Compute Engine API と gcloud CLI を使用して、新しい分割コミットメントを一度に 1 つだけ作成できます。Google Cloud コンソールを使用すると、1 回のオペレーションで複数の新しい分割コミットメントを作成できます。

予約が関連付けられているコミットメントは分割できません。予約が関連付けられたコミットメントについての詳細は、予約と確約利用割引の併用をご覧ください。

分割による料金への影響

コミットメント料金は、すべての確約済みリソースの割引価格の合計です。コミットメントを分割すると、リソースの費用に次のような影響があります。

  • サイズ変更されたソース コミットメント: サイズ変更されたソース コミットメントからリソースの割引料金は変わりません。
  • 分割コミットメント: 新しい分割コミットメントのリソースの割引料金は、分割コミットメントが有効になった日に変わる場合があります。オンデマンド料金が変更されても、新しい分割コミットメントの期間が終了するまで、リソースごとにこの新しい割引料金が適用されます。

ただし、将来これらのコミットメントのいずれかを統合または分割すると、割引価格が再び変更される可能性があります。

分割コミットメントの例

次の表は、既存のコミットメント(source-commitment)が 2022 年 3 月 1 日に 2 つの異なるコミットメント(サイズ変更された source-commitmentsplit-commitment)に分割された場合のコミットメントのプロパティを示しています。

ソース コミットメント
(分割前)
分割コミットメント ソース コミットメント
(分割後)
名前 source-commitment split-commitment source-commitment
タイプ N2 N2 N2
リージョン us-central-1 us-central-1 us-central-1
リソース
  • vCPU: 200
  • メモリ: 200 GB
  • vCPU: 50
  • メモリ: 100 GB
  • vCPU: 150
  • メモリ: 100 GB
期間 3 年 3 年 3 年
開始日* 2020 年 1 月 1 日 2022 年 3 月 2 日
(分割の翌日)
2020 年 1 月 1 日
終了日 2023 年 1 月 1 日 2023 年 1 月 1 日 2023 年 1 月 1 日

* すべてのコミットメントは、指定された開始日の米国およびカナダの太平洋標準時(UTC-8 または UTC-7)の午前 12 時に開始します。
すべてのコミットメントは、指定された終了日の米国およびカナダの太平洋標準時(UTC-8 または UTC-7)の午前 12 時に終了します。

分割の要件

ソース コミットメントを分割し、1 つ以上の分割されたコミットメントを作成する場合、ソース コミットメントと分割コミットメントは次の要件を満たしている必要があります。

  • 新しい分割コミットメントには、ソース コミットメントと同じプロジェクト、コミットメント タイプ、リージョン、期間が必要です。ただし、分割コミットメントには新しい名前を選択する必要があります。
  • 新しい分割コミットメントに指定するリソースタイプは、ソース コミットメントの一部またはすべてのリソースタイプと一致する必要があります。また、新しい分割コミットメントに指定するリソースの合計量は、ソース コミットメントのリソースの一部である必要があります。ソース コミットメントにはリソースの一部を保持する必要があります。たとえば、ソース コミットメントに 200 個の vCPU と 300 GB のメモリがあるとします。次のようなサイズ変更と再配布のシナリオが適用されます。
    • 200 個の vCPU の一部と 300 GB のメモリの一部を、新しい分割コミットメントに再分配できます。
    • 200 個の vCPU すべてを再分配できますが、ソース コミットメントにはメモリの一部を残しておく必要があります。
    • 300 GB のメモリはすべて再分配できますが、ソース コミットメントには vCPU の一部を残しておく必要があります。
    • 新しい分割コミットメントに 200 個の vCPU と 300 GB のメモリをすべて再分配することはできません。
  • ソース コミットメントと分割コミットメントは、ハードウェア リソース(vCPU、メモリ、GPU、ローカル SSD)に関するものである必要があります。

分割コミットメントの作成

gcloud CLI または Compute Engine API では、新しい分割コミットメントを一度に 1 つずつ作成します。複数の新しい分割コミットメントを一度に作成するには、Google Cloud コンソールを使用します。コミットメントを分割する前に、制限事項を確認してください。

コンソール

  1. Google Cloud コンソールで、コミットメントを分割するプロジェクトを選択し、[確約利用割引] ページに移動します。

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

  2. コミットメントの分割オペレーションを開始するには、[コミットメント リスト] ページの [ハードウェアのコミットメント] タブで次のいずれかを行います。

    • リストから分割するコミットメントを選択し、[分割] をクリックします。
    • [名前] 列で、分割するコミットメントの名前をクリックします。[ハードウェア コミットメントの詳細] ページが表示されたら、[分割] をクリックします。
  3. 表示された [分割コミットメント] ページの [サイズ変更] タブで、次の操作を行います。

    1. [vCPU] フィールドと [メモリ] フィールドに、元のコミットメントで保持する vCPU とメモリの数を指定します。残りのリソースは、分割コミットメントに再分配できます。サイズを変更したソース コミットメントを空にすることはできません。
    2. [次へ] をクリックします。[再分配] タブが開きます。
  4. [分割コミットメント] ページの [再分配] タブで、次の操作を行います。

    1. [名前] フィールドに、分割コミットメントの名前を指定します。
    2. [vCPU] フィールドと [メモリ] フィールドに、分割コミットメントに必要な vCPU とメモリの数を指定します。
      • 複数の分割コミットメントを作成する場合は、再分散するリソースの一部のみを指定します。
      • それ以外の場合は、再配布するすべてのリソースを指定します。
    3. 省略可: 分割コミットメントで自動更新を有効にするには、[自動更新を有効にする] チェックボックスをオンにします。
    4. [完了] をクリックします。
    5. 省略可: 追加の分割コミットメントを作成するには、[項目を追加] をクリックして上記の手順を繰り返します。
    6. [次へ] をクリックします。[確認] タブが開きます。
  5. [分割コミットメント] ページの [確認] タブで、次の操作を行います。

    1. サイズ変更されたコミットメントと分割コミットメントの詳細を確認します。
      • 元のコミットメントのリソース割り当てを変更するには、ウィンドウの左側にある [サイズ変更] タブを選択し、手順 3 を繰り返します。
      • 分割コミットメント間でリソースの再分配を変更するには、ウィンドウの左側にある [再分配] タブを選択して、手順 4 を繰り返します。
    2. 利用規約を読みます。
    3. 分割コミットメントの作成を完了して [コミットメント リスト] ページに戻るには、[送信] をクリックします。

gcloud

既存のコミットメントを 2 つのコミットメントに分割するには、gcloud compute commitments create コマンド--split-source-commitment フラグを指定して使用します。

gcloud compute commitments create COMMITMENT_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --plan=DURATION \
    --type=COMMITMENT_TYPE \
    --resources=vcpu=NUMBER_VCPUS,memory=MEMORY \
    --split-source-commitment=SOURCE_COMMITMENT_URL

次のように置き換えます。

  • COMMITMENT_NAME: 新しい分割コミットメントの名前。
  • COMMITMENT_TYPE: ソース コミットメントと同じコミットメント タイプ。次のいずれかです。

    • general-purpose: 汎用 N1 マシンタイプのコミットメント
    • general-purpose-n2: 汎用 N2 マシンタイプのコミットメント
    • general-purpose-e2: 汎用 E2 マシンタイプのコミットメント
    • general-purpose-n2d: 汎用 N2D マシンタイプのコミットメント
    • general-purpose-t2d: 汎用 T2D マシンタイプのコミットメント
    • compute-optimized: コンピューティング最適化 C2 マシンタイプのコミットメント
    • compute-optimized-c2d: コンピューティング最適化 C2D マシンタイプのコミットメント
    • memory-optimized: メモリ最適化 M1 または M2 マシンタイプのコミットメント
    • accelerator-optimized: アクセラレータ最適化 A2 マシンタイプのコミットメント
    • graphics-optimized: アクセラレータ最適化 G2 マシンタイプのコミットメント
  • REGION: ソース コミットメントと同じリージョン。

  • PROJECT_ID: ソース コミットメントを分割するプロジェクトのプロジェクト ID。

  • DURATION: ソース コミットメントと同じ期間(12-month または 36-month)。

  • NUMBER_VCPUS: 新しい分割コミットメントを作成するために、ソース コミットメントから転送する vCPU の数。この値は、ソース コミットメントの vCPU の数よりも小さい整数にする必要があります。

  • MEMORY: 新しい分割コミットメントを作成するためにソース コミットメントから転送するメモリの量(MB または GB)。この量は、ソース コミットメントのメモリ量未満にする必要があります。例: 1,000 MB。単位を指定しないと、デフォルトで GB が使用されます。メモリは 0.25 GB 単位で購入できます。

  • SOURCE_COMMITMENT_URL: リソースを切り出すソース コミットメントの URL。

たとえば、3 つの vCPU と 2,048 MB のメモリを備えたソース コミットメント(source-commitment)について考えてみます。次の gcloud CLI コマンドは、source-commitment からリソースを取得して、1 vCPU と 1,024 MB のメモリで分割コミットメント(split-commitment)を作成し、source-commitment を残りのリソースにサイズ変更します。

gcloud compute commitments create split-commitment \
    --plan=12-month \
    --project=myproject \
    --resources vcpu=1,memory=1024MB \
    --split-source-commitment=projects/myproject/regions/us-central1/commitments/source-commitment

API

既存のコミットメントを 2 つのコミットメントに分割するには、regionCommitments.insert メソッドを使用します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
{
  "name": COMMITMENT_NAME,
  "plan": DURATION,
  "type" COMMITMENT_TYPE,
  "resources": [
    {
      "type": "vCPUs",
      "amount": NUMBER_VCPUS
    }
    {
      "type": "MEMORY",
      "amount": MEMORY
    }
  ],
  "splitSourceCommitment": SOURCE_COMMITMENT_URL
}

次のように置き換えます。

  • PROJECT_ID: ソース コミットメントを分割するプロジェクトのプロジェクト ID。
  • REGION: ソース コミットメントと同じリージョン。
  • COMMITMENT_NAME: 新しい分割コミットメントの名前。
  • COMMITMENT_TYPE: ソース コミットメントと同じコミットメント タイプ。次のいずれかです。

    • GENERAL_PURPOSE: 汎用 N1 マシンタイプのコミットメント
    • GENERAL_PURPOSE_N2: 汎用 N2 マシンタイプのコミットメント
    • GENERAL_PURPOSE_E2: 汎用 E2 マシンタイプのコミットメント
    • GENERAL_PURPOSE_N2D: 汎用 N2D マシンタイプのコミットメント
    • GENERAL_PURPOSE_T2D: 汎用 T2D マシンタイプのコミットメント
    • COMPUTE_OPTIMIZED: コンピューティング最適化 C2 マシンタイプのコミットメント
    • COMPUTE_OPTIMIZED_C2D: コンピューティング最適化 C2D マシンタイプのコミットメント
    • MEMORY_OPTIMIZED: メモリ最適化 M1 または M2 マシンタイプのコミットメント
    • ACCELERATOR_OPTIMIZED: アクセラレータ最適化 A2 マシンタイプのコミットメント
    • GRAPHICS_OPTIMIZED: アクセラレータ最適化 G2 マシンタイプのコミットメント
  • DURATION: ソース コミットメントと同じ期間(TWELVE_MONTH または THIRTY_SIX_MONTH)。

  • NUMBER_VCPUS: 新しい分割コミットメントを作成するために、ソース コミットメントから転送する vCPU の数。この値は、ソース コミットメントの vCPU の数よりも小さい整数にする必要があります。

  • MEMORY: 新しい分割コミットメントを作成するためにソース コミットメントから転送するメモリの量(MB)。この量は、ソース コミットメントのメモリ量未満にする必要があります。例: 1,000 MB。単位を指定しないと、デフォルトで MB が使用されます。メモリは 0.25 GB 単位で購入できます。

  • SOURCE_COMMITMENT_URL: リソースの転送元となるソース コミットメントの URL。

たとえば、3 つの vCPU と 2,048 MB のメモリを備えたソース コミットメント(source-commitment)について考えてみます。次の Compute Engine API リクエストは、source-commitment からリソースを取得して、1 vCPU と 1,024 MB のメモリで分割コミットメント(split-commitment)を作成し、source-commitment を残りのリソースにサイズ変更します。

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/commitments
{
  "name": "split-commitment",
  "plan": "TWELVE_MONTH",
  "resources": [
    {
      "type": "VCPU",
      "amount": "1"
    }
    {
      "type": "MEMORY",
      "amount": "1024"
    }
  ],
  "splitSourceCommitment": "projects/myproject/regions/us-central1/commitments/source-commitment"
}

次のステップ