CloudFront の負荷テスト
従来の負荷テストの方法は CloudFront では適切に機能しません。CloudFront が、DNS を使用して、地理的に分散したエッジロケーション間および各エッジロケーション内で負荷を分散するためです。クライアントが CloudFront にコンテンツをリクエストすると、クライアントは一連の IP アドレスが含まれた DNS レスポンスを受け取ります。DNS が返す IP アドレスの 1 つだけにリクエストを送信してテストするなら、1 つの CloudFront エッジロケーション内のリソースのごく一部分にのみテストを実行することなり、実際のトラフィックパターンを正確には表しません。この方法でテストした場合、リクエストするデータの量によっては、テスト対象になったごく一部分の CloudFront サーバーに負荷がかかりすぎて、パフォーマンスが低下することもあります。
CloudFront は、複数の地理的リージョンにわたってクライアント IP アドレスや DNS リゾルバーの異なるビューワーに応じて、スケーリングされるように設計されています。CloudFront のパフォーマンスを正確に評価する負荷テストを実行するには、以下の手順をすべて実行することをお勧めします。
-
複数の地理的リージョンからクライアントのリクエストを送信します。
-
各クライアントが独立した DNS リクエストを行うようにテストを設定します。結果として、クライアントごとに異なる IP アドレスのセットを DNS から受け取ります。
-
リクエストを行うクライアントごとに、DNS から返された IP アドレスのセット全体にクライアントリクエストを分散します。これにより、CloudFront エッジロケーション内の複数のサーバーに負荷が分散されます。
メモ
-
Lambda@Edge ビューワーリクエストまたはビューワーレスポンストリガーがあるキャッシュ動作に対しては負荷テストを実行できません。
-
オリジンシールドが有効になっているオリジンに対しては負荷テストを実行できません。