AIコーディングとエージェント

[バイブコーダー #7] 高額請求を防ぐ:AI API・DB・ホスティングの課金構造と5分の安全策

「寝て起きたら、クラウド料金が数百万円になっていました」。バイブコーディングのコミュニティで時々見かける、読む側まで背筋が凍る投稿です。趣味で作ったアプリが、1か月分の給料を請求書に変えてしまう状況です。怖いのは、特に不注意な人だけが遭う事故ではないことです。課金…

読了 5 分
[バイブコーダー #7] 高額請求を防ぐ:AI API・DB・ホスティングの課金構造と5分の安全策のカバー画像

「寝て起きたら、クラウド料金が数百万円になっていました」。バイブコーディングのコミュニティで時々見かける、読む側まで背筋が凍る投稿です。趣味で作ったアプリが、1か月分の給料を請求書に変えてしまう状況です。怖いのは、特に不注意な人だけが遭う事故ではないことです。課金構造を知らなければ、誰にでも起こり得ます。

幸い、高額請求の原因はいくつかに絞られるため、安全策をあらかじめ設定すれば、ほとんどを根本から防げます。 サービスごとの設定にかかる時間は5分です。今回は、請求がどこから発生し、どの経路で膨らみ、5分の安全策をどう設定するかを解説します。

請求書の3大発生源

バイブコーディングで作ったアプリの料金は、ほとんどが3か所から発生します。

1. AI API — トークン単位で計算されます。 OpenAIのようなAIサービスは、トークンという単位で課金します。トークンはおおまかに「文字のかけら」と考えればよいでしょう。見落としやすいのは、送る質問(入力)とAIの回答(出力)の両方が課金対象になること、そして高性能なモデルほどトークン単価が数倍になることです。長い文書を丸ごと送る機能や、会話全体を毎回再送するチャットボットは、思った以上に料金が積み上がります。

2. DB — ストレージ容量と読み書き回数です。 DBという倉庫は、保管する荷物の量(容量)と、扉を開け閉めした回数(読み書き)で課金されます。容量は徐々に増えますが、コードを誤ると読み書き回数は一瞬で爆発することがあります。

3. ホスティング — トラフィックと実行時間です。 Vercelなどのサーバーは、訪問者に配信したデータ量と、バックエンドコードが実際に動いた時間で課金します。圧縮せずに置いた大容量画像や、時間のかかる処理が料金を押し上げます。

高額請求につながる3つの経路

経路1:キーの盗難。 第2回で扱った事故です。公開されたAPIキーをボットが拾い、会社のカードで好き放題に使います。最も破壊力が大きく、最もよく起こります。

経路2:コードの無限ループ。 外部の泥棒なしに自滅するケースです。AIが書いたコードに「画面更新のたびにDBを読み直し、その読み取りがまた更新を起こす」回路が潜んでいると、ユーザー1人が何もせず座っているだけで、1秒に数十回もDBとAIを呼び出します。アプリは正常に見えるのに、ダッシュボードの呼び出し回数だけが異常な勢いで増えるのが特徴です。デプロイ前にAIへ「APIやDBを繰り返し呼び出すコードがないか確認して」と依頼するのが予防策です。

経路3:想定外のトラフィック。 アプリが突然人気になる(良い問題)か、ボットが押し寄せる(悪い問題)か。どちらでも無防備なら請求額は膨らみます。

キー盗難、無限ループ、想定外トラフィックの3経路がAI API・DB・ホスティングの請求につながり、支出上限と予算アラートで防ぐ構造を示す図
3つの経路がどのように請求になり、どこで防ぐのかを一目で示す図

5分の安全策:上限とアラート

ここが今回の核心です。3つの発生源すべてに、ダッシュボードの**支出上限(spending limit)と予算アラート(budget alert)**機能があります。今すぐ各アカウントで、2つだけ設定しましょう。

  • 月間支出上限:「この金額を超えたらサービスを停止する」。趣味のプロジェクトなら、負担できる金額(例:1万〜5万ウォン)まで低く設定します。上限に達するとアプリは止まりますが、趣味アプリが1日止まることと数百万円の請求書のどちらがよいかは、議論するまでもありません。
  • 予算アラート:「この金額に達したらメールを送る」。上限の50%ほどに設定すれば、請求が膨らんでいる途中で気づけます。

サービスごとにメニュー名は多少異なりますが、通常はBilling、Usage、Budget、Spending limitなどです。見つけにくければAIに「OpenAIで月間支出上限を設定するメニューはどこ?」と聞けば、すぐ案内してくれます。無料プランでもアラートを設定する価値はあります。第6回で見たように、無料枠の使い切りは「昨日は動いたのに今日は動かない」という静かな原因にもなるからです。

そして第2回の原則が、ここでも防衛線になります。キーはバックエンドだけに置く。 キーが漏れなければ、経路1は完全に防げます。

「ONE HIDDEN LOOP CAN DRAIN YOUR WALLET」という文言とともに、INFINITE LOOPの回転ベルトをコードが回り、API CALLSとDB READSが硬貨となって大量に流れ出すイラスト
泥棒がいなくても爆弾は爆発します。回転ベルトは自分のコードの中にあるのです。

すでに被害に遭ったら

請求書を見て血の気が引いたら、順番はこうです。

  1. まず出血を止めます。 盗難が疑われるならキーを直ちに無効化・再発行し(第2回)、無限ループが疑われるならデプロイを一時停止するか、問題の機能を停止します。
  2. 原因を確認します。 各サービスのダッシュボードにあるUsageグラフを見ると、いつからどの呼び出しが急増したか分かります。
  3. サポートに連絡します。 特に初回の事故で、盗難やミスが原因なら、事情を説明すると料金を減免してくれる例は実際に少なくありません。損はないので、必ず問い合わせましょう。
  4. 再発防止策を設定します。 今度こそ、上記の上限とアラートを設定してください。

まとめ

  • 料金は、AI API(トークン)、DB(容量・読み書き)、ホスティング(トラフィック・実行時間)の3か所から発生します。
  • 高額請求につながる経路は、キーの盗難、コードの無限ループ、想定外のトラフィックの3つです。
  • 最善の防御は、サービスごとに5分で設定することです。月間支出上限+予算アラート。
  • デプロイ前にAIに「繰り返し呼び出すコードの確認」をさせ、キーはバックエンドだけに置きます。
  • すでに被害に遭ったら、出血を止める → 原因を確認 → サポートに問い合わせ → 安全策を設定、の順です。

次回がシリーズ最終回です。ユーザーを受け入れる前に確認すべき最低限のセキュリティチェックリストと、第1回から続く地図を1枚にまとめます。

あわせて読みたい