【体験談】ある朝、Googleから「約21万円」の請求が来た。Gemini APIで冷や汗をかいた私がやったこと
「え、今月の請求が“約21万円”?何をやったんだっけ…?」
そんな通知で一気に目が覚めました。普段はほぼゼロに近い小額利用なのに、2025年8月だけ急に跳ね上がる。明細を見るとGemini API関連の項目が並び、身に覚えがないスパイクです。
結果として、誠意を持って状況を説明し、自分の落ち度(管理の甘さ)も認めたうえで、私が無闇に使っていないことを淡々と伝え、二段階の調整に応じてもらえました(約19万円)。残り約2万円は新しいカードで一括清算、ケースはクローズです。
同じような状況の方の参考になればと思いを執筆します。
まず結論:止血→相談→再発防止
請求:2025年8月に約21万円。
初動:API無効化/キー削除・ローテーション、請求の紐付け一時停止(Disable billing)、2FA有効化。
相談と交渉:カード会社へ不正の可能性で連絡、Google Cloud Billingへは経緯を整理して誠意を持って説明。
結果:二段階の調整に応じてもらえ約19万円がクレジット。残り約2万円は一括清算で合意。
補足:9月上旬にもわずかな利用がありましたが、調整の中心は8月分でした。
何が起きた?短期スパイクの全体像(タイムライン)
〜7月:毎月ほぼゼロに近い小額。
8月:Gemini APIの入出力トークンが短期間で爆増。検証用の特定プロジェクトに利用が集中。
9/2:カード会社から不正の可能性の連絡→支払いを一時停止。
9月中旬:**第1回の調整(約10万円)**に応じてもらう。
その後:**第2回の調整(約8万円)**も決まり、合計約19万円に。
最終:残り約2万円を一括清算、ケースはクローズ(一定期間は返信で再オープン可との案内)。
気づいてからの30分でやったこと(初動)
APIの止血:該当プロジェクトでGemini APIを無効化、APIキーは全削除・ローテーション。
課金の遮断:プロジェクトと請求先の紐付けを一時的に外す(Disable billing)。
アカウントの防御:パスワード変更+2FA、ログイン通知を確認。
証拠の確保:請求レポート、明細CSV、スクショ、サポートとの往復を保存。
利用の偏り確認:Credential(APIキー)別メトリクスで、どの鍵が跳ねたかを確認開始。
交渉の進め方:誠意と事実で伝えるコツ
ここがいちばん大事でした。私は強い言い回しや責任転嫁を避け、誠意を持って説明することに徹しました。
自分の落ち度(キー管理や監視の甘さ)も率直に認めつつ、**無闇に使っていない(当該期間はほぼ未使用)**ことははっきり伝えます。
伝えた順番
普段は小額、2) 特定月だけ異常、3) カード会社から不正の可能性で連絡、
API停止・請求停止など止血済み、5) 再発防止の施策を進行中。
出した資料
明細のスクリーンショット、利用グラフ、ログ抜粋言い方の工夫(実際に伝えたニュアンス)
「**私の管理に不十分な点がありました。**ただ、無目的に大量利用した事実はありません。」
「直ちにAPIを無効化し、キーを削除・再発行、2FAまで含め対策を実施済みです。」
「**以後の再発防止策(予算アラート、クォータ、参照元制限)**を設定します。」
結果として、状況を踏まえた調整に応じてもらえ、約19万円のクレジットが適用されました。
そもそもの要因は?仮説ベスト3(※キー露出が最有力)
前提として、当該期間に私はGemini APIをほぼ使っていません。
そのため、最も可能性が高いのは**APIキーの露出(漏えい/第三者利用)**です。
APIキーの露出(最有力)
リポジトリ直書き、公開環境で参照元制限なし、テスト用フロントでむき出しキーを読み込む——このあたりは狙われやすいです。
クローラーやスキャナに拾われると短時間で大量コールされがち。自動化(n8nなど)の誤作動
ループ条件や例外時リトライの設定が甘いと、同じ処理が延々走ることがあります。
「夜間に回しっぱなし→翌朝、請求だけ跳ね上がる」パターン。ロング入力+メディアの積み上げ
long系やvideoは1回あたりのトークンが重いため、少ない回数でも金額が伸びます。
体感より請求が大きいときは、だいたいここが絡みます。
Geminiの課金はどこで増える?トークンの超ざっくり解説
Input token:APIに渡したテキストやメディアの量
Output token:モデルが返す文字数相当
SKUの例:Pro/Flash、short/long、video、cached(似た入力の割引)、non‑thinking(推論拡張なし)
要は、入出力トークン × SKUで積み上がります。
long+video+(キャッシュが効かない)の組み合わせは一撃が重いので注意です。
今日・今週・今後:再発防止チェックリスト
今日やること
Budgets & Alerts:月上限は数千円〜1万円弱に設定し、メール通知。
Gemini APIを未使用プロジェクトで無効化(使わない所はOFF)。
APIキー整理:未使用キーは削除、必要なAPIだけ許可、**参照元制限(HTTPリファラ/固定IP/署名)**を必須に。
自動化の一時停止:n8n等のフローを止め、トリガー条件とリトライ回数を棚卸し。
今週やること
クォータ(1日の上限)を低めに設定し、スパイクの物理的上限を作る。
Credential別メトリクスの週次レビューをルーチン化。
Secret Manager/環境変数で鍵を管理、リポジトリ直書き禁止をチームルールに。
今後やること
**鍵レス運用(例:Workload Identity)**の検討。
プロジェクト分離と最小権限:検証と本番を分け、ロールを絞る。
キーの定期ローテーション:月1〜四半期1を目安に失効日付きで回す。
まとめ:もう同じ目に遭わないために
まずは止血(API無効化・請求停止・2FA)。
次に、事実を整理して誠意を持って説明。自分の落ち度も認めつつ、無闇に使っていないことを静かに具体的に伝える。
仕上げに予算アラート・クォータ・参照元制限で物理的な上限を置く。
私のケースは、約21万円の請求に対して約19万円の調整に応じてもらえ、残り約2万円を一括清算して落ち着きました。
大ごとに見えても、順番に手を打てば着地はできます。同じ状況に陥った方の「最初の一歩」と「再発防止の型」として、少しでも役立てば幸いです。


コメント