Q87 — AWS SAA-C03 第11章
第 87/100 問 | ← 第11章
Q787. ある企業が、Application Load Balancer の後ろで Amazon EC2 インスタンス上に高可用性の Web アプリケーションを実行しています。同社は Amazon CloudWatch メトリクスを活用しています。Web アプリケーションへのトラフィックが増加すると、一部の EC2 インスタンスが多数の未処理リクエスト(outstanding requests)により過負荷状態になります。CloudWatch メトリクスによると、これらの EC2 インスタンスでは、処理されたリクエスト数および応答受信までの所要時間が、他の EC2 インスタンスと比較していずれも高くなっています。同社は、すでに過負荷状態にある EC2 インスタンスに対して新たなリクエストが転送されないようにしたいと考えています。この要件を満たす解決策はどれですか?
- A. RequestCountPerTarget および ActiveConnectionCount CloudWatch メトリクスに基づくラウンドロビン方式のルーティングアルゴリズムを使用する。
- B. RequestCountPerTarget および ActiveConnectionCount CloudWatch メトリクスに基づく「未処理リクエスト数最少」方式のルーティングアルゴリズムを使用する。
- C. RequestCount および TargetResponseTime CloudWatch メトリクスに基づくラウンドロビン方式のルーティングアルゴリズムを使用する。
- D. RequestCount および TargetResponseTime CloudWatch メトリクスに基づく「未処理リクエスト数最少」方式のルーティングアルゴリズムを使用する。 ✓
正解: D. RequestCount および TargetResponseTime CloudWatch メトリクスに基づく「未処理リクエスト数最少」方式のルーティングアルゴリズムを使用する。
解説
『未処理リクエスト数最少』(least outstanding requests)方式のルーティングアルゴリズムは、各ターゲット(EC2 インスタンス)の現在の未処理リクエスト数に基づいてトラフィックを分散するよう設計されています。EC2 インスタンスが多数の未処理リクエストで過負荷になると、このアルゴリズムを用いることで、新たなリクエストがその過負荷インスタンスに送信されるのを防ぎ、健全なインスタンス間で負荷をより均等に分散できます。CloudWatch の RequestCount メトリクスは、各ターゲット(EC2 インスタンス)が処理したリクエストの総数を提供し、TargetResponseTime メトリクスは、各ターゲットからの応答受信までに要した時間を提供します。これらのメトリクスを活用することで、ロードバランサーは未処理リクエスト数が多く、応答時間も長い(つまり過負荷の可能性が高い)インスタンスを特定できます。 他の選択肢が不適切な理由は以下の通りです。 A:RequestCountPerTarget および ActiveConnectionCount メトリクスに基づくラウンドロビン方式では、すべてのターゲットにリクエストを均等に配分するため、各インスタンスの現在のワークロードを考慮しません。そのため、すでに過負荷状態のインスタンスにも新たなリクエストが送信され続け、要件を満たせません。 B:RequestCountPerTarget メトリクスを考慮するのは有益ですが、ActiveConnectionCount メトリクスはインスタンスの実際のワークロードを正確に反映しない場合があります。一方、TargetResponseTime メトリクスは、インスタンスからの応答までの遅延を示すため、過負荷状態の検出により適しています。 C:RequestCount および TargetResponseTime メトリクスに基づくラウンドロビン方式でも、インスタンスのワークロードを考慮しません。RequestCount は累積処理数であり、未処理リクエスト数を示さず、TargetResponseTime も単独では即時の負荷状況を正確に表すとは限りません。 したがって、この要件を満たす正しい解決策は、選択肢 D です。