大量の画像アップロードを確実に処理する

SQSがイベントを保持するため、ワーカーは自分の速度で処理できる。失敗はDLQへ隔離して原因を直した後に再処理できる。 一覧の負荷と遅延が大きく、数万件では処理漏れの判定も複雑になる。 版の保持は再処理の仕組みではなく、利用者に再操作を求めることになる。 配信時の軽い処理向けで、アップロード時の重い画像変換の再処理基盤ではない。

S3への画像アップロードを契機に、サムネイル作成を実行している。数万件が一度にアップロードされると処理が追いつかず、失敗した画像を後で再処理する仕組みもない。処理の失敗は取りこぼさないようにしたい。

最も適切なものを1つ選択してください。

出典AWS非公式・オリジナル問題
ア
S3イベント通知を無効にし、1時間ごとにバケット全体を一覧して未処理を探す
イ
S3イベント通知をSQSへ送ってワーカーで処理し、失敗が続くものはDLQへ移す
ウ
S3のバージョニングを有効にして、失敗した画像を再アップロードしてもらう
エ
サムネイル作成をCloudFrontの関数で実行する