確約利用割引

Compute Engine では、確約利用契約を購入できます。これにより、VM 使用量に大幅な割引価格が適用されます。この割引を確約利用割引といいます。

確約利用割引は、必要なリソース量を予測可能なワークロードに最適です。確約利用割引を購入すると、1 年間または 3 年間の支払いを確約する代わりに、コンピューティング リソース(特定の量の vCPU、メモリ、GPU、ローカル SSD)を割引価格で購入できます。マシンタイプや GPU など、ほとんどのリソースタイプに最大 57% の割引が適用されます。メモリ最適化マシンタイプの場合は、最大で 70% の割引が適用されます。マシンタイプ別の確約利用料金については、VM インスタンスの料金ページをご覧ください。

1 つのプロジェクトの確約利用契約を購入することも、複数の契約を購入し、共有割引を有効にして複数のプロジェクトで共有することもできます。

購入後は、サービスを使用するかどうかにかかわらず、選択した期間中、購入したリソースに対して月単位で料金が発生します。予測可能なワークロードがある場合、確約利用割引を利用すると、必要なリソースの費用を抑えることができます。

確約利用割引は、共有されていないすべての Compute Engine コアマシン タイプに適用されます。事前定義とカスタムのどちらのマシンタイプにも適用されます。確約利用割引はシンプルかつ柔軟であり、初期費用は不要です。割引は、リージョン内の vCPU、メモリ、GPU、ローカル SSD の総数に適用されます。インスタンスのマシン設定を変更しても影響はありません。

始める前に

確約利用割引の仕組み

プロジェクト数が少ない場合は、使用する予定の特定のリソースについてのみコミットメントを購入できます。

たとえば、8 コア用のコミットメントを購入し、その月に 24 コアを実行した場合、8 コア分の確約利用割引が適用されます。その他の 16 コアは、標準の確約利用でない率で課金されます。コミットメントを購入すると、たとえ使用しなくても、購入したコミットメントに対して毎月料金を請求されることに注意してください。たとえば、8 コア用のコミットメントを購入すると、これらのコアを月の一部でしか実行しなかった場合でも、その月全体に対する 8 コア用の確約された利用料金が請求されます。使用することがわかっている増分のみのコミットメントを購入することをおすすめします。

確約利用割引の対象とならないリソースは、自動的に継続利用割引の対象となります。

確約利用割引は vCPU とメモリの両方に適用されます。vCPU またはメモリの確約利用割引は個別に購入できます。

コミットメントはバースト シナリオ用にスタックすることはできません。たとえば、ある月に 10 コア分を購入した後、その月の半分の期間で 20 コアを稼働させた場合、使用量が半分になったという理由だけでは、20 コア全体に対するコミットメントは適用されません。

確約利用割引の対象でないリソースは、マシンタイプ ファミリー単位の継続利用割引の対象になります。

例:

1 か月のある期間に n2-standard-2 を実行し、同じ月の残りの期間に n2-standard-8 を実行した場合、これらのマシンタイプはいずれも n2-standard ファミリーに属しているため、Compute Engine はこの 2 つを組み合わせ、確約利用割引の対象外の部分に対して継続利用割引を適用します。

デフォルトでは、確約利用割引はプロジェクト レベルで適用されますが、請求先アカウントから割引の共有を有効にして複数のプロジェクトで割引を共有できます。

プロジェクト間での確約利用割引の共有

すべてのプロジェクトで確約利用割引を共有すると、プロジェクト単位で割引を管理する手間が減り、プロジェクトのリソース使用量全体で割引がプールされます。

同じ Cloud Billing アカウントを共有するプロジェクトが複数ある場合、確約利用割引の共有を有効にして、その Cloud Billing アカウント内のすべてのプロジェクトですべての確約利用割引契約を共有できます。継続利用割引も同時にプールされます。つまり、1 つのプロジェクト内のリソースだけでなく、これらのプロジェクト全体のリソースを使用して継続利用割引が計算されます。

たとえば、2 つのコミットメント契約を合計 160 コアで購入し、その月に 200 コアを実行すると、それらのコアを使用したプロジェクトで 160 コアの確約利用割引が適用されます。残りの 40 コアは、オンデマンドの非確約利用料金で請求されます。コミットメントを購入すると、たとえ使用しなくても、購入したコミットメントに対して毎月料金を請求されることに注意してください。たとえば、160 コアのコミットメントを購入した場合、そのコアを使用しなくても、160 コア分の 1 か月の確約利用料金が請求されます。コスト削減のおすすめの方法については、割引の共有についてをご覧ください。

確約利用割引には、Google Cloud のコミットメントに基づいた料金と請求が適用されます。確約利用割引を購入するには、この規約に同意する必要があります。確約利用割引は更新されません。割引を継続するには、新しいコミットメントを作成する必要があります。

仕様

  • コミットメントを購入できるのは、コミットメントの割り当てがある場合だけです。 [割り当て] ページで、コミットメントの作成に必要な割り当てがあることを確認してください。割り当てページにコミットメントが表示されない場合、あるいは追加の割り当てが必要な場合には、割り当ての増加をリクエストする必要があります。

  • コミットメントはリージョン単位で購入する必要があります。

  • gcloud ツールを使用してコミットメントを管理するには、gcloud バージョン 147.0.0 以降を実行する必要があります。gcloud ツールを最新バージョンに更新するには、次のコマンドを実行します。

    gcloud components update
    

    gcloud ツールのバージョンを確認するには、次のコマンドを実行します。

    gcloud version
    
  • 確約利用割引が適用されない残りの vCPU とメモリは、継続利用割引の対象になります。

制限

  • Google Kubernetes Engine、Dataproc、Compute Engine では、確約利用割引が VM に自動的に適用されます。App Engine フレキシブル環境、Dataflow、Cloud SQL を使用して作成された VM には、確約利用割引は適用されません。
  • 無料枠期間中で無料枠クレジットが残っているプロジェクトや、お支払い履歴がないプロジェクトは、確約利用割引の対象になりません。
  • コミットメントは、リージョン単位での購入になります。
  • 確約利用割引は、その割引が購入されたプロジェクトまたは Cloud Billing アカウントでの使用量に適用されます。
  • 1 つの Cloud Billing アカウントのプロジェクト間で共有されたコミットメントの場合: コミットメントの一部が未使用の場合、コミットメントのその部分を購入したプロジェクトにコミットメント料金の残高が残ります。
  • 確約利用割引は、プリエンプティブル VM インスタンス共有コアマシン タイプ拡張メモリには適用されません。
  • GPU とローカル SSD の確約利用割引の場合、コミットメントの購入時に予約を作成する必要があります。
  • 確約利用割引に予約が作成されている場合、コミットメントの期間が終了するまで予約を削除できません。
  • K80 GPU の場合、1 年間のコミットメントのみ購入できます。

料金

GPU またはローカル SSD の有無にかかわらず、VM インスタンスの確約利用割引の料金はリージョンによって異なります。現在の料金については、料金をご覧ください。

コミットメント タイプ

以下のリソースでコミットメントを購入できます。

コミットメント タイプ 割引が購入可能なリソース 適用可能なリソースタイプ
汎用 E2 コミットメント
  • vCPU
  • メモリ
E2 マシンタイプ(共有コアを除く)。
汎用 N2 コミットメント
  • vCPU
  • メモリ
  • ローカル SSD
  • すべての N2 マシンタイプ
  • 単一テナントノード
汎用 N2D コミットメント
  • vCPU
  • メモリ
  • ローカル SSD
すべての N2D マシンタイプ
汎用 N1 コミットメント
  • vCPU
  • メモリ
  • GPU
  • ローカル SSD
  • N1 マシンタイプ(共有コアを除く)。
  • 単一テナントノード
  • GPUs:
    • NVIDIA® Tesla® V100
    • NVIDIA® Tesla® P100
    • NVIDIA® Tesla® P4
    • NVIDIA® Tesla® K80
コンピューティング最適化コミットメント
  • vCPU
  • メモリ
コンピューティング最適化マシンタイプ
ベータ版のメモリ最適化コミットメント
  • vCPU
  • メモリ
メモリ最適化マシンタイプ

e2-microe2-smalle2-mediumf1-micro、または g1-small マシンタイプ、あるいは単一テナント プレミアム料金には、確約利用割引が適用されません。

マシンタイプのコミットメント

使用しているマシンタイプに適したコミットメント タイプを購入します。汎用コミットメントの割引は、次の順序でリソースに適用されます。

  1. 購入したコミットメントに応じて、E2、N2、N2D、N1 のカスタム マシンタイプ
  2. 単一テナントノード
  3. 購入したコミットメントに応じて、事前定義の E2、N2、N2D、または N1 マシンタイプ

汎用コミットメントを購入するとき、コミットメントが適用される世代を選択します。たとえば、汎用の E2 コミットメントを購入した場合、これらは E2 マシンタイプにのみ適用されます。同様に、汎用の N2、N2D、N1 のコミットメントを購入する場合、コミットメントが重複することはありません。

たとえば、1 つのリージョンで次のアイテムを組み合わせて使用する場合について考えてみましょう。

  • 10 個の N2 カスタム マシンタイプの vCPU
  • カスタム マシンタイプの 30 GB のメモリ
  • 2 つの事前定義された n2-standard-4 マシンタイプ

15 個の vCPU と 13.5 GB のメモリの確約利用を N2 コミットメントで購入します。まず N2 カスタム マシンタイプに確約利用割引が適用され、事前定義された N2 マシンタイプに残りの割引が適用されます。このケースでは、N2 カスタム マシンタイプの 10 個の vCPU すべてが確約利用料金で課金され、カスタム マシンタイプのメモリの 13.5 GB が確約利用料金で課金されます。

最終的に、確約利用の残りの 5 個の vCPU は、2 つの n2-standard-4 machine タイプからランダムに選ばれた 5 個の vCPU に適用されます。確約利用割引が適用されないリソースは、継続利用割引の対象になります。

汎用マシンタイプのコミットメントを購入するには、マシンタイプのコミットメントの購入をご覧ください。

メモリ最適化コミットメント

メモリ最適化マシンタイプを使用する場合は、メモリ最適化コミットメントを購入します。メモリ最適化マシンタイプのコミットメントを購入するには、マシンタイプのコミットメントの購入をご覧ください。

コンピューティング最適化コミットメント

コンピューティング最適化マシンタイプを使用する場合は、コンピューティング最適化コミットメントを購入します。コンピューティング最適化マシンタイプのコミットメントを購入するには、マシンタイプのコミットメントの購入をご覧ください。

GPU とローカル SSD のコミットメント

GPU またはローカル SSD のコミットメントを購入するには、コミットメントの購入時にリソースを予約する必要があります。実際に使用するかどうかにかかわらず、リソースの予約を行うことでリソースが常に利用可能な状態になります。リソースの予約に追加料金はかかりません。

特定の GPU タイプではコミットメントの購入が必要になります。たとえば、Tesla P100 または Tesla V100 の GPU を購入することはできますが、他の GPU に適用するつもりで Tesla P100 GPU のコミットメントを購入することはできません。

GPU とローカル SSD のコミットメントを購入するには、GPU とローカル SSD のコミットメントの購入をご覧ください。

予約の詳細については、ゾーンリソースの予約をご覧ください。

コミットメントの割り当てをリクエストする

コミットメントを購入できるのは、コミットメントの割り当てがある場合だけです。 [割り当て] ページで、コミットメントの作成に必要な割り当てがあることを確認してください。

gcloud ツールまたは API を使用して、リクエストを送信したときに、コミットメントの割り当てがない場合、サーバーから次のエラーが返されます。

"Quota 'COMMITMENTS' exceeded. Limit: 0.0"

Cloud Console で割り当てを確認するには

  1. Google Cloud Console で、[割り当て] ページに移動します。

    [割り当て] に移動

  2. [割り当てのタイプ] リストで、[すべての割り当て量] を選択します。

  3. [指標] リストで [なし] を選択し、すべての割り当てを非表示にして、検索ボックスに「commitments」と入力してコミットメントの割り当てを検索します。

  4. 結果リストから [コミットメント] を選択します。

    コミットメント。

  5. 目的のリージョンのコミットメントの割り当てをオンにします。コミットメントの割り当てがない場合、上限は 0 になります。

    コミットメントなし。

コミットメントの割り当てをリクエストするには

  1. Google Cloud Console で、[割り当て] ページに移動します。

    [割り当て] に移動

  2. [割り当てのタイプ] リストで、[すべての割り当て量] を選択します。

  3. [指標] リストで [なし] を選択し、すべての割り当てを非表示にして、検索ボックスに「commitments」と入力してコミットメントの割り当てを検索します。

  4. 結果リストから [コミットメント] を選択します。

    コミットメント。

  5. 割り当てを追加するリージョンのサービス コミットメントの横にあるチェックボックスをオンにします。

  6. [割り当てを編集] ボタンをクリックします。

  7. メッセージが表示されたら、名前メールアドレス電話番号を入力します。[次へ] をクリックします。

  8. 必要な割り当ての上限を入力し、リクエストの説明を入力します。[完了] をクリックします。

  9. [リクエストを送信] をクリックしてリクエストを送信します。

コミット済みリソース割り当て量の引き上げ

確約した CPU、ローカル SSD、GPU (NVIDIA V100 GPU など)に十分な割り当て量がない場合は、割り当てページから割り当ての増加をリクエストします。コミットメントを利用するには、十分なリソース割り当て(NVIDIA V100 GPU など)も必要になります。これらの割り当ての増加はいつでもリクエストできます。

マシンタイプのコミットメントの購入

マシンタイプのコミットメントは、Cloud Console、gcloud コマンドライン ツール、または API を使用してプログラムで購入できます。GPU またはローカル SSD のコミットメントを購入するには、GPU とローカル SSD のコミットメントの購入をご覧ください。

デフォルトでは、プロジェクト オーナーに確約利用割引契約の購入権限が付与されます。ただし、特定のユーザーを追加または除外するカスタムロールを作成することもできます。確約利用割引契約の購入権限があるかどうか確認する方法については、アクセス制御をご覧ください。

コミットメントの購入後、翌日の深夜 0 時からコミットメントが有効になります。たとえば、月曜日の午後 3 時(PST)に購入した場合、コミットメントは火曜日の午前 0 時(PST)から有効になります。割引は、指定したリージョンの該当するインスタンスに自動的に適用されます。

購入したコミットメントを取り消すことはできません。

Console

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

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

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

  3. コミットメントに名前を付けます。

  4. 適用するリージョンを選択します。

  5. 次のようにコミットメント タイプを選択します。
    マシンタイプが E2 の場合は汎用 E2
    N2 の場合は汎用 N2
    N2D の場合は汎用 N2D
    N1 の場合は汎用 N1
    コンピューティング最適化の場合はコンピューティング最適化
    メモリ最適化の場合はメモリ最適化

  6. [期間] で、コミットメントの期間(1 年または 3 年)を選択します。

  7. [コア数] と [メモリ] に、購入するコア数とメモリ量をそれぞれ入力します。下限はありません。ゼロにすることもできます。コアの数量は 0 以上の整数で入力する必要があります。メモリは 0.25 GB 単位で購入できます。

  8. [購入] ボタンをクリックして、コミットメントを購入します。

  9. 購入条件を確認します。コミットメントを購入する準備ができたら [購入] をクリックします。

gcloud

gcloud ツールを使用して、gcloud beta compute commitments create コマンドを実行します。

gcloud beta 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 の数は 0 以上の整数でなければなりません。奇数でも偶数でもかまいません。
  • MEMORY: コミットメントを購入するメモリの量(MB または GB)。例: 1000MB単位を指定しないと、デフォルトで GB が使用されます。メモリは 0.25 GB 単位で購入できます。
  • DURATION: コミットメントの期間(12-month または 36-month)。
  • COMMITMENT_TYPE: 次のいずれか。

    • general-purpose-e2: 汎用 E2 マシンタイプのコミットメント。
    • general-purpose-n2: 汎用 N2 マシンタイプのコミットメント。
    • general-purpose-n2d: 汎用 N2D マシンタイプのコミットメント。
    • general-purpose: 汎用 N1 マシンタイプのコミットメント。
    • compute-optimized: コンピューティング最適化コミットメント。
    • (ベータ版)memory-optimized: メモリ最適化コミットメント。

      --type フラグを指定しないと、デフォルトで general-purpose が使用されます。

N1 マシンタイプ用の汎用コミットメントを作成するには、次の例を使用できます。

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

コンピューティング最適化コミットメントを作成するには、gcloud compute commitments create コマンドを使用します。ここでは、コンピューティング最適化マシンタイプの 1 年間のコミットメントを購入します。

gcloud compute commitments create example-compute-optimized-commitment \
    --region us-central1 --resources vcpu=2,memory=3814GB --plan 12-month \
    --type compute-optimized

メモリ最適化コミットメントを作成するには:

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

GPU またはローカル SSD のコミットメントを作成するには、gcloud compute commitments create コマンドを使用して、コミットメント購入時に予約を作成する必要があります。たとえば、次のコミットメントでは 4 つの GPU を購入し、それらの GPU が us-central1-a の 2 つのインスタンスに使用されるよう予約しています。

gcloud compute commitments create example-reservation-commitment \
    --region=us-central1 \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-central1-a \
    --machine-type=n1-standard-32
    --accelerator=type=nvidia-tesla-v100,count=2 \
    --vm-count=2

API

API では、次の URL に対して POST リクエストを作成します。リクエストの本文に、コミットメントに関する情報を記述します。

https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/commitments?requestId=OPTIONAL_UNIQUE_ID

リソースの本文では次の情報を指定する必要があります。

  • コミットメントの名前として name
  • コミットメントの期間として planTWELVE_MONTH または THIRTY_SIX_MONTH)。
  • resources にメモリと vCPU の量を指定します。メモリは MB 単位で指定します。VCPUMEMORY の両方を resources セクションに指定する必要があります。
  • コミットメントの typeGENERAL_PURPOSE_E2GENERAL_PURPOSE_N2GENERAL_PURPOSE_N2DGENERAL_PURPOSECOMPUTE_OPTIMIZEDMEMORY_OPTIMIZED のいずれか)。

たとえば、次の例では vCPU が 5 基、メモリが 18.75 GB の 1 年間のコミットメントを作成しています。

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

メモリ最適化コミットメントを作成するには、ベータ版の API を使用し、type プロパティを指定します。次の例は、m1-megamem-96 マシンタイプの 1 年間のコミットメントの購入を示しています。

{
  "name": "example-memory-optimized-commitment",
  "plan": "TWELVE_MONTH",
  "type": "MEMORY_OPTIMIZED",
  "resources": [
    {
    "amount": "96",
    "type": "VCPU"
    },
    {
    "amount": "1434",
    "type": "MEMORY"
    }
  ]
}

コンピューティング最適化コミットメントを作成するには、type プロパティを含めます。次の例では、c2-standard-16 マシンタイプの 1 年間のコミットメントを購入します。

{
  "name": "example-compute-optimized-commitment",
  "plan": "TWELVE_MONTH",
  "type": "COMPUTE_OPTIMIZED",
  "resources": [
    {
    "amount": "16",
    "type": "VCPU"
    },
    {
    "amount": "1434",
    "type": "MEMORY"
    }
  ]
}

GPU とローカル SSD のコミットメントの購入

GPU またはローカル SSD のコミットメントを購入するには:

  • 汎用 N1 コミットメントの購入が必要になります。GPU は、N1 マシンタイプでのみサポートされます。
  • コミットメントの購入時に、GPU またはローカル SSD のいずれかを含む予約を作成する必要があります。
  • vCPU またはメモリを確約する必要はありません。

コミットメントの購入は GPU タイプを特定して行う必要があります。たとえば、購入の際 Tesla P100 または Tesla V100 のどちらを指定してもかまいませんが、Tesla P100 GPU のコミットメントを購入し、それを他の GPU タイプに適用することはできません。

GPU とローカル SSD の予約量は、確約する量と同じにする必要があります。たとえば、4 つの V100 GPU を予約する場合は、4 つの V100 GPU を確約する必要があります。ただし、予約する vCPU とメモリの量は、コミットメントよりも少なくまたは多くすることができます。

GPU またはローカル SSD のみを確約する場合は、vCPU とメモリのコミットメントに 0 を指定できます。ただし、コミットメントに作成する予約には、コミットメントと同じ GPU とローカル SSD が含まれ、予約するマシンタイプ(vCPU およびメモリを含む)が含まれている必要があります。

Cloud Console、gcloud ツール、または API を使用して、予約と同時に確約利用契約を購入します。

Console

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

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

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

  3. コミットメントに名前を付け、適用するリージョンを選択します。

  4. [コミットメント タイプ] で、[汎用] を選択します。

  5. [期間] で、コミットメントの期間(1 年または 3 年)を選択します。

  6. [コア数] と [メモリ] に、購入するコア数とメモリ量をそれぞれ入力します。vCPU とメモリを確約せずに、GPU またはローカル SSD のみを確約して予約する場合は、vCPU とメモリのコミットメント量に 0 を指定します。

  7. [GPU を追加] をクリックして、確約する GPU のタイプGPU の数を選択します。

  8. [ローカル SSD を追加] をクリックし、確約するディスクの数を指定します。

  9. GPU とローカル SSD を使用するインスタンスに 1 つ以上の予約を作成するには、[新しい予約を追加] をクリックします。

    1. 予約に名前を付けます。
    2. [VM インスタンスでの使用] で次の操作を行います。
      • この予約名を対象にし、条件を満たしているインスタンスを作成する場合にのみ、この予約のリソースを使用するには、[特定の予約を選択する] を選択します。
      • 条件を満たすインスタンスがこの予約を自動的に使用するように設定するには、[予約を自動的に使用する] を選択します。
    3. [ゾーン] で、リソースを予約するゾーンを選択します。
    4. 予約する VM インスタンスの数を指定します。
    5. インスタンスごとに予約するリソースを指定します。
      • インスタンス テンプレートを使用する場合は、[インスタンス テンプレートを使用] をクリックして、リストからインスタンス テンプレートを選択します。
      • それ以外の場合は、[マシンタイプを指定] をクリックします。
        1. [カスタマイズ] をクリックし、スライダーを使用してマシンタイプのコア数メモリ量を選択します。
        2. CPU プラットフォームを指定します。
        3. GPU を追加するには、[GPU] に GPU の数を入力し、[GPU のタイプ] でタイプを指定します。
        4. 必要であれば、各インスタンスに追加するローカル SSD の数を指定し、使用するインターフェース タイプを設定します。
    6. [完了] ボタンをクリックして、予約を作成します。
  10. [購入] ボタンをクリックして、コミットメントを購入します。

  11. 購入条件を確認します。コミットメントを購入する準備ができたら [購入] をクリックします。

gcloud

コミットメントを購入するには、gcloud compute commmitments create コマンドを使用し、予約を作成するフラグを指定します。

たとえば、次のコミットメントでは 4 つの GPU を購入し、それらの GPU が us-central1-a の 2 つの n1-standard-32 インスタンスに使用されるよう予約しています。

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-central1-a \
    --machine-type=n1-standard-16 \
    --accelerator=type=nvidia-tesla-v100,count=2 \
    --vm-count=2

vCPU とメモリを確約せずに、GPU またはローカル SSD のみを確約して予約する場合は、vCPU とメモリのコミットメント量に 0 を指定します。

gcloud compute commitments create commitment-01 \
    --region=us-west2 \
    --resources=vcpu=0,memory=0 \
    --resources-accelerator=type=nvidia-tesla-p4,count=1 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-west2-b \
    --machine-type=n1-standard-1 \
    --accelerator=type=nvidia-tesla-p4,count=1 \
    --vm-count=1

コミットメントの購入時に複数の予約を作成するには、予約のプロパティを含む YAML ファイルを使用します。例:

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --resources=vcpu=96,memory=624,local-ssd=750 \
    --resources-accelerator=type=nvidia-tesla-v100,count=1 \
    --plan 12-month \
    --reservations-from-file=YAML_FILE

たとえば、次の YAML ファイルには 2 つの予約が含まれています。最初の予約 res-01 には 1 GPU を使用する 1 つの n1-standard-1 インスタンスが含まれています。また、これはターゲット予約であり、対象となる予約済みインスタンスを使用するには、明示的にその予約名を指定しなければならないことを意味します。2 番目の予約 res-02 には、2 種類のローカル SSD が接続された 1 つの n1-standard-1 VM インスタンスが設定されています。

‐ reservation: res-01
  reservation_zone: us-central1-a
  require_specific_reservation: true
  vm_count: 1
  machine_type: n1-standard-1
  accelerator:
  ‐ count: 1
    type: nvidia-tesla-v100
‐ reservation: res-02
  reservation_zone: us-central1-a
  vm_count: 1
  machine_type: n1-standard-1
  local_ssd:
  ‐ interface: scsi
    size: 375
  ‐ interface: nvme
    size: 375

API

regionCommitments.insert メソッドを使用して、reservations フィールドを指定し、予約のプロパティを定義します。たとえば、次のコミットメントでは 4 つの GPU を購入し、それらの GPU が us-central1-a の 2 つのインスタンスに使用されるよう予約しています。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 2,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

vCPU とメモリを確約せずに、GPU またはローカル SSD のみを確約して予約する場合は、vCPU とメモリのコミットメント量に 0 を指定します。例:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "resources":
  [
    {
      "amount": "0",
      "type": "VCPU"
    },
    {
      "amount": "0",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 2,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

コミットメントが正常に作成されるのは、リクエストの時点で、ターゲット ゾーンに十分なリソースがあり、十分な割り当てがある場合のみです。

予約を追加してコミットメントを作成すると、そのコミットメントの期間中は予約を削除できません。コミットメントが期限切れになると、Compute Engine は関連付けられた予約を自動的に削除します。

確約した予約の間で GPU またはローカル SSD を移動する必要がある場合は、コミットメントに関連付けられている予約を変更するをご覧ください。

確約利用割引の共有を有効にする

デフォルトでは、購入したプロジェクトに確約利用割引が適用されます。Cloud Billing にリンクされている複数のプロジェクトで割引を共有するには、Console で確約利用割引の共有を有効にします。

請求先アカウントの情報にアクセスするには、特定の権限が必要です。詳細については、Cloud Billing のアクセス制御の概要をご覧ください。

  1. Google Cloud Console で Cloud Billing にログインします。

    Cloud Billing にログインする

    複数の Cloud Billing アカウントがある場合は、次のいずれかを行います。

    • 現在のプロジェクトの Cloud Billing を管理するには、[リンクされた請求先アカウントに移動] を選択します。
    • 別の Cloud Billing アカウントを見つけるには、[請求先アカウントを管理] を選択し、管理するアカウントを選択します。
  2. ナビゲーション メニューの [お支払い] から [コミットメント] を選択します。

  3. ページ上部の [コミットメントの対象範囲] を選択します。

    • 特定のプロジェクトに確約利用割引を選択した場合のデフォルトのオプションはプロジェクトです。設定を変更するには、共有請求を有効にする必要があります。
  4. テキスト入力ボックスに「Enable」と入力して、請求先アカウント スコープのコミットメントを有効にします。

  5. [請求先アカウントのスコープを有効にする] をクリックして変更を保存します。

確約利用割引の共有を有効にすると、以前に購入したものと今後購入するものを含め、同じ Cloud Billing アカウントのすべてのプロジェクトで現在の確約利用割引が共有されます。継続利用割引は、Cloud Billing アカウント内のすべてのプロジェクトでプールされ、共有されます。コミットメント スコープの構成を変更すると、翌日の太平洋標準時(PST)の午前 0 時に変更が有効になります。

確約利用割引が請求にどのように影響するかについては、確約利用割引の請求についてをご覧ください。

予約とコミットメントの組み合わせ

確約利用割引は、1 年分または 3 年分の割引価格契約を提供しますが、特定のゾーンの容量を予約するものではありません。予約を作成することで、予約された VM が実行されていなくても、特定のゾーンで容量が確実に保持されます。予約とコミットメントを組み合わせると、割引料金が適用される予約済みのリソースを確保できます。

コミットメントを購入し、GPU とローカル SSD の割引を受けるには、コミットメントの購入時に予約を作成します。 これらのリソースの場合、コミットメントが期限切れになるまで予約の場所とサイズは変更できません。

予約の詳細については、予約と確約利用割引の組み合わせをご覧ください。

コミットメントの変更

購入したコミットメントは変更できません。コミットメントを変更する必要がある場合は、増分額に新しい有効期限を設定して、新しいコミットメントを購入します。

たとえば、コミットメントの vCPU の数を 10 vCPU から 15 vCPU に増やすには、その差に応じて新しいコミットメントを購入します。この場合、5 つの vCPU に対して新しいコミットメントを購入します。

コミットメントで購入済みのリソースの量を減らすことはできません。たとえば、15 個の vCPU のコミットメントを 10 個の vCPU に変更することはできません。

有効なコミットメントを表示する

コミットメントを表示するには、Console または API を使用します。

Console

Google Cloud 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

次の URL に aggregatedList リクエストを送信すると、すべてのリージョンのコミットメントのリストを取得できます。

https://compute.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://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1",
  "selfLink": "https://compute.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: コミットメントは作成されていますが、まだ有効になっていません。コミットメントは、翌日の深夜 0 時に有効になります。
  • ACTIVE: コミットメントは有効です。
  • EXPIRED: コミットメントは期限切れです。Compute Engine は、有効期限から 210 日以上経過したコミットメントを削除します。

コミットメントの取り消し

作成したコミットメントをキャンセルすることはできません。コミットメントの期間中は合意した月額を支払う必要があります。今後 Compute Engine リソースの標準価格が変更されても、コミットメントはその影響を受けません。

コミットメントを誤って購入した場合や、コミットメントの構成を間違えた場合は、Google Cloud Billing サポートにご連絡ください。

確約利用割引の請求について

請求の詳細については、次のドキュメントをご覧ください。

サポート

請求書の確約利用割引についてご不明な点がある場合は、Google Cloud サポートにお問い合わせください

次のステップ