□CloudFront→ALB→EC2→S3。10億枚以上の画像をS3バケットに保存して、毎秒数千枚の画像のサイズを動的に変更し、適切なフォーマットにする。最適な方法は?

Lambda@Edge関数を使う。

・Lambda@Edge関数と外部の画像管理ライブラリを使用します。Lambda@Edge関数と、画像を提供するCloudFrontビヘイビアを関連付けます

この選択肢が正解の理由は以下の通りです。

まず、Lambda@EdgeはCloudFrontのエッジロケーションで実行されるサーバーレス機能であり、利用者がリクエストやレスポンスをカスタマイズすることを可能にします。これにより、画像の動的なリサイズやフォーマット変更が要求毎に可能になります。

さらに、外部の画像管理ライブラリを使用すれば、画像のリサイズやフォーマット変更のための追加のプログラミングは不要で、運用上のオーバーヘッドを最小限に抑えることができます。これはアプリケーションのスケーラビリティとパフォーマンスを保つ上で非常に重要な要素です。こうした理由から、この選択肢が最適な解答となります。

選択肢:CloudFrontレスポンスヘッダーポリシーを作成します。このポリシーを使用して、リクエストのUser-Agent HTTPヘッダに基づいて、画像のサイズを自動的に変更し、適切なフォーマットを提供します

この選択肢が正しくない理由は以下の通りです。

CloudFrontレスポンスヘッダーポリシーは、画像のサイズを動的に変更して適切なフォーマットを提供する機能を持っていません。これに対し、Lambda@Edge関数を使用することで、サーバーレス環境でリクエスト毎に画像のサイズを動的に変更したり、適切なフォーマットを提供することができます。

コメント

タイトルとURLをコピーしました