Q26 — AWS SAA-C03 第7章

第 26/65 問 | ← 第7章

Q456. ある企業が、小売向けウェブサイトをグローバルなユーザーに展開することを最近発表しました。このウェブサイトは、Elastic Load Balancer の背後に配置された複数の Amazon EC2 インスタンスで実行され、複数の可用性ゾーンにまたがる Auto Scaling グループ内で動作しています。企業は、顧客がウェブサイトにアクセスする際に使用するデバイスに応じて、異なるバージョンのコンテンツを提供したいと考えています。これらの要件を満たすために、ソリューションアーキテクトが実施すべきアクションの組み合わせはどれですか?(2つ選択)

正解: A. Amazon CloudFront で、複数バージョンのコンテンツをキャッシュするように設定します。, C. Lambda@Edge 関数を設定して、User-Agent ヘッダーに基づき、特定のオブジェクトをユーザーに送信するようにします。

解説

デバイス別に異なるコンテンツを配信するには、HTTP リクエストの User-Agent ヘッダーを検査し、それに基づいて適切なコンテンツを返す必要があります。Lambda@Edge は、CloudFront のエッジロケーションで実行され、リクエストやレスポンスをリアルタイムで変更できるため、User-Agent を検査してデバイス種別(例:モバイル/デスクトップ)に応じたコンテンツを動的に選択・配信するのに最適です(選択肢 C)。また、CloudFront はオリジン(ここでは EC2 インスタンス群)から取得したコンテンツを、User-Agent やその他のヘッダーに応じて複数のバージョンとしてキャッシュできます(選択肢 A)。一方、Network Load Balancer はレイヤー4(TCP/UDP)のロードバランシングであり、HTTP ヘッダー(User-Agent や Host、Path)を検査・ルーティングできないため、B、D、E は不適切です。Global Accelerator はレイヤー3/4 のトラフィックを最適化するものであり、HTTP ヘッダーに基づくコンテンツ配信には対応していません。