活用事例一覧へ
2026年7月27日開発・エンジニアリング検証時期:2026年6月

$20プランで$132請求された原因|Vercelのコスト超過はビルド回数だった【AI活用検証vol.104】

$20プランで$132請求された原因|Vercelのコスト超過はビルド回数だった【AI活用検証vol.104】

契約プランは$20/月。しかし実際の請求は$132.62——超過分は約$112でした。

この検証では、その原因を特定し、対策を実施しました。主因はサーバーレス構成の常時起動コストではなく、ビルド回数の多さでした。

この検証の概要

検証時期

2026年6月2日〜(対応継続中)

対象

Vercel(Proプラン $20/月)

問題

実請求 $132.62(On-Demand超過 約$112)

主因

Build CPU Minutes が全体の約90%

対応

Ignored Build Step で production 以外のビルドを停止

状況

止血対応は完了、運用フロー整備が残課題

結論:ビルド回数が9割を占めていた

請求の内訳を確認したところ、構造がはっきりしました。

項目

金額

割合

Build CPU Minutes

$145.43

約90%

Fast Origin Transfer

$2.53

少額

Fluid Active CPU

$1.80

少額

「サーバーレスだから実行コストが高いのでは」という想定は外れました。実行時のCPU課金(Fluid Active CPU)は$1.80で、超過分としては軽微です。

膨らんでいたのはビルドでした。

なぜビルドが積み上がるのか

デフォルトの挙動が原因です。

GitHub連携では、デフォルトで全ブランチへのpush・PR作成時に自動でデプロイ(ビルド)が実行されます。

つまり、こうなります。

  • featureブランチにpushするたびにビルド
  • PRを作るたびにビルド
  • mainへの細かいマージが多いほど、そのたびに本番ビルドが走る

この検証では、featureブランチ運用が確立されておらず、mainへの細かいPR・マージが多い状態でした。開発の進め方が、そのまま課金に反映されていたことになります。

対処①:production以外のビルドを止める

最も効果の大きい対応です。

Ignored Build Stepを「Only build production」に設定しました。

if [[ "$VERCEL_ENV" == "production" ]]; then exit 1; else exit 0; fi

これにより、featureブランチや未割り当てブランチへのpush/PRではビルドが走らなくなります。

ここで押さえるべき仕様の違いがあります。

キャンセルされたビルドはデプロイメントクォータにカウントされますが、スキップ(ビルド未実行)はCPU消費が発生しません。

組み込みのオプションによるスキップと、bashコマンドでキャンセルする方式は仕組みが違います。コスト削減が目的なら、スキップさせる必要があります。

対処②:ビルドマシンの種別を確認する

もう1つの大きなコスト要因です。

マシン種別

単価

Turbo(固定)

$0.126/分

Elastic(自動スケール)

$0.0035/CPU分から

多くのプロジェクトでコストが半減以上します。

新規チームではElastic Build Machinesがデフォルトですが、以前から使っているプロジェクトはTurbo固定のままになっている可能性があります。確認する価値のある設定です。

止血だけでなく上限を設ける

この検証で最も重要な指摘かもしれません。

Spend Managementを設定しない限り、On-Demand超過は上限なく課金され続けます。

対策として、50%/75%/100%での通知と、上限到達時にproductionを自動停止する設定が可能です。新規Proチームは$200がデフォルト予算になっています。

ただし注意点があります。

チェックは数分ごとのため、上限到達後も数分は課金が継続しうる。絶対上限より低い値を設定するのが安全です。

「上限を設定したから絶対に超えない」ではありません。余裕を持った値にしておく必要があります。

その他のコスト削減策

  • vercel.json でブランチ単位制御git.deploymentEnabled でパターン指定のデプロイ無効化
  • Turborepo Remote Cache — モノレポなら追加費用ゼロでビルド時間を最大85%削減(全プラン無料)
  • On-Demand Concurrent Buildsを「1ブランチ1ビルド」に制限 — 並行ビルドの無駄を抑制
  • Active CPU課金の理解 — I/O待ち中は課金されないため、Cache-ControlやISRの設定でActive CPU消費を削減できる

Remote Cacheは全プラン無料です。モノレポ構成なら、設定するだけで効果が出ます。

他プラットフォームとのコスト比較

プラットフォーム

ビルド

帯域

備考

Vercel

$0.0035/CPU分〜(Elastic)

$0.15/GB(超過)

Next.js最適化が最強、コストは高め

Cloudflare Pages

月500ビルド(無料)、実質無制限に近い

Egress無料

コスト最安、帯域課金なし

Netlify

100分/月(無料)

100GB/月(無料)

2025年に無料枠を300分→100分へ削減

Render

月500ビルド分(無料)

100GB/月(無料)

フルスタック対応、Next.js最適化は弱い

判断の軸は明確です。

Next.js以外(Astro等)なら、Cloudflare Pagesへの移行でビルド・帯域コストをほぼゼロに近づけられます。

逆にNext.jsを使うなら、統合・DX・Preview体験の価値とコストを天秤にかけることになります。

トレードオフ

ビルドを止めることには代償があります。

featureブランチ単位のPreview URLが発行されなくなります。動作確認はdevelop/mainマージ後に行う運用へ変わります。

この検証では、現状Preview確認が運用に組み込まれていないため実害なしと判断しました。

使っていない機能のためにコストを払っていた——という構造です。設定を見直す前に、実際に使っているかを確認する価値があります。

対応ロードマップ

優先度

内容

状態

Ignored Build Stepを「Only build production」に設定

完了

mainへの直接プッシュ防止

完了

Spend Limitをハードリミットに変更

今後

featureブランチ運用へ移行(作業者 → feature/* → develop → main)

ゆくゆく

止血(ビルド停止)を先に、体質改善(運用フロー)を後にという順番です。課金は待ってくれないため、この順序が現実的です。

よくある質問

なぜ請求が膨らんだのですか?

ビルド回数の多さが主因です。Build CPU Minutesが全体の約90%を占めていました。実行時のCPU課金は$1.80と軽微でした。

すぐにできる対策は?

Ignored Build Stepを「Only build production」に設定してください。featureブランチやPRでのビルドが走らなくなります。あわせて、ビルドマシンがTurbo固定になっていないか確認すると効果が大きくなります。

上限を設定すれば安心ですか?

チェックが数分ごとのため、上限到達後も数分は課金が継続しうる点に注意してください。絶対上限より低い値を設定するのが安全です。

他プラットフォームへの移行は有効ですか?

Next.js以外を使っているなら有効です。Cloudflare Pagesならビルド・帯域コストをほぼゼロに近づけられます。Next.jsを使う場合は、統合とDXの価値との比較になります。

まとめ

  • 超過の主因は常時起動コストではなくビルド回数。Build CPU Minutesが約90%
  • デフォルトでは全ブランチへのpush・PRでビルドが走る
  • Ignored Build Stepで production 以外をスキップする。キャンセルとスキップは仕組みが違う
  • Turbo固定とElasticでは単価が大きく違う($0.126/分 vs $0.0035/CPU分〜)
  • 上限設定がなければ超過は無制限に続く。ただし到達後も数分は課金されうる
  • モノレポならRemote Cacheが無料でビルド時間を最大85%削減
  • 使っていない機能(Preview URL)のためにコストを払っていないかを確認する

クラウドサービスのコストは、機能の使い方ではなく開発の進め方に反映されます。請求内訳を分解すると、どの習慣が効いているかが見えてきます。

株式会社AI棒では、こうしたAI活用の検証を日々行い、企業の開発体制とインフラ運用を支援しています。ご相談はお問い合わせフォームから、継続的な伴走支援についてはAI参謀をご覧ください。

関連する検証事例

© 株式会社AI棒 All Rights Reserved.