Vercel の請求が突然1日$50、$100、さらには$200に跳ね上がった場合、最も可能性の高い原因はボットトラフィックがダイナミックページを叩いていることであり、最速の対策は、該当する地域とユーザーエージェントをブロック、またはチャレンジする Vercel ファイアウォールルールです。私は身をもって学びました。修正方法を知るのに約50日と数千ドルの請求増を費やしましたが、実際に対策を施すには2分程度でした。
要点:大規模やプログラマティックサイトを爬虫するボットファームは、関数呼び出し、ISR、画像最適化、データ転送を通じて Vercel の請求を急速に増やします。オフェンディングの地域とユーザーエージェントをブロック、またはチャレンジするファイアウォールルールが通常の対策です。スケーリング後ではなく、スケーリング前に支出アラートとファイアウォールルールを設定してください。
これは戦訓であり、批判ではありません。Vercel の開発者体験は今でも高く評価しています。しかし、請求グラフが明確な理由なく上昇するのを見かけた次の人が、私が費やした50日間をスキップしてこのページを見つけることを願っています。
実際に何が起きたか
請求が上昇し始めましたが、実際の訪問者にマッチする急増がありませんでした。ほとんどの日はベースラインより1日$50~100超過し、最悪の日は約$200に達しました。ピーク期間を平均すると、1日約$125を消費していました。このサイトは大規模でほぼプログラマティック、6桁のページ数に達しており、それは自動化爬虫が好む正にそのプロファイル、つまり、叩くべき一見無限のユニークURL供給源でした。
実際にお金はどこに消えたのか
Vercel は単一の大きなトラフィック数で請求するのではなく、従量制の明細項目のスタックで請求します。ボットはそれらのいくつかを同時に増やします。関数呼び出し、Incremental Static Regeneration の読み取りと書き込み、エッジリクエスト、高速データ転送、画像最適化の変換です。画像最適化は特に厄介でした。ボットがトリガーするユニークな画像リクエストごとに、1 つの変換として計算される可能性があるからです。100,000 以上のパスをクローリングするクローラー全体に乗じると、メーターは止まることなく回り続けます。
最もコストが高かった教訓は、大規模なサイトでは、ダメージを受ける明細項目は、ウォッチしているもので はなく、別の場所にあるということです。私は帯域幅のことばかり考えていました。本当のダメージは、関数呼び出しと画像処理にあり、それらは決してコンバージョンしない、クリックもしない、何も読まないトラフィックが完全に原因でした。
50 日かかった理由
ボットをブロックするのは簡単です。それが原因であることを証明するのは簡単ではありませんでした。トラフィックは明らかに非人間的であり、かなりの部分が少数のリージョンを経由するボットファームから来ていましたが、Vercel の使用ダッシュボードには、何が消費されているかは表示されても、なぜそれが起きているかが常に明確とは限りません。特定の請求明細項目を特定のボットパターンに関連付けるのに予想以上の時間がかかり、50 日の大部分は、修正そのものではなく、原因究明に費やされました。
2 分で完了した修正
パターンを理解したら、修正は Vercel Firewall のカスタムルールでした。責任があるリージョンとユーザーエージェントからのリクエストをブロックまたはチャレンジし、最も激しいパスをレート制限し、ボットが高コストな画像および ISR 作業をトリガーするのを防ぐというものです。そのルールを書くのに約 2 分かかりました。平均日次支出は約 $125 から約 $30 に低下しました。1 日 30 ドルはまだ私の希望額よりも多く、さらに調整を続けていますが、開始時点とは別世界です。
Vercel サポートについて、公正な評価
私は測定的でありたいです。というのも、他の点で気に入っている製品を批判することは好きではないからです。しかし、Pro プランのサポートは、有料ティアとしては予想より遅かったです。チームからサポートを受けましたが、誰も小さな設定変更であると判明したものを診断したり修正したりしませんでした。また、いくつかの回答は好奇心よりも却下的な感じでした。顧客があなたのプラットフォームでお金を失い続けているとき、サポートはそこまで徹底調査したいはずです。それが Vercel が改善してくれることを望む部分です。製品の他の部分は、求める忠誠心に値するからです。
Vercel でスケールしているなら、まずこれをやること
成長する前に、支出管理と予算アラートを有効にしてください。月末に恐ろしい請求書を発見するのではなく、使用量が増えるにつれて通知を受け取ることの方がはるかに価値があります。
Vercel Firewall ルールは早期に追加してください。国、IP、ユーザーエージェント、パスで遮断またはチャレンジし、ボットが好むルートをレート制限してください。Robots.txt はそれを無視するクローラーを止めることはできません。
トラフィックに応じてスケールする行項目がどれかを把握してください。画像最適化、関数呼び出し、ISR の読み書き、高速データ転送はすべて使用量に応じて変動し、ボットはこれらすべてを一度に動かします。
特に画像が多いサイトやプログラマティックサイトの画像最適化に注意してください。これが私を最も驚かせたコストです。メーター対象パスで変換するのではなく、ストレージまたは CDN から事前最適化画像を配信することを検討してください。
では、Vercel はまだそれだけの価値があるのでしょうか。
目を開けていれば、はい。小規模および中規模プロジェクトの場合、開発者体験は業界で依然として最高であり、私は引き続き使用しています。ただし、数万回のアクセスまたは 100,000 ページ以上を実行している場合は、初日から請求を第一級のエンジニアリング上の懸念事項として扱ってください。このプラットフォームは、自分でガードレールを設定しなければ、非常に短時間で大量のお金を使わせます。
FAQ
Vercel の請求が急に跳ね上がったのはなぜですか。
最も一般的な原因は、ボット、スクレーパー、ボットファームなどの非人間トラフィックがあなたの動的またはプログラマティックページをクロールし、関数呼び出し、ISR、高速データ転送、画像最適化などのメーター対象行項目を膨らませることです。実ユーザーの増加と一致しないスパイクが目印です。
Vercel でボットトラフィックをブロックするにはどうすればよいですか。
Vercel Firewallを使用して、国、IP、ユーザーエージェント、またはパスごとにリクエストをブロックまたはチャレンジし、アグレッシブなルートにレート制限を追加できます。より強力な保護を必要とする場合は、専用のWAFをアプリの前に配置してください。Robots.txtだけでは、それを無視することを選んだボットを停止することはできません。
Vercelは自動的にボットとDDoS攻撃を停止しますか?
Vercelには基本的なDDoS軽減とボット制御が含まれていますが、請求額を静かに増やす分散クローリングを自動的に停止することはできません。通常、支出を保護するために自分自身でファイアウォールルールを設定する必要があります。
Vercelの支出をキャップまたは制御するにはどうすればよいですか?
予算アラート付きの支出管理を有効にして、使用量の上昇時に通知を受け取り、使用量ダッシュボードを定期的に確認してください。サポートされているプランでは、閾値でプロジェクトを一時停止するなどの対応が可能です。これは後から急増を発見するよりも優れています。
関連:請求額で他のホストを検討する場合のVercel代替案、およびWAFとボット管理レイヤーのCloudflare代替案。
