確約利用割引(Compute Engine)を解説。AWSとの違いも確認

記事タイトルとURLをコピーする

G-gen の杉村です。 Google Cloud (旧称 GCP) の仮想サーバのサービスである Google Compute Engine (GCE) には 確約利用割引 (Committed use discounts) という割引の仕組みがあります。

本記事では確約利用割引の仕組みを分かりやすく解説します。また、 Amazon Web Services (AWS) の類似機能である Reserved Instance や Savings Plans との違いについても言及します。

確約利用割引の基本

確約利用割引とは

確約利用割引 とは、一定の利用を Google にコミット (確約) することと引き換えに、通常よりも割引された料金で Google Cloud リソースを利用できる割引プランのことです。英語で Committed Use Discounts と表記されるため CUD と略称されることもあります。

ポイントをまとめると、以下の通りです。

  • 1 年間または 3 年間 の利用を確約することで 割引 を得られる
  • 前払いなし 、支払いは 毎月
  • Google Compute Engine や Cloud SQL、Google Kubernetes Engine で利用可
    • ただしそれぞれの確約利用割引の間で融通はできない (別々で購入する必要がある)

当記事では特に Compute Engine の CUD について解説します。Compute Engine の確約利用割引は2種類存在します。

一つは リソースベースのコミットメント と呼ばれる種類です。一定の Compute Engine リソースを 1 年間または 3 年間使用することの確約と引き換えに、最大 57% の割引料金が適用されます。

もう一つは 費用ベースのコミットメント です。こちらは Flexible CUD とも呼ばれます。リソースベースのコミットメントとは異なり「いくら金額を使うか」をコミットし、最大 46 % の割引を受けることができます。リージョンやマシンシリーズに縛られないメリットがあります。

料金

確約利用割引の料金は 料金ページ に記載があります。

オンデマンド料金 (通常料金) やプリエンプティブル料金 ("売れ残りインスタンス" の安売り料金) とともに併記されています。また公式の 料金計算ツール でも算出できます。

確約利用割引を購入すると、 月単位で料金支払いが発生 します。

AWS の Reserved Instance や Savings Plans とは異なり、 Google Cloud の確約利用割引では 前払いはありません

金額の例

e2-standard-2 (vCPU 2 cores, Memory 8 GB) でリソースベースのコミットメントを購入する場合を例に取ります。

このマシンタイプの月額は、東京リージョン (2022 年 4 月現在) では $62.75372 / 月です。※ストレージ料金は計算に入れていません。

1年コミットメントの場合、これが $39.53096 となり、 約37%オフ となっています。

2種類の確約利用割引

リソースベースのコミットメント

仕組み

2種類ある確約利用割引のうちの一つは「リソースベースのコミットメント」です。vCPU、メモリ、GPU、ディスクなどに対してそれぞれ確約利用割引を購入できます。

なお購入は「 コミットメント (commitment) 」を「 作成する (create) 」のように表現することもあります。

コミットメントの作成はコンソールや CLI、 API 経由で可能です。コンソールの場合は「Compute Engine コンソール>確約利用割引」から購入します。

以下の例では Google Cloud コンソールで「 東京リージョンE2タイプvCPU を4コアRAM を 8 GB 購入する。期間は 1 年間のコミット。」といった指定の仕方をしています。

確約利用割引の購入画面

購入・適用方法

コンソールの場合は「Compute Engine コンソール>確約利用割引」から購入します。

購入時には「 利用するリソースの量・期間の確約 」を指定します。購入すると、リージョン内に存在している そのスペックを持ついずれかの VM自動的に割引が適用 されます。

そのため、当初に割引対象として想定していた VM の設定を変更して、別のインスタンスタイプに変えたとしても、同じタイプのインスタンスが他に存在していれば、自動的にそちらに割引が適用されます。

また、確約利用割引では「カスタムマシンタイプ」と「事前定義のマシンタイプ」は区別されません。

購入方法の例として 公式ドキュメント を引用します。

例として 8 コアのコミットメントを購入し、その月に 24 コアを実行した場合、8 コア分のみ確約利用割引が適用されます。
残りの 16 コアは標準料金 (確約利用でない料金) で課金されます。

8コアの確約を購入。実際使ったのは24コア

このように、購入したコア数を超える分については、 自動的に標準料金で請求 されるようになります。

逆に、購入したコミットメントに対しては、 たとえ使用していなくても毎月請求があります
8 コアのコミットメントを購入したとして、実際には 4 コア分しか使っていなくても、しっかり 8 コア分が請求されます。

無駄になるパターン

Flexible CUD

仕組み

2種類目の Flexible CUD (フレキシブル CUD) は費用ベースのコミットメントとも呼ばれます。

「1年または3年の長期利用をコミットして割引を享受する」「前払いなしで毎月支払い」という点はリソースベースのコミットメントと同様です。しかし Flexible CUD の場合は以下の特徴があります。

  • vCPU 数やメモリ量ではなく、費用ベース (いくら分、利用するか) でコミットする
  • 費用をコミットしたら、リージョン、プロジェクト、マシンシリーズに関係なく適用
  • 1年コミットメントは 28% 割引、3年コミットメントは 46% 割引

例で説明します。Flexible CUD を以下の条件で購入したとします。

  • オンデマンド費用 $100 / 時間でコミット
  • 3年コミットメント

3年コミットでは 46% の割引が適用されます。毎時の vCPU/Memory の利用料金のうち、$100 消費した分までが $54 の支払いで済みます。

ある時刻の利用が $100 を超えなかった場合でも、最低 $54 の支払いが発生します。逆に $100 を超えて $150 使った場合、$100 までが CUD でカバーされ $54 になり、残りの $50 は定価で支払うことになります (この $50 は継続利用割引の対象にはなります)。

購入・適用方法

Flexible CUD は請求先アカウント単位で購入します。コンソールでは「お支払い>確約利用割引」の画面から購入することができます。

同じ請求先アカウント内であればリージョン、プロジェクト、マシンシリーズに関係なく適用されます。

ただし適用対象となるマシンタイプは以下のみです。

  • General purpose: N1, N2, E2, N2D
  • Compute-optimized: C2, C2D

Flexible CUD がどのリソースに適用されるかはユーザー側で選択できず、自動で適用されます。自動適用のロジックは以下の通りです。

  1. まずリソースベースの CUD (通常の CUD) が各リソースに適用される
  2. 残りのリソースに、Flexible CUD が適用される
  3. 残りのリソースに継続利用割引が適用される

どんなときに購入すべきか

購入すべきとき

確約利用割引は「最低限必要なリソース量が、長期に渡ってある程度予測できるシステム」において購入すべきです。

例えば「 基本的に 24 時間稼働 であり、 利用者数が概ね決まって いて、稼働開始から 3 ヶ月程度経過済み の社内システム」などが最も分かりやすいでしょう。

購入すべきではないとき

逆に、以下のようなケースでは購入 すべきではありません

  1. 立ち上げたばかりのビジネスであり先行きが不明な場合
  2. 稼働したばかりのシステムであり本番利用の負荷の様子を見たい場合
  3. 平日昼間しか稼働させない開発用 VM など特定時間だけ起動する VM の場合

確約利用割引は 1 年または 3 年の利用を確約する必要があり、途中で解約や変更はできません

例 1. は、ビジネスが確約した期間より短いスパンで撤退になったり、縮小になる可能性があるケースです。購入した確約利用割引が無駄になってしまうかもしれません。

例 2. は、撤退は考えられないまでも、新設/移行からカットオーバーしたばかりで本番利用して間もないケースです。もしかしたら思っていたよりも小さいインスタンスタイプで十分かもしれません。本番稼働開始から 3 〜 6 ヶ月程度は様子見の期間を設けるのが定石です。

例 3. は、こまめに停止・起動したほうが安くなるパターンです。確約利用割引を購入した場合の費用と、こまめに停止した場合の費用を比べて、どちらが安くなるかを正しく見定めましょう。公式の 料金計算ツール料金ページ を見ることで、自分で計算できます。

また、3年間の確約の購入には 慎重に なったほうが良いでしょう。
3年が経つと、より安価で高性能なマシンタイプが発表される可能性がありますし、ワークロードが変化する可能性も高くなります。

コミットメントの更新

コミットメントは 1 年または 3 年で作成しますが、期限が切れると割引が終了し、その日からは 通常料金での請求 となってしまいます。

再度手動で購入することもできますがリソースベースのコミットメントでは コミットメントの自動更新 の機能を利用することもできます。

コミットメントの自動更新を設定すると、更新後のコミットメントの期間は、元のコミットメントと同じになります。

自動更新をオンにすると、自動更新をキャンセルしない限り、コミットメントの終了日に自動的に更新されます。
なおキャンセルは、更新日の午後 12 時 (太平洋標準時間 = PST) までに行う必要があります。

確約利用割引の応用

推奨の確認

Google Cloud コンソールの「お支払い > コミットメント分析 > 推奨事項」などから、どれくらいの確約利用割引を購入するべきか、などの 推奨事項 を見ることができます。

これは Google Cloud のサービスである Recommender により、機械学習等を用いて生成された推奨事項です。参考にしたうえで、購入の判断に活用しましょう。

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

Flexible CUD の場合

Flexible CUD においては同じ請求先アカウント内でコミットメントが共有・分配されます。

そのため「プロジェクト間で共有する」ことはそもそも考える必要がありません。

リソースベースのコミットメントの場合

一方のリソースベースのコミットメントはプロジェクト単位の購入であるものの、明示的に指定することで同じ 請求先アカウント を共有する複数のプロジェクト間で、購入した確約利用割引を 共有できます

これにより、例えば大規模に Google Cloud を利用している会社等では、組織として確約利用割引を購入しておき、 Google Cloud 利用者の意識しないところで割引を適用し費用の全体最適を図ることができます。Flexible CUD でも同様のことが簡単に実現できますが、割引率はリソースベースのほうが大きくなります。

また アトリビューション という仕組みで、確約利用割引がどのプロジェクトに割り当てられるかを制御することができます。

デフォルトでは 比例アトリビューション モードとなっており、各プロジェクトで消費された対象リソースの合計使用量に応じた割合で、確約利用割引がプロジェクトに配分されます。

一方の 優先アトリビューション では、明示的に割当の優先順位を指定できます。

リソースの予約

確約利用割引を購入したとしても、これはキャパシティの予約とは 別の概念 です。

「キャパシティの予約」とは、特定ゾーンのコンピュートリソースを予約し、必ず起動できる状態にすることです。
予約をしていないと、まれではありますが、 Google 側の物理リソースが足りない場合、必要なときに VM を起動したりストレージを追加できないことがあります。

このような状態を キャパシティ不足 と言います。

確約利用割引とは別の概念として ゾーンリソースの予約 を行うことで予めキャパシティ予約を行うことができます。

リソースの予約を行うと、その分のリソースを利用できることが確定しますが、 使わなくても料金が発生 します。
確約利用割引と組み合わせることで、予約をしつつ割引料金の適用が得られます。

VM に関して言えば、 VM を常時起動したままにしておけば、リソースの予約は必要ないかもしれません (何かの機会に VM を一時的に停止したときに、起動する際にキャパシティ不足になる可能性はゼロではありませんが) 。常時起動は確約利用割引の割引を最大限活かせる使い方です。

しかしながら、 GPU とローカル SSD の場合は、確約利用割引の購入時に リソース予約が必須 である仕様になっています。
コミットメントが期限切れになるまで予約のロケーションとサイズは変更できません。
GPU とローカル SSD の場合は、購入と同時にリソース予約も作成する、というのがポイントです。

コミットメントの結合・分割

リソースベースのコミットメントは購入後に 結合・分割 が可能です。

コミットメントを結合するメリットは、複数のコミットメントを結合することで期限切れになる期間を調整することができる点です。結合されたコミットメント群のうち最も遅い有効期限が、結合後の有効期限になります。

ただし結合するコミットメント同士は、同じプロジェクト・リージョン・期限 (1 or 3 years)・マシンタイプ等は同等である必要があります。

コミットメントを分割するメリットも同様に、終了期限を管理しやすくなる点です。大きなコミットメントを分割し、一部は期限が来たら終了させ残りは自動更新させる、といったことができます。

詳細は以下のドキュメントをご参照ください。

注意点

確約の変更やキャンセルはできない

確約利用割引は一度購入すると、変更やキャンセルはできません。
購入時には「購入間違い」「不必要な分まで購入してしまう」などに十分注意する必要があります。

後から足りなくなった分については追加購入が可能ですが、減らしたりキャンセルすることはできない点に、十分注意です。

ただし 2023 年 2 月のアップデートで1年コミットを3年コミットに アップグレードできる ようになりました。コミット期間を伸ばすことでより深い割引を得ることができます。

確約利用割引の適用範囲

リソースベースの確約利用割引はリージョン単位での購入となります。そのためリージョンをまたいでリソースを利用しても、割引が適用されない点に注意が必要です。

一方の Flexible CUD はプロジェクト、リージョン、マシンシリーズをまたいで適用されます。

割り当て (クォータ) の確認

Google Cloud には 割り当て (クォータ) という概念があります。

プロジェクトごとやリージョンごとに、使用可能なリソースの最大値が決まっており、誤って大量消費してしまうことを防いでいます。

確約利用割引でもリージョンごとに購入可能な確約利用割引の割り当て (クォータ) が決まっています。コンソールの「割り当て」画面等から、上限緩和をすることが可能です。

常時起動していないインスタンスへは適用されない場合がある

VM を月の中で長期間停止していたり、あるいは1日の中で頻繁に起動・停止しているような場合、そのインスタンスには確約利用割引が適用されない場合があります。確約利用割引は常時起動している VM を対象として想定しています。公式ドキュメントでは以下のように表現されています。

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

確約利用割引が適用できないケース

リソースベースのコミットメント

インスタンスタイプの制限としては、f1-micro および g1-small マシンタイプ (N1 共有コアマシン) はリソースベースの確約利用割引の対象になりません。

また プリエンプティブル インスタンスや VM にアタッチした 拡張メモリ にも適用されません。

また確約利用割引はバックエンドで Compute Engine を使う Google Kubernetes Engine 、Dataproc 、Cloud Composer 1 の VM には適用されますが、一方で App Engine 、 Dataflow 、 Cloud Composer 2 には適用されません。

Flexible CUD

対象となるマシンタイプは以下のみであり、それ以外には適用されません。

  • General purpose: N1, N2, E2, N2D
  • Compute-optimized: C2, C2D

AWS との違い

Amazon Web Services (AWS) にも Reserved InstanceSavings Plans といった、類似の割引プランが存在しています。
それぞれ、仮想サーバ等コンピューティングリソースの利用を 1 年または 3 年でコミットし「全額前払い / 一部前払い / 前払いなし」 のいずれかから選択して割引料金の適用を得られるものです。

Reserved Instance と Savings Plans の違いは、サーバーワークス社の以下のブログで非常に分かりやすく解説されています。

blog.serverworks.co.jp

AWS の Reserved Instance / Savings Plans は、 Google Cloud の確約利用割引とよく似た制度ですが、以下のような違いがあります。

  1. 前払いオプション (全額前払い / 一部前払い / 前払いなし) があること
  2. (Savings Plans) インスタンスファミリー (Google Cloud でいうマシンシリーズ) をまたいで柔軟に適用される
  3. (Reserved Instance) 購入した Reserved Instance を Marketplace で売却できる

その他にも Reserved Instance ではアベイラビリティゾーン指定の購入オプションがある、など細かい違いは多数あります。 最も大きな違いは、AWS には 前払いオプションが存在し、前払い額が大きいほど割引額が大きくなる 点です。

Google Cloud の確約利用割引では前払いオプションがなく、月額での支払いとなるので、この点が大きな違いだと言えます。

杉村 勇馬 (記事一覧)

執行役員 CTO / クラウドソリューション部 部長

元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。