このトピックでは、リクエストがECSインスタンス間で不均一に分散される理由と、この問題をトラブルシューティングする方法について説明します。
原因
次の理由により、リクエストがECSインスタンス間で不均等に分散される場合があります。
ECSインスタンスは、少数の接続のみを要求します。
ECSインスタンスのパフォーマンスは異なります。
説明ECSインスタンスのメモリ使用量は、リクエストが均等に分散されているかどうかを判断するための正確な指標ではありません。
セッション永続化機能が有効になっています。
セッション維持が有効になっている場合、少数のクライアントがSLBインスタンスにアクセスすると、リクエストの不均衡が発生します。 これは、少数のクライアントで SLB インスタンスをテストした場合、一般的に発生する事象です。 たとえば、送信元IPアドレスに基づくセッション持続性はTCPリスナーに対して有効になり、クライアントは負荷分散サービスのストレステストを実行するために使用されます。
ECSインスタンスがヘルスチェックに失敗しました。
異常なヘルスステータスのバックエンドサーバーも、特にストレステスト中に、リクエストの不均衡を引き起こす可能性があります。 バックエンドECSインスタンスがヘルスチェックに失敗した場合、またはバックエンドECSインスタンスのヘルスステータスが頻繁に変更された場合、不均衡が発生します。
TCP キープアライブが有効の場合
一部のバックエンドECSインスタンスに対してのみTCP Keepaliveが有効になっている場合、接続はこれらのECSインスタンスに蓄積されます。 これにより、要求は不均一に分散される。
トラブルシューティングの方法と解決策
バックエンド ECS インスタンスの重みが同じかどうかを確認します。
ECSインスタンスがヘルスチェックに失敗したかどうか、またはヘルスステータスが特定の期間に不安定であるかどうかを確認します。 ヘルスチェックがステータスコードで正しく設定されているか確認します。
WLC スケジューリングアルゴリズムとセッション維持の両方が有効になっているかどうかを確認します。 両方有効になっている場合、スケジューリングアルゴリズムを WRR に変更します。