問題の説明
Performance Testing Service (PTS) を使用したストレステスト中に、ご利用のバックエンドサーバーの CPU、メモリ、I/O 使用率が低いにもかかわらず、エラーまたはタイムアウトが発生する場合があります。これは通常、ボトルネックがアプリケーションサーバーではなく、PTS とご利用のバックエンド間のネットワークアクセス層にあることを意味します。
原因
PTS からのリクエストは、バックエンドに到達する前に 1 つ以上の中間サービスを通過します。これらのサービスには、ロードバランサー、ファイアウォール、DDoS 対策、CDN ノードが含まれます。各サービスには独自の容量制限とセキュリティポリシーがあります。制限に達すると、リクエストはバックエンドに到達する前にドロップまたは拒否されます。その結果、エラーが急増する一方で、バックエンドのメトリックは低いままになります。
迅速な診断
次の表を使用して、どのネットワークアクセス層がエラーの原因となっているかを特定します。
| 症状 | 考えられる原因 | セクション |
|---|---|---|
| HTTP 503 エラー。バックエンドにトラフィックまたはログがない | SLB スロットリング | SLB スロットリング |
| テスト中にエラーが急増。セキュリティログにブロックされたリクエストが表示される | Anti-DDoS または WAF によるブロック | Anti-DDoS または WAF によるブロック |
| トラフィックが過去のピークに近づくか、それを超えた場合のエラー | CDN または ESA の容量制限 | CDN または ESA の容量 |
ソリューション
ご利用のバックエンドの前に位置するネットワークアクセス層プロダクトを特定し、該当するセクションに従ってください。
Server Load Balancer (SLB) スロットリング
症状
-
ストレステスト中の HTTP 503 エラー
-
バックエンドサーバーに該当するトラフィックまたはログエントリがない
-
HTTPS ワークロード下、またはレイヤー 7 セッション維持が有効な場合にエラーが発生する
原因
SLB インスタンスは、IP ごとのスロットリング制限を適用します。SLB が最も外側のサービス層であり、API が HTTPS またはレイヤー 7 セッション維持を使用する場合、SLB の処理オーバーヘッドが増加します。SLB インスタンスの単一 IP アドレスがスロットリングしきい値に達し、リクエストをバックエンドに転送する代わりに 503 エラーを引き起こす可能性があります。
解決策
-
ご利用の SLB インスタンスの仕様制限を確認してください。
メトリック 説明 最大接続数 インスタンスがサポートする同時接続の合計数 1秒あたりの接続数 (CPS) 1秒あたりに確立される新規接続数 1秒あたりのクエリ数 (QPS) 1秒あたりに処理される HTTP/HTTPS リクエスト数 -
購入した課金タイプに基づいて、帯域幅割り当てがご利用のストレステストのボリュームと一致していることを確認してください。
-
SLB の仕様がボトルネックである場合は、テストを再実行する前に、より高スペックのインスタンスにスペックアップしてください。
SLB からの 503 エラーの詳細については、「503 (Service Unavailable)」をご参照ください。
Anti-DDoS または WAF によるテストトラフィックのブロック
症状
-
ストレステストの途中でエラーが急増する
-
Anti-DDoS または Web Application Firewall (WAF) のログにブロックされたリクエストが表示される
-
ストレステストの結果が不安定になる、またはテストが完全に失敗する
原因
限られた IP セットからの高いリクエストレートというストレステストのトラフィックパターンは、Challenge Collapsar (CC) や DDoS 攻撃に酷似しています。Anti-DDoS および WAF の保護ポリシーはこれらのパターンを検出し、トラフィックをブロックします。
解決策
-
Anti-DDoS または WAF のログを確認し、ブロックされたトラフィックが正当な PTS ストレステストトラフィックであることを確認してください。
-
ご利用の本番環境への影響を評価してください。
-
関連する保護ポリシーを一時的に無効にするか、PTS ストレステストトラフィックを許可リストに追加してください。
-
ストレステストが完了した後、保護ポリシーを再度有効にしてください。
詳細については、以下をご参照ください。
CDN または ESA の容量制限
症状
-
ストレステストのトラフィックが過去のピークに近づくか、それを超えた場合のエラーまたはパフォーマンスの低下
-
コンテンツデリバリーネットワーク (CDN) または Edge Security Acceleration (ESA) の PoP (Point of Presence) がエラーを返す
原因
CDN および ESA の PoP は、ご利用の過去のトラフィックパターンに基づいて容量を割り当てます。既存のピークを超えるストレステストは、特定の PoP で割り当てられた容量を超える可能性があります。
解決策
ご利用のストレステストが現在のピークトラフィックレベルに近づくか、それを超えることが予想される場合は、テストを実行する前に、ターゲットの CDN PoP および ESA PoP を報告するために チケットを送信 してください。