Q10 — AWS SAA-C03 第5章
第 10/65 問 | ← 第5章
Q310. ある企業は、Amazon API Gateway によって呼び出される AWS Lambda 関数上で実行されるステートレスな Web アプリケーションを運用しています。この企業は、アプリケーションを複数の AWS リージョンにデプロイし、リージョン単位のフェイルオーバー機能を提供したいと考えています。ソリューションアーキテクトは、トラフィックを複数のリージョンにルーティングするために何を行うべきでしょうか?
- A. 各リージョンに対して Amazon Route 53 のヘルスチェックを作成し、アクティブ-アクティブなフェイルオーバー構成を使用する
- B. 各リージョン向けのオリジンを持つ Amazon CloudFront ディストリビューションを作成し、CloudFront のヘルスチェックを用いてトラフィックをルーティングする ✓
- C. Transit Gateway を作成し、各リージョンの API Gateway エンドポイントに Transit Gateway をアタッチする。Transit Gateway を設定してリクエストをルーティングする
- D. プライマリリージョンに Application Load Balancer を作成し、ターゲットグループを各リージョンの API Gateway エンドポイントのホスト名を指すように設定する
正解: B. 各リージョン向けのオリジンを持つ Amazon CloudFront ディストリビューションを作成し、CloudFront のヘルスチェックを用いてトラフィックをルーティングする
解説
選択肢 B:各リージョンをオリジンとする Amazon CloudFront ディストリビューションを作成し、CloudFront のヘルスチェックを活用してトラフィックをルーティングする方法は、リージョン単位のフェイルオーバー機能を実現する優れたソリューションです。あるリージョンが利用不能になった場合、CloudFront は自動的に次の利用可能なリージョンへトラフィックをルーティングします。また、この手法はエンドユーザーに近い場所でコンテンツをキャッシュすることでレイテンシを低減し、バックエンドサーバーへの負荷も軽減します。選択肢 A:各リージョンに対して Amazon Route 53 のヘルスチェックを作成し、アクティブ-アクティブなフェイルオーバー構成を用いる方法も、リージョン単位のフェイルオーバーを実現する有効な手段ではありますが、CloudFront のようなキャッシュによるレイテンシ低減効果はありません。さらに、Route 53 が障害発生を検出し DNS レコードを更新するまでに時間がかかるため、DNS 解決による追加のレイテンシが発生する可能性があります。また、クライアント側で頻繁に DNS リクエストを行う必要があり、障害発生時に代替リージョンへ迅速にトラフィックを振り向けるためには、その点にも注意が必要です。選択肢 C:Transit Gateway を作成し、各リージョンの API Gateway エンドポイントにアタッチしてルーティングを設定することも技術的には可能ですが、その分構成が複雑化し、リクエストが Transit Gateway を経由して API Gateway エンドポイントに到達するため、レイテンシが増加します。選択肢 D:プライマリリージョンに Application Load Balancer を作成し、ターゲットグループを各リージョンの API Gateway エンドポイントのホスト名に設定する方法は、Application Load Balancer が API Gateway エンドポイントを直接ターゲットとして指定できないため、無効なソリューションです。