Q51 — AWS SAA-C03 第5章

第 51/65 問 | ← 第5章

Q351. ある企業は、Amazon API Gateway によって呼び出される AWS Lambda 関数上で実行されるステートレスな Web アプリケーションを保有しています。この企業は、アプリケーションを複数の AWS リージョンにデプロイし、リージョン単位のフェイルオーバー機能を提供したいと考えています。ソリューションアーキテクトは、トラフィックを複数のリージョンにルーティングするために何を行うべきでしょうか?

正解: B. 各リージョン向けのオリジンを持つ Amazon CloudFront ディストリビューションを作成し、CloudFront のヘルスチェックを用いてトラフィックをルーティングする

解説

B. 各リージョン向けのオリジンを持つ Amazon CloudFront ディストリビューションを作成し、CloudFront のヘルスチェックを用いてトラフィックをルーティングする:Amazon CloudFront 上で各リージョンごとに個別のオリジンを定義し、CloudFront のヘルスチェック機能を活用することで、プライマリエンドポイントが利用不能になった場合に、自動的に他のリージョンの健全なエンドポイントへユーザーを誘導できます。この手法は、ユーザーの地理的近接性およびレイテンシに基づき健全なオリジンへトラフィックをルーティングすることにより、リージョン単位のフェイルオーバー機能を実現します。選択肢 A では、各リージョンに対して Amazon Route 53 のヘルスチェックを用いる方法ですが、Route 53 は主に DNS ルーティングを目的として設計されており、CloudFront と比較してこのユースケースには効率的ではありません。選択肢 C では、トランジットゲートウェイを用いて各リージョンの API Gateway エンドポイントを接続する方法ですが、これは追加の複雑さと運用負荷を招く可能性があります。選択肢 D では、Application Load Balancer(ALB)を用いて各リージョンの API Gateway エンドポイントへトラフィックをルーティングする方法ですが、ALB はインスタンスレベルでのロードバランシングを目的として設計されており、Lambda のようなサーバーレス関数へのトラフィックルーティングには実用的ではなく、効率的でもありません。