Q2 — AWS SAA-C03 第4章
第 2/105 問 | ← 第4章
Q197. ある会社は、Application Load Balancer(ALB)の背後に配置されたAmazon EC2インスタンスのフリートから、動的なウェブサイトを提供しています。このウェブサイトは、世界中の顧客に対応するため、複数の言語をサポートする必要があります。現在のアーキテクチャはus-west-1リージョンで実行されており、他の地域にいるユーザーからのリクエスト遅延が高くなっています。ウェブサイトは、ユーザーの地理的位置に関係なく、迅速かつ効率的にリクエストに応答できる必要があります。ただし、同社は既存のアーキテクチャを複数のリージョンに再構築したくありません。これらの要件を満たすために、ソリューションズアーキテクトは何を行うべきでしょうか?
- A. 既存のアーキテクチャを、Amazon S3バケットから提供されるウェブサイトに置き換えます。Amazon CloudFrontディストリビューションを設定し、そのオリジンとしてS3バケットを指定します。キャッシュ動作の設定では、Accept-Languageリクエストヘッダーに基づいてキャッシュするように設定します。
- B. ALBをオリジンとするAmazon CloudFrontディストリビューションを設定します。キャッシュ動作の設定では、Accept-Languageリクエストヘッダーに基づいてキャッシュするように設定します。 ✓
- C. ALBと統合されたAmazon API Gateway APIを作成します。APIにはHTTP統合タイプを使用するよう設定します。API Gatewayのステージを設定し、Accept-Languageリクエストヘッダーに基づいたAPIキャッシュを有効化します。
- D. 追加の各リージョンにEC2インスタンスを起動し、NGINXをそのリージョン向けのキャッシュサーバーとして設定します。すべてのEC2インスタンスとALBを、ジオロケーションルーティングポリシーを適用したAmazon Route 53レコードセットの後ろに配置します。
正解: B. ALBをオリジンとするAmazon CloudFrontディストリビューションを設定します。キャッシュ動作の設定では、Accept-Languageリクエストヘッダーに基づいてキャッシュするように設定します。
解説
このシナリオでは、動的ウェブサイト(つまり、ユーザーごとに異なるコンテンツを返す可能性のあるアプリケーション)をグローバルに低遅延で提供する必要があり、既存のus-west-1リージョン内のALB+EC2アーキテクチャを複製せずに実現しなければなりません。CloudFrontは、ALBをオリジンとして使用することで、グローバルなエッジロケーションから動的コンテンツをキャッシュ・配信でき、Accept-Languageヘッダーに基づくキャッシュキーのカスタマイズ(Cache PolicyやOrigin Request Policyによる設定)により、言語別に最適化されたレスポンスを提供できます。これは、静的S3ホスティング(選択肢A)とは異なり、動的処理能力を維持しつつ、パフォーマンスと多言語対応を両立させる最も適切なアプローチです。選択肢CはAPI Gatewayのキャッシュ機能は主にREST APIのレスポンスをキャッシュするものであり、ALB経由の動的ウェブアプリケーション全体を効果的に高速化する設計ではありません。選択肢Dは、マルチリージョン展開を回避したいという要件に反しており、運用負担も大きくなります。よって、正解はBです。