Q30 — AWS SAA-C03 第8章
第 30/65 問 | ← 第8章
Q525. ソーシャルメディア企業が、Application Load Balancer(ALB)の背後に配置されたAmazon EC2インスタンス上でアプリケーションを実行しています。このALBはAmazon CloudFrontディストリビューションのオリジンです。アプリケーションでは、10億点を超える画像がAmazon S3バケットに保存されており、毎秒数千点の画像が処理されています。同社は、画像を動的にリサイズし、クライアントに適切なフォーマットで配信したいと考えています。 これらの要件を満たすソリューションのうち、運用オーバーヘッドが最も少ないものはどれですか?
- A. EC2インスタンスに外部の画像管理ライブラリをインストールし、そのライブラリを使って画像を処理します。
- B. CloudFrontのオリジンリクエストポリシーを作成します。このポリシーを用いて、リクエスト内のUser-Agent HTTPヘッダーに基づき、画像を自動的にリサイズし、適切なフォーマットを配信します。
- C. 外部の画像管理ライブラリを使用するLambda@Edge関数を作成し、画像を配信するCloudFrontのビヘイビアに関連付けます。 ✓
- D. CloudFrontのレスポンスヘッダーポリシーを作成します。このポリシーを用いて、リクエスト内のUser-Agent HTTPヘッダーに基づき、画像を自動的にリサイズし、適切なフォーマットを配信します。
正解: C. 外部の画像管理ライブラリを使用するLambda@Edge関数を作成し、画像を配信するCloudFrontのビヘイビアに関連付けます。
解説
CloudFrontには、画像の自動リサイズおよびフォーマット変換機能(CloudFront FunctionsまたはLambda@Edgeではなく、ネイティブな「CloudFront Image Resizing」機能)がありますが、これはS3を直接オリジンとする場合にのみ利用可能です。本問では、ALBがCloudFrontのオリジンとなっており、ALB経由でEC2へトラフィックがルーティングされるため、CloudFrontのネイティブ画像リサイズ機能は適用できません(この機能はS3オリジン専用です)。したがって、選択肢BおよびDは技術的に不成立です(オリジンリクエストポリシー/レスポンスヘッダーポリシーは画像変換機能を持たず、またCloudFront Image ResizingはALBオリジンでは動作しません)。選択肢AはEC2上での画像処理を意味し、スケーリング・可用性・パッチ適用などの運用負荷が高くなります。一方、選択肢CのLambda@Edgeは、CloudFrontエッジロケーションで実行され、リクエストに応じてS3から画像を取得・リサイズ・フォーマット変換して返すことが可能であり、サーバー管理不要、自動スケーリング、低運用オーバーヘッドという点で最適です。したがって、正解はCです。