BigQueryとComposerのCUDがついに登場 — 本当にコスト削減はできるのか?

はじめに
Googleは先日、BigQueryとCloud Composer向けの確約利用割引(CUD)を発表しました。安定的に利用しているユーザーにとってはコスト削減のチャンスとなる仕組みで、3年契約で最大20%、1年契約で10%の割引が適用されます。ただし、実際にどれだけ削減できるかは、時間あたりの確約支出ベースラインを継続して満たせるかどうかにかかっています。
詳細は公式ドキュメント(こちら [1] および こちら [2])で確認できますが、補足しておきたい点をいくつか挙げておきます。
今回のCUDは支出ベースで、対象SKUに対して時間あたり一定額の支出を確約する仕組みです。請求アカウント経由で購入し、割引は同一リージョン内であれば複数プロジェクトで共有できます。重要なのは、CUDがリージョン単位であるという点です。割引を適用したいリージョンごとに個別に購入する必要があります。
Googleは、CUDはすべてのBigQuery PAYG SKUに適用される[3]と説明していますが、実際の対象は以下に限られます。
- BigQuery Editionsの従量課金モデル(全Edition対象!)
- Composer 3のコンピュートSKU(これは嬉しい!!)
- BigQuery Data Governance(旧Dataplex)
一方で、見落とせない除外項目もあります。BigQueryのストレージ費用とオンデマンド分析クエリの料金は、今回のCUDの対象外です。これは押さえておきたい重要なポイントです。
対象に含まれた項目について見ると、Composer向けCUDの追加は多くのユーザーにとって待望の機能です。BigQuery Data Governanceについても、つい最近これらのSKUがBigQueryの傘下に統合されたばかりであることを考えると興味深い動きで、対象サービスにどれほどのインパクトがあるかは今後の注目点です。
新しいBigQuery/Composer CUDが自社に合うかどうかを判断する際は、次の点を確認してください。
- BigQuery EditionsをCloud Composer(バージョン2または3)やBigQuery Data Governanceと組み合わせて利用していますか? BigQueryスロット確約だけの方が安く済むケースもありますが、これら対象サービスを横断して安定的に利用している場合は、新しい支出ベースCUDによる追加の削減効果が見込めます。
- これらのサービスのworkloadsは安定していますか? たとえば、Composer環境を24時間365日稼働させ、日中も継続的にクエリを実行している、といった状態でしょうか。
- すでに BigQuery reservations [4] のスロット確約を導入していますか? Editions/Composer/Governance向けの新しい支出ベースCUDは、既存のスロット予約確約とは併用できないようです。
安定したworkloadsのベースラインを把握する
安定したworkloadsのベースラインを割り出すのは、思いのほか簡単ではありません。対象となるすべてのSKUの時間あたり支出を算出する必要があるためです。
まずは請求アカウント設定の「確約利用割引の分析」を開けば、CUDでカバーできる対象利用状況を確認できます。

次に、BQの詳細エクスポートを設定済みであれば、以下のクエリが活用できます。
WITH base as (
SELECT *
FROM `project.dataset.billing_export*`
WHERE 1=1
AND TIMESTAMP_TRUNC(export_time, DAY) = TIMESTAMP("2025-04-20")
AND sku_group_description like "%PAYG%"
AND service_description = "BigQuery Reservation API"
)
SELECT
usage_start_time,
sku_group_description,
sku_description,
location.region,
SUM(cost)
FROM base
GROUP BY ALL
DoiTのお客様向けには専用レポートBigQuery CUD eligible analysis spendをご用意しています。BigQueryのSMEに相談したい場合は、お気軽にサポートリクエストをお寄せください。

DoiT DCIレポート: BigQuery CUD eligible analysis spend
基本的には、BigQueryスロット確約の方が条件は有利です。ただし、Cloud Composer 3やBigQuery Data Governanceを利用しているなら、BigQuery CUDも十分に魅力的な選択肢になります。

比較: CUD vs スロット確約
具体例
シンプルな実例で考えてみましょう。

リージョン別にグループ化した対象SKUごとのコスト
この例では、us-east1やus-centralは対象SKUの時間あたり支出が1ドル未満のため、CUDを購入してもメリットはあまりありません。一方、USマルチリージョンであれば、CUDの購入で10%(1日最大500ドル、ベースライン支出230 × 24時間 × 0.1)のコスト削減が見込めます。ただしこのお客様は、すでに1年契約のBigQueryスロット予約を導入しており、スロット時間あたり20%の割引を受けています。このケースでは、支出ベースの確約を追加で購入する意味はありません。
一般的には、リスク分散の観点から1年と3年のCUDを組み合わせることをおすすめしています。また、対象支出の60〜75%程度に絞ってCUDでカバーし、将来のコスト最適化や利用パターンの変化に備えて余地を残しておく方法も有効です。
TLDR;
VMやCloud SQLのような「常時稼働」型のサービスではCUDは確実に有効ですが、一般的なBigQueryの利用パターンには必ずしも合致しません。BigQueryのworkloadsはスパイク的になりがちで、使われていないときはゼロまでスケールダウンできます ― これこそがクラウドデータウェアハウスの大きな利点の一つです。
ただし、Cloud ComposerやBigQuery Data Governanceの利用も計算に含めると、見え方は変わってきます。これらのサービスは24時間365日のように継続稼働するケースが多く、日中を通してコンピュートリソース(スロットやDCU)を消費し続ける傾向があります。
当社の取り組みに興味を持たれた方は、サービスページもぜひご覧ください: https://doit.com/services
[1] https://cloud.google.com/bigquery/docs/bigquery-cud
[2] https://cloud.google.com/docs/cuds-spend-based#purchasing