vercel-billing-spike-bots.html
< BACK ボット農場がVercelの請求を跳ね上げた。ファイアウォール対策に50日かかった話――ラインアート図解

ボットファームが Vercel の請求を急騰させた。50日かけて見つけたファイアウォール対策

Vercel の請求が突然1日$50、$100、さらには$200に跳ね上がった場合、最も可能性の高い原因はボットトラフィックがダイナミックページを叩いていることであり、最速の対策は、該当する地域とユーザーエージェントをブロック、またはチャレンジする Vercel ファイアウォールルールです。私は身をもって学びました。修正方法を知るのに約50日と数千ドルの請求増を費やしましたが、実際に対策を施すには2分程度でした。

要点:大規模やプログラマティックサイトを爬虫するボットファームは、関数呼び出し、ISR、画像最適化、データ転送を通じて Vercel の請求を急速に増やします。オフェンディングの地域とユーザーエージェントをブロック、またはチャレンジするファイアウォールルールが通常の対策です。スケーリング後ではなく、スケーリング前に支出アラートとファイアウォールルールを設定してください。Bot farms crawling large or programmatic sites can inflate a Vercel bill fast through function invocations, ISR, image optimization, and data transfer. A firewall rule that blocks or challenges the offending regions and user agents is usually the fix. Set spend alerts and firewall rules before you scale, not after.

これは戦訓であり、批判ではありません。Vercel の開発者体験は今でも高く評価しています。しかし、請求グラフが明確な理由なく上昇するのを見かけた次の人が、私が費やした50日間をスキップしてこのページを見つけることを願っています。

実際に何が起きたか

請求が上昇し始めましたが、実際の訪問者にマッチする急増がありませんでした。ほとんどの日はベースラインより1日$50~100超過し、最悪の日は約$200に達しました。ピーク期間を平均すると、1日約$125を消費していました。このサイトは大規模でほぼプログラマティック、6桁のページ数に達しており、それは自動化爬虫が好む正にそのプロファイル、つまり、叩くべき一見無限のユニークURL供給源でした。

実際にお金はどこに消えたのか

Vercel は単一の大きなトラフィック数で請求するのではなく、従量制の明細項目のスタックで請求します。ボットはそれらのいくつかを同時に増やします。関数呼び出し、Incremental Static Regeneration の読み取りと書き込み、エッジリクエスト、高速データ転送、画像最適化の変換です。画像最適化は特に厄介でした。ボットがトリガーするユニークな画像リクエストごとに、1 つの変換として計算される可能性があるからです。100,000 以上のパスをクローリングするクローラー全体に乗じると、メーターは止まることなく回り続けます。Incremental Static Regeneration reads and writes, edge requests, fast data transfer, and image optimization transforms. Image optimization was a painful one, because each unique image request a bot triggers can count as a transformation. Multiply that across crawlers hitting more than 100,000 paths and the meter simply never stops.

最もコストが高かった教訓は、大規模なサイトでは、ダメージを受ける明細項目は、ウォッチしているもので はなく、別の場所にあるということです。私は帯域幅のことばかり考えていました。本当のダメージは、関数呼び出しと画像処理にあり、それらは決してコンバージョンしない、クリックもしない、何も読まないトラフィックが完全に原因でした。

50 日かかった理由

ボットをブロックするのは簡単です。それが原因であることを証明するのは簡単ではありませんでした。トラフィックは明らかに非人間的であり、かなりの部分が少数のリージョンを経由するボットファームから来ていましたが、Vercel の使用ダッシュボードには、何が消費されているかは表示されても、なぜそれが起きているかが常に明確とは限りません。特定の請求明細項目を特定のボットパターンに関連付けるのに予想以上の時間がかかり、50 日の大部分は、修正そのものではなく、原因究明に費やされました。

2 分で完了した修正

パターンを理解したら、修正は Vercel Firewall のカスタムルールでした。責任があるリージョンとユーザーエージェントからのリクエストをブロックまたはチャレンジし、最も激しいパスをレート制限し、ボットが高コストな画像および ISR 作業をトリガーするのを防ぐというものです。そのルールを書くのに約 2 分かかりました。平均日次支出は約 $125 から約 $30 に低下しました。1 日 30 ドルはまだ私の希望額よりも多く、さらに調整を続けていますが、開始時点とは別世界です。Vercel Firewall custom rule: block or challenge requests from the regions and user agents responsible, rate-limit the most aggressive paths, and stop bots from triggering expensive image and ISR work. Writing that rule took about two minutes. My average daily spend dropped from roughly $125 to about $30. Thirty dollars a day is still more than I want, and I am tuning it further, but it is a different universe from where it started.

Vercel サポートについて、公正な評価

私は測定的でありたいです。というのも、他の点で気に入っている製品を批判することは好きではないからです。しかし、Pro プランのサポートは、有料ティアとしては予想より遅かったです。チームからサポートを受けましたが、誰も小さな設定変更であると判明したものを診断したり修正したりしませんでした。また、いくつかの回答は好奇心よりも却下的な感じでした。顧客があなたのプラットフォームでお金を失い続けているとき、サポートはそこまで徹底調査したいはずです。それが Vercel が改善してくれることを望む部分です。製品の他の部分は、求める忠誠心に値するからです。

Vercel でスケールしているなら、まずこれをやること

成長する前に、支出管理と予算アラートを有効にしてください。月末に恐ろしい請求書を発見するのではなく、使用量が増えるにつれて通知を受け取ることの方がはるかに価値があります。 not after the first scary invoice. Being told as usage climbs is worth far more than discovering it at month end.

Vercel Firewall ルールは早期に追加してください。国、IP、ユーザーエージェント、パスで遮断またはチャレンジし、ボットが好むルートをレート制限してください。Robots.txt はそれを無視するクローラーを止めることはできません。 Block or challenge by country, IP, user agent, and path, and rate-limit routes that bots love. Robots.txt will not stop crawlers that ignore it.

トラフィックに応じてスケールする行項目がどれかを把握してください。画像最適化、関数呼び出し、ISR の読み書き、高速データ転送はすべて使用量に応じて変動し、ボットはこれらすべてを一度に動かします。 Image optimization, function invocations, ISR reads and writes, and fast data transfer all move with volume, and bots move all of them at once.

特に画像が多いサイトやプログラマティックサイトの画像最適化に注意してください。これが私を最も驚かせたコストです。メーター対象パスで変換するのではなく、ストレージまたは CDN から事前最適化画像を配信することを検討してください。 on image-heavy or programmatic sites. It is the cost that surprised me most. Consider serving pre-optimized images from storage or a CDN rather than transforming on the metered path.

では、Vercel はまだそれだけの価値があるのでしょうか。

目を開けていれば、はい。小規模および中規模プロジェクトの場合、開発者体験は業界で依然として最高であり、私は引き続き使用しています。ただし、数万回のアクセスまたは 100,000 ページ以上を実行している場合は、初日から請求を第一級のエンジニアリング上の懸念事項として扱ってください。このプラットフォームは、自分でガードレールを設定しなければ、非常に短時間で大量のお金を使わせます。

FAQ

Vercel の請求が急に跳ね上がったのはなぜですか。

最も一般的な原因は、ボット、スクレーパー、ボットファームなどの非人間トラフィックがあなたの動的またはプログラマティックページをクロールし、関数呼び出し、ISR、高速データ転送、画像最適化などのメーター対象行項目を膨らませることです。実ユーザーの増加と一致しないスパイクが目印です。

Vercel でボットトラフィックをブロックするにはどうすればよいですか。

Vercel Firewallを使用して、国、IP、ユーザーエージェント、またはパスごとにリクエストをブロックまたはチャレンジし、アグレッシブなルートにレート制限を追加できます。より強力な保護を必要とする場合は、専用のWAFをアプリの前に配置してください。Robots.txtだけでは、それを無視することを選んだボットを停止することはできません。

Vercelは自動的にボットとDDoS攻撃を停止しますか?

Vercelには基本的なDDoS軽減とボット制御が含まれていますが、請求額を静かに増やす分散クローリングを自動的に停止することはできません。通常、支出を保護するために自分自身でファイアウォールルールを設定する必要があります。

Vercelの支出をキャップまたは制御するにはどうすればよいですか?

予算アラート付きの支出管理を有効にして、使用量の上昇時に通知を受け取り、使用量ダッシュボードを定期的に確認してください。サポートされているプランでは、閾値でプロジェクトを一時停止するなどの対応が可能です。これは後から急増を発見するよりも優れています。spend management with budget alerts so you are notified as usage rises, and review the usage dashboard regularly. On supported plans it can take action such as pausing a project at a threshold, which beats finding a spike after the fact.

関連:請求額で他のホストを検討する場合のVercel代替案、およびWAFとボット管理レイヤーのCloudflare代替案。Vercel alternatives if the bill pushes you to weigh other hosts, and Cloudflare alternatives for the WAF and bot-management layer.

< BACK