M.

Claude Code に GCP の課金を棚卸しさせたら、月1万円が半分になった(失敗込みの記録)

個人開発で使っている GCP の費用を、Claude Code と一緒に 見直しました。

9月の請求は約¥11,000でしたが、10月は月換算で約¥5,300まで下がる見込みです。ただし、この9月の金額には 見直しの途中で自分たちが起こした失敗 も含まれています。うまくいったことも失敗したことも、まとめて記録しておきます。

前提:GCP プロジェクトは6つ(うち費用が出ているのは主に2つ)。WordPress を動かす Compute Engine の VM と、画像生成アプリ Moeter の Cloud Run(GPU)です。Claude Code からは、ローカルの gcloud CLI を使って調査しました。

請求の推移

月請求額メモ
8月約¥3,500ほぼ WordPress の VM のみ
9月¥11,061Moeter が約¥5,900。CUD の誤購入も上乗せ
10月約¥5,300(1〜15日の¥2,627から月換算)WordPress 約¥2,400/月、Moeter 約¥2,750/月

9月に増えたのは、Moeter を公開して GPU を使い始めたことと、後で書く CUD の二重契約が主な原因です。10月に下がったのは、ここで紹介する対策に加えて、Moeter の利用ペースが落ち着いたことも影響しています。対策だけで半分になったわけではない点はお断りしておきます。

やったことの一覧

個別の話は、それぞれ記事にしました。

対策効果記事
Artifact Registry・Cloud Storage のクリーンアップ約58GB 削減。その後の再膨張にも対処Artifact Registry が86GBに膨らんだ
404 応答の gzip 化404 ページが 365KB → 37KBNetworking は ¥0 なのに、VM の通信料がかかっていた
VM を Standard ティアに切り替え外向き通信の無料枠(月200GiB)に収める同上
誤って買った1年 CUD の取り消し月 約¥4,000 の固定費を回避CUD を二重に買ってしまった話
GPU の予算キルスイッチ予算の90%で GPU だけを自動停止予算アラートで Cloud Run の GPU だけを自動停止する
見送った施策の整理ダウングレード・リージョン移行・Nearline 化は見送り個人開発の GCP で「やらなかった」コスト削減4つ

このほか、使っていない実験用の GPU サービスの削除、使っていないプロジェクトの削除、VM の週次スナップショットの設定(バックアップが1つもなかったので、費用とは別に)もやりました。

Claude Code に任せてうまくいったこと

全プロジェクトの横断調査

一番助かったのはここです。「GCP で費用がかかっていそうなところを全部見て」と頼むと、プロジェクトごとに gcloud を叩いて、次のようなものを一通り確認してくれました。

  • Compute Engine の VM・ディスク・スナップショット・静的 IP
  • Artifact Registry のリポジトリ別の容量
  • Cloud Storage のバケット別の容量とライフサイクルルール
  • Cloud Run のサービスとリビジョン
  • Cloud SQL、Memorystore、Cloud NAT、Cloud Scheduler などの有無
  • Cloud Logging の取り込み量
  • 予算アラートの設定

自分でやると、どのコマンドで何を見ればいいかを調べるところから始まります。サービスが多いので、確実に見落としが出ます。

原因の深掘り

「9月に入って出費が増えた」と伝えると、Artifact Registry のイメージの作成日時とサイズを並べて、30日の保持期間ではイメージが1つも消えていない ことを突き止めてくれました。

外向き通信の調査では、VM のアクセスログを集計して、404 応答が全体の約4割を占めていることを見つけました。さらに、Apache が 404 応答だけ gzip 圧縮していないことまで確認しています。このあたりは、自分だけだと「通信料は仕方ない」で終わっていたと思います。

作業記録を残す

Claude Code のメモリ機能(プロジェクトごとのメモファイル)に、調査の結論・見送った理由・残りの課題を書き残してもらいました。9月と10月で別のセッションでしたが、2回目は前回の結論を読み込んだ状態から始められたので、同じ調査を繰り返さずに済んでいます。

うまくいかなかったこと

CUD の二重契約

一番の失敗です。1回目の見直しで「常時動いている VM には1年 CUD を付けると安くなる」という結論になり、契約しました。

その前に、Claude Code は gcloud compute commitments list で既存の CUD を確認しています。結果は0件でした。ところが、このコマンドに出てくるのはプロジェクト単位の CUD だけで、請求アカウント単位の3年 Flexible CUD は表示されません。1月に自分で契約していたその CUD を、私も忘れていました。

AI の調査は、実行したコマンドで見える範囲まで です。「確認した」と言われても、何を見て確認したのかまでは自分で見ておく必要がありました。お金が絡む判断は特にそうです。

詳しい経緯と取り消しの手順は、CUD を二重に買ってしまった話 に書きました。

取れないデータは取れない

Cloud Billing の SKU 別の請求データは、途中から API で取得できなくなりました(権限エラー)。そこは、私がコンソールの課金レポートから CSV をダウンロードして、Claude Code に渡しています。

結果的には CSV の方が確実でした。通信料が Networking ではなく Compute Engine に計上されていることも、CSV の SKU 名から分かりました。

人間がやる必要があったこと

役割分担を整理すると、こうなりました。

Claude Code自分
gcloud での調査・集計課金レポート(CSV)のダウンロード
原因の仮説と検証削減策を採用するかどうかの判断
ポリシーやスクリプトの作成実行の承認(削除・契約・IP 変更など)
作業記録の更新サポートへの問い合わせ(有人チャット)

削除や契約のように取り消しにくい操作は、Claude Code が毎回実行前に確認を求めてくる設定にしていました。「最新2件だけ残す」ようなポリシーも、別のアプリでは稼働中のイメージが消えるところだったので(1回のデプロイでタグなしのバージョンが2件付いてくるため)、確認の手間は惜しまない方がいいです。

Windows で gcloud を使うときの小ネタ

Windows で scoop を使って gcloud を入れていると、gcloud の実体は gcloud.cmd(バッチファイル)です。Git Bash から呼ぶと cmd.exe を経由するので、--format="table(name,sizeBytes)" のような 括弧やカンマを含む引数が崩れます。

Claude Code に gcloud を使わせるときは、--format=json で出力させて、Python などで集計させるのが確実でした。

まとめ

  • 横断的な調査と原因の深掘りは、Claude Code に任せるとかなり速い。自分では見に行かない項目まで確認してくれる。
  • ただし、AI が「確認した」範囲は 実行したコマンドで見える範囲 だけ。お金が絡む判断の前には、何を見たのかを確認する。
  • 請求の実データ(CSV)と、契約・削除の最終判断は人間の仕事として残る。

個人開発の規模なら、今回でほぼやり尽くした状態です。今後は月に1回、Artifact Registry の容量と請求の SKU 別レポートを見るくらいにするつもりです。

この記事をシェア

「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 ティア)

関連する記事

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行になりました。分け方と、書かないことにしたものをまとめます。

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

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

テーマから探す