ある企業では、ユーザーがS3バケットにアップロードした画像をリサイズ・圧縮する処理サービスを運用しています。現在の実装では、EC2 t3.mediumインスタンス(月額約$30)が5分ごとにS3をポーリングして新規画像を処理しています。実態として、1日の合計処理時間は平均1〜2時間程度であり、1件の処理は最大25秒・メモリ使用量は256MBです。コストを最小化する最も適切なアーキテクチャ変更はどれか。
1日の合計処理時間が1〜2時間(稼働率5〜8%)で1件25秒・256MBという特性はLambdaに理想的です。S3イベント通知をトリガーにすることでポーリングも不要になります。月間の実行時間・メモリ消費量がLambdaの無料枠(100万リクエスト・400,000 GB秒)内に収まる可能性が高く、EC2の月額$30から大幅な削減が見込めます。 選択肢AのEC2 Gravitonプロセッサに変更はコスト改善があるものの、アイドル時間の料金は依然発生します。 選択肢BのAmazon ECS on FargateはSQSキューを使ったイベント駆動型スケーリングが可能ですが、タスク定義・IAMロール・SQSキュー等の管理が必要で運用コストが増し、断続的な短時間処理にはLambdaより割高です。 選択肢DのAuto Scaling min 0はEC2の起動に数分かかる上、スケジュール管理の運用負荷があり、ポーリング方式を維持するため構造的な改善になりません。