Q17 — AWS DVA-C02 第1章
第 17/100 問 | ← 第1章
アプリケーションベンダーは、処理フロー内でクライアントのIPアドレスを使用する必要があります。このアプリケーションはAWSに移行され、アプリケーションロードバランサー(ALB)の後ろに配置されています。しかし、現在すべてのクライアントIPアドレスが同一に見えます。アプリケーションは水平スケーリング能力を維持する必要があります。この状況において、最もコスト効率の良い解決策は何ですか?
- A. ALBからアプリケーションを削除します。ALBを削除し、Amazon Route 53を変更してトラフィックをアプリケーションを実行するインスタンスに直接ルーティングします。
- B. ALBからアプリケーションを削除します。その代わりにClassic Load Balancerを作成します。HTTPプロトコルを使用してアプリケーションにトラフィックをルーティングします。
- C. アプリケーションコードを変更してX-Forwarded-Forヘッダーをチェックします。ヘッダー内でIPアドレスのリストが渡された場合、コードが正しく動作することを保証します。 ✓
- D. アプリケーションコードを変更してカスタムヘッダーをチェックします。クライアントコードを変更して、カスタムヘッダー内にIPアドレスを渡すようにします。
正解: C. アプリケーションコードを変更してX-Forwarded-Forヘッダーをチェックします。ヘッダー内でIPアドレスのリストが渡された場合、コードが正しく動作することを保証します。
解説
AWS環境において、アプリケーションがアプリケーションロードバランサー(ALB)の後ろにデプロイされている場合、ロードバランサーの性質により、クライアントの実際のIPアドレスはバックエンドサービスに直接公開されません。代わりに、ALBは`X-Forwarded-For`というHTTPヘッダーを追加し、これには元のクライアントのIPアドレスが含まれます。アプリケーションがクライアントの実際のIPアドレスにアクセスできるようにし、かつ水平スケーリング能力を維持するための最良の方法は、アプリケーションコードを変更して`X-Forwarded-For`ヘッダーを読み取り、処理することです。これにより、バックエンドサービスのスケール方法に関係なく、アプリケーションは常にクライアントのIPアドレスを正しく取得できます。したがって、選択肢Cが正しい解決策です。 【灯笼考证提供:swufelp1999】