□S3バケットに画像保存→Lambdaで画像処理(圧縮)→別のS3保存。耐久性のあるステートレスコンポーネントとして適切なサービスは?

→S3バケット → SQS → Lambda

(選択肢)

・Amazon Simple Queue Service(Amazon SQS)キューを作成します。S3バケットに画像がアップロードされたら、SQSキューに通知を送るようにS3バケットを設定します

・Amazon Simple Queue Service(Amazon SQS)キューを呼び出し元として使用するようにLambda関数を設定します。SQSメッセージが正常に処理されたら、キュー内のメッセージを削除します

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

まず、Amazon Simple Queue Service(Amazon SQS)キューを作成し、S3バケットに画像がアップロードされた際にSQSキューに通知を送るように設定すると、新しい画像が追加されたときに自動的に作業が開始されるようにすることができます。これにより、アプリケーションが画像のアップロードを監視するために手動で操作する必要がなくなります。

次に、Amazon SQSキューを呼び出し元としてLambda関数を設定すると、画像の変換や圧縮などの作業が、アップロードされた画像に対して自動的に起動します。

また、SQSメッセージが正常に処理されたら、キュー内のメッセージを削除することで、既に処理済みの画像に再度処理が行われることを防ぎます。

以上のように、Amazon SQSとLambda関数を組み合わせることで、ステートレスで耐久性のあるアプリケーションを実現し、大量の画像を効率良く自動処理することができます。

不正解についての説明:

選択肢:S3バケットに新しいアップロードがないか監視するようにLambda関数を設定します。アップロードされた画像が検出されたら、メモリ内のテキストファイルにファイル名を書き込み、テキストファイルを使用して処理された画像を追跡します

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

Lambda関数を使ってS3バケットを監視するのではなく、S3のイベント通知機能を使ってアップロードのトリガーを作成する方が効率的です。

また、メモリ内のテキストファイルを使用して処理を追跡するのは、確実性と耐久性に欠け、ステートレスな設計原則に反しています。

コメント

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