M.

GCP の確約利用割引(CUD)を二重に買ってしまい、サポートに取り消してもらった話

GCP の費用を下げようとして 確約利用割引(CUD)を契約したら、逆に固定費が約2.7倍になりました。

すでに別の CUD を契約していたことに気づかず、二重に買ってしまったのが原因です。しかも、新しく買った方の確約量はマシンの実際の使用量より多く、それ単体でもオンデマンド料金より高くなっていました。

最終的には Cloud Billing のサポートに頼んで取り消してもらえましたが、ギリギリでした。同じことをしないための確認手順も含めてまとめます。

前提:WordPress ブログを動かしている Compute Engine の VM 1台(e2-medium / us-central1)。個人開発の請求アカウント1つに、GCP プロジェクトが複数ぶら下がっている構成です。

何をしたか

9月に GCP の全プロジェクトを見直したとき、「常時動いている VM には1年 CUD を付けておけば安くなる」と考えて、次の CUD を契約しました。

  • 1年・リソースベース CUD(2 vCPU + メモリ 4GB)
  • 時間単価 ¥5.55(月換算 約¥4,055)

契約前に既存の CUD を確認したつもりでした。実行したのはこれです。

gcloud compute commitments list

結果は0件だったので、「CUD はまだ何も契約していない」と判断して購入しました。

2週間後、請求が増えていた

月末に「なんだか出費が増えている」と感じて調べ直したところ、課金レポートの CUD 一覧(cud_inventory.csv)に、覚えのない CUD がもう1つありました。

既存の CUD9月に追加した CUD
種類3年 Flexible CUD(費用ベース)1年 CUD(リソースベース)
単位請求アカウント全体プロジェクト(VM のリージョン)
時間単価¥3.1875(月 約¥2,330)¥5.55(月 約¥4,055)
期間2026-01 〜 2029-012026-09 〜 2027-09

1月に自分で契約していた3年 Flexible CUD のことを、すっかり忘れていました。

結果として、VM の固定費は 月 約¥2,330 → 約¥6,380 に増えていました。コストを削るための作業で、逆に増やしていたことになります。

なぜ見落としたのか

gcloud compute commitments list が表示するのは、プロジェクトに紐づくリソースベースの CUD だけ です。

Flexible CUD(費用ベースの CUD)は 請求アカウント単位 で契約するもので、特定のプロジェクトには属しません。そのため、プロジェクトを指定して確約一覧を出すこのコマンドには出てきません。

Flexible CUD を確認するには、Cloud コンソールの お支払い → 確約利用割引 の画面(請求アカウント単位の一覧)を開く必要があります。

さらに悪いことに、確約量が多すぎた

二重契約に加えて、新しく買った1年 CUD の中身にも問題がありました。

e2-medium は「2 vCPU」と表示されますが、共有コアのマシンタイプです。vCPU 2つをそれぞれ半分ずつ使う扱いなので、課金上は 1 vCPU 分 になります(0.5 × 2 = 1)。

そこに 2 vCPU 分の確約 を付けたので、1 vCPU 分は使われないまま毎時間課金されます。実際、1年 CUD の月額(約¥4,055)は、e2-medium をオンデマンドで動かした場合(月 約¥4,003)より 高く なっていました。割引になっていないどころか、割高です。

CUD は「使ったかどうかに関係なく、確約した分を払う」契約です。確約量は、表示上の vCPU 数ではなく 課金上の使用量 に合わせる必要があります。

サポートに取り消しを依頼する

CUD は原則として途中解約できません。ただ、誤って購入した場合は、購入から一定期間内(今回の案内では開始日から14日以内) に Cloud Billing サポートへ連絡すれば、例外として取り消してもらえることがあります。

気づいたのは開始から13日目でした。すぐにサポートへ問い合わせました。

有人チャットにたどり着くまで

ここで2つほど詰まりました。

  • 請求アカウントの選択:問い合わせ画面で、以前に解約した請求アカウントがデフォルトで選ばれていました。この状態だとチャットが開始できません。現在使っている請求アカウントを選び直す必要がありました。
  • 最初はボットが応答する:長文で事情を説明しても定型の案内しか返ってこないので、短く用件を伝えたうえで「human agent」と送り、有人チャットに切り替えてもらいました。

依頼した内容

担当者には、次の3点を明記して伝えました。

  1. 取り消してほしいのは 1年リソースベース CUD(vCPU とメモリの両方)
  2. 3年 Flexible CUD は維持 する(こちらは取り消さない)
  3. 全面取り消しが無理なら、1 vCPU + 4GB への縮小 でもよい

2つの CUD が両方とも有効なので、どちらを取り消してほしいのかを曖昧にしないことが大事です。その後、取り消しに同意するかを確認するメールが届いたので、同意を返信しました。

結果

10月半ばに確認すると、1年 CUD のステータスは CANCELLED になっていました。

請求にも反映されています。プロジェクトに属さない課金(CUD 分)は、9月の約¥986から10月前半は約¥40まで下がりました。残っているのは、元からあった3年 Flexible CUD の分だけです。

CUD を買う前に確認すること

今回の反省から、CUD を検討するときは次の順で確認することにしました。

  1. コンソールの「確約利用割引」一覧を見る:gcloud compute commitments list だけでは、請求アカウント単位の Flexible CUD が見えない。
  2. 課金上の使用量を確認する:e2-medium のような共有コアは、表示上の vCPU 数と課金上の vCPU 数が違う。請求の SKU 別レポートで、実際に何 vCPU 分課金されているかを見る。
  3. オンデマンド料金と月額で比べる:CUD の月額がオンデマンドより安くなるかを、契約前に計算する。
  4. 買ったら2週間以内に請求を確認する:誤購入の取り消しには期限がある。翌月の請求書を待っていたら間に合わない。

CUD は割引率が大きいぶん、間違えると損も大きくなります。今回は期限内に気づけたので助かりましたが、2週間あとなら月約¥4,000を1年間払い続けるところでした。

GCP の費用見直し全体の流れは、Claude Code に GCP の課金を棚卸しさせたら、月1万円が半分になった にまとめています。

この記事をシェア

「GCP」の記事(7件)

  1. GCS の画像を Cloudflare Worker で中継してエッジにキャッシュする(バケット名を変えずに独自ドメインで配る)
  2. Artifact Registry が86GBに膨らんだ(「30日より古いものを削除」が効かない理由とクリーンアップポリシー)
  3. Claude Code に GCP の課金を棚卸しさせたら、月1万円が半分になった(失敗込みの記録)
  4. GCP の予算アラートで Cloud Run の GPU だけを自動停止する(maxInstanceCount: 0 では止まらなかった)
  5. 個人開発の GCP で「やらなかった」コスト削減4つ(e2-small・東京リージョン・Nearline・Standard ティアの保留)
  6. ▶ GCP の確約利用割引(CUD)を二重に買ってしまい、サポートに取り消してもらった話
  7. GCP の請求で Networking は ¥0 なのに、VM の通信料がかかっていた(404 の gzip 化と Standard ティア)

関連する記事

AI コード進行アプリを2年運用して分かったこと(GPT-4o から Claude へ、2024→2026)

キーワードからコード進行を作る Web アプリ Chord Eureka を、2024年12月の公開から2年近く運用してきました。GPT-4o 時代のコストと出力崩れへの対処、Claude への移行、temperature 廃止で本番が落ちた件、構造化出力、測ってから決めたモデル更新までを、git の履歴をもとに振り返ります。

claude -p を評価器にして、AI の生成結果を930件自動採点した

コード進行アプリのキーワードボタンが本当に効いているのかを確かめるため、Claude Code の `claude -p` で930件を生成し、プログラムで採点しました。API キーを使わない生成のしかた、本番に近づけるためのオプション、Windows での落とし穴、AI に採点させない集計の考え方をまとめます。

Claude に「敵対的レビュー」をさせて、指摘がどれくらい当たっていたかを数えた

個人開発では、Claude Code に「壊れるところを探して」と頼む敵対的レビューを何度も使っています。4つのリポジトリに残っていた再検証の記録から、指摘がどれくらい当たり、どう外れていたかを数えました。外れ方には決まった型がありました。

Claude Code 向けのドキュメントは3つに分ける(CLAUDE.md はルール、README はセットアップ、PROGRESS.md は次にやること)

Claude Code に任せて開発していると、CLAUDE.md・README・PROGRESS.md が同じ説明で膨らんでいきます。個人開発のリポジトリで役割を分け直したら、CLAUDE.md は117行から50行、README は172行から35行になりました。分け方と、書かないことにしたものをまとめます。

テーマから探す