確約利用割引(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 Discount と表記されるため CUD と略称されることもあります。

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

  • 1 年間または 3 年間 の利用を確約することで 割引 を得られる
  • 前払いなし 、支払いは 毎月
  • Google Compute Engine や Cloud SQL 、 Google Kubernetes Engine で利用可

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

※ 一方で Cloud SQL や GKE の確約利用割引は 費用ベースのコミットメント ですが、当記事では詳細は解説しません。当記事では Compute Engine の確約利用割引のみを扱います。

料金

確約利用割引の料金は 料金ページ で各マシンタイプ別に、オンデマンド料金 (通常料金) やプリエンプティブル料金 ( "売れ残りインスタンス" の安売り料金 ) とともに併記されています。
また公式の 料金計算ツール でも算出できます。

1 年間の確約と 3 年間の確約がありますが、もちろん 3 年間のほうが割引が大きくなります。

確約利用割引を購入すると、 月単位で料金支払いが発生 します。
AWS の Reserved Instance や Savings Plans とは異なり、 Google Cloud の確約利用割引では 前払いはありません

e2-standard-2 (vCPU 2 cores, Memory 8 GB) を例に取ります。
このマシンタイプの月額は、東京リージョン (2022 年 4 月現在) では $62.75372 / 月です。※ストレージ料金は計算に入れていません。
1年コミットメントの場合、これが $39.53096 となり、 約37%オフ となっています。

購入方法

Compute Engine では vCPU 、メモリ、 GPU 、ディスクなどに対してそれぞれ、確約利用割引を購入できます。
なお確約利用割引の購入は「 コミットメント (commitment) 」を「 作成する (create) 」のように表現するときがあります。

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

確約利用割引の購入画面

あくまで購入するのは「 利用するリソースの量・期間の確約 」です。購入すると、リージョン内に存在している そのスペックを持ついずれかの VM自動的に割引が適用 されます。
そのため、当初に割引対象として想定していた VM の設定を変更して、別のインスタンスタイプに変えたとしても、同じタイプのインスタンスが他に存在していれば、自動的にそちらに割引が適用されます。

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

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

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

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

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

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

無駄になるパターン

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

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

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

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

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

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

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

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

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

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

更新

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

再度手動で購入することもできますが コミットメントの自動更新 の機能を利用することもできます (自動更新機能は 2022/01/19 に GA しました) 。

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

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

確約利用割引の応用

推奨の確認

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

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

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

同じ 請求先アカウント を共有する複数のプロジェクト間で、購入した確約利用割引を 共有できます

これにより、例えば大規模に Google Cloud を利用している会社等では、組織として確約利用割引を購入しておき、 Google Cloud 利用者の意識しないところで割引を適用し費用の全体最適を図ることができます。

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

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

リソースの予約

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

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

確約利用割引とは別の概念として ゾーンリソースの予約 を行うことで予めキャパシティ予約を行うことができます。
リソースの予約を行うと、その分のリソースを利用できることが確定しますが、 使わなくても料金が発生 します。
確約利用割引と組み合わせることで、予約をしつつ割引料金の適用が得られます。

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

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

注意点

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

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

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

確約利用割引の適用範囲

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

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

確約利用割引に限らず、 Google Cloud には 割り当て (クォータ) という概念があります。
プロジェクトごとやリージョンごとに、使用可能なリソースの最大値が決まっており、事故的に大量消費してしまうことを防いでいます。

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

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

f1-micro および g1-small マシンタイプ (N1 共有コアマシン) は確約利用割引の対象になりません。
また プリエンプティブル インスタンスや VM にアタッチした 拡張メモリ にも適用されません。

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

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 ではアベイラビリティゾーン指定の購入オプションがある、など細かい違いは多数あります。 最も大きな違いは、 前払いオプションが存在し、前払い額が大きいほど割引額が大きくなる 点です。
Google Cloud の確約利用割引では前払いオプションがなく、月額での支払いとなるので、この点が大きな違いだと言えます。

杉村 勇馬 (記事一覧) (Facebook)

クラウドソリューション部 部長

元・警察官という経歴を持つ現・エンジニア。クラウド管理運用やネットワークに知見。AWS 12冠、Google Cloud認定資格10冠。

2022年5月現在、ハマっているものはモンスターエナジーウルトラ。