事の発端は、手元にある複数のウェブサイトを管理するプロジェクトで、サイトマップをクロールするたびにデータベースへのクエリが実行されることでした。
スパイダーが増えると、パフォーマンスに大きな負荷がかかるため、サイトマップのクエリをプリキャッシュするようにしました(これにより、パフォーマンスの低下を最小限に抑えることができます)。
ドメインには、cf の cdn が設定されており、1 秒あたりのリクエスト数が 200 回で、消費されるトラフィックはわずか 1m 程度です。
サイトマップのクエリ方法を変更した後、他の理由でリバースプロキシを追加してトラフィックを分散させることにしました。
その結果、1 秒あたりのリクエスト数は約 160 回で、トラフィックの消費量は約 12m で、1 日あたりのトラフィック消費量は約 1t になります。
サーバーは双方向のトラフィックを処理する必要があり、リバースプロキシのサーバーは 15 日間で停止してしまいます。メインサーバーでは、スパイダーの数が増えても 1 ヶ月間実行されません。
原因は、スパイダーがウェブサイトのサイトマップを頻繁にクロールしているため、リクエストごとに約 120k 消費していることです。
メインサーバー - リバースプロキシ - cf の cdn で gzip が効いていません。gzip は cf の cdn からクライアントに到達するときにのみ有効になります。
結果として、サーバー間の通信で多くのトラフィックが消費されてしまいました。この時点で、万能の Google を使って解決策を見つける必要がありました。