Google Cloudの利用費を節約できる確約利用割引を購入してみた
確約利用割引(CUD: Commited Use Discount)は、一定の期間、一定の量のリソースを利用することを確約(コミットメント)することで適用される割引です。今回は、Zennで利用している Cloud Run と Cloud SQL で確約利用割引を購入してみましたので、記事にしたいと思います。
確約利用割引とは
改めて、確約利用割引とはどんなものかを説明します。確約利用割引とは、一定の期間、一定の量のリソースを利用することを確約(コミットメント)することで適用される割引です。期間と割引率については、サービスによって異なります。例えば、Cloud Runの場合、1年または3年、一定の費用を支払うことを確約することで、17%の割引を受けることができます。
コミットメントのタイプとして、単位時間あたりの「費用」をコミットするタイプと、「リソース」をコミットするタイプの2種類があります。費用ベースのコミットは、一定の期間、一定の費用を支払うことをコミットする契約になります。リソースベースのコミットは、vCPUやメモリといった、具体的なリソースを利用することをコミットする契約です(Compute Engineだけのオプションです)
その他、利用するサービスによっていろいろな制約がありますので、詳細は公式ドキュメントをご参照ください。
コミットメント量の決め方
以下はすべて「費用ベースのコミット」のお話です。
コミットメントは1時間単位の費用を設定するため、費用が固定であるか変動するかによって、コミットメント料の決め方が変わってきます。典型的な例として、Cloud SQLのようなインスタンスを常時起動するようなサービスの場合、1時間ごとの費用は一定です。それに対し、Cloud Runのような必要なときに必要なリソースだけ使用するようなサービスの場合、1時間ごとに費用に変動がありますので、その点を考慮する必要があります。
以下ではZennでの具体例について記載します。
Cloud SQL
まずは現状の費用を確認します。以下はZennの本番環境のCloud SQLの、とある1日の費用のグラフです。1時間あたりの費用は常に一定であることが分かります。
確約利用割引適用前のある1日のCloud SQLの費用
次に、確約利用割引の対象となる費用を調べます。Cloud SQLの確約利用割引の対象は、vCPUとメモリですから、料金ページから、東京リージョンのvCPUとメモリの1時間あたりの価格を調べます。
執筆時点の料金
既に確約利用割引が適用された料金も表示してくれていますが、コミットメントとして指定するのは通常料金の方です。
Zennの本番環境のCloud SQLは、HA構成で2 vCPU、7.5G メモリで稼働しています。
費用に換算すると、
- HA vCPUが2なので
$0.1074 * 2 = $0.2148
- HA メモリが7.5なので
$0.0182/GB * 7.5 = $0.1365
合計で $0.3513
となります。
コミットメントは $0.01単位なので、端数を切り捨てて $0.35
となります。
このコミットメントを、確約利用割引の購入ページに入力して購入します。
確約利用割引の購入ページ
これにより、1時間あたり $0.35
分の費用を、 $0.168
で購入できることになります。
適用後のグラフが以下です。
確約利用割引適用後の1日のCloud SQLの費用
ぴったりとコミットメントでカバーされていますね🤗
これまでの費用 $252/mo
に対して52%の割引が適用され、$132/mo
の節約になりました🎉
Cloud Run
以下はZennの本番環境の、Cloud Runのとある1日の費用グラフです。Cloud SQLとは対象的に料金の変動があることが分かります。この日は最大で2倍くらいの変動がありますね。
確約利用割引適用前のある1日のCloud Runの費用
ちなみにグラフのタイムゾーンはUTC-8なので、グラフの0時が前日の17時です。Cloud Runは一瞬のバーストで大きくスケールしたりするので、費用も単純にリクエスト数とは比例していないようです。
コミットメントを決めるにあたっては、もう少し長期的な視点で見る必要があると考え、Zennでは 過去3ヶ月のうち最も費用が低かった月の、1時間の平均費用の80% をコミットメントとして設定しました。
また、Cloud Run全体の費用には確約利用割引の対象にならないネットワーク使用量なども含まれますが、費用の詳細内訳を確認したところ、僅かな割合でしかなったので無視することにしました。
そうこうして、導出されたコミットメントは $0.52
になりました。これを確約利用割引の購入ページに入力して購入します。
確約利用割引の購入ページ
これにより、1時間あたり $0.52
分の費用を、 $0.4316
で購入できることになります。
適用後のグラフが以下です。
確約利用割引適用後の1日のCloud Runの費用
ざっくりと計算式を決めた割には、いい感じでした🤗
これまでの費用(計算式のベースにした金額)は $470/mo
、対象範囲が80%、わずかに使いきれなかった分は無視するとして、単純計算で $470 * 0.80 * 0.17 = $63.92
となり、およそ $64
の節約になります🎉
感想
最後に、確約利用割引を使ってみて良かったところと注意点を書いて終わろうと思います。
確約利用割引のここが良い
- 一括前払いではなく、毎月決まった金額を支払う契約であるところ。既に毎月オンデマンドで支払っている費用が割り引かれるだけなので、社内で承認を得るためのハードルが低かったです。
- サービスによっては割引率がかなり大きいです。例えば、Cloud SQLなら最大52%も割引されます。Cloud SQLを乗り換えるような大きな変更はあまり考えにくいので、この割引率であればベットする価値があると思います。
- 費用ベースのコミットは、使用するリソースの種類が変わっても適用されます。例えば、Cloud SQLならシングル構成からHA構成に変更したり、MySQLからPostgreSQLに変更したりしても、「費用」に対してコミットしているので問題ありません。
確約利用割引のここに注意
- 当然のことながら購入の取り消しはできません。長期的に利用する見込みがある場合に購入しましょう。
- 1時間単位の費用の契約になります。本記事にも書きましたが、Cloud Runなどは1時間あたりの費用の変動が大きいので、変動を加味してコミットメントを決める必要があります。
余談
確約利用割引を購入した翌日に費用のレポートを確認したら、Cloud SQLの方だけ対象範囲が0%だったので、設定をミスって会社のお金を溶かしたかと思って焦りました。Cloud SQLの方が、レポートの更新間隔が長いみたいですね。
購入翌日のCloud Runのレポート
購入翌日のCloud SQLのレポート
Discussion