銀行のITチームが、オンプレミスで動作するバッチ処理システム(夜間に数百万件の取引データを処理するJavaアプリケーション、平均処理時間6時間・最大12時間)をAWSへ移行し、同時にサーバーレスアーキテクチャへモダナイゼーションすることを決定しました。 バッチ処理の特性: - 1件の処理に30秒〜5分かかる(外部APIコールを含む) - 複数ステップで構成(データ取得→バリデーション→変換→集計→レポート生成→通知) - エラー発生時はそのステップから再実行可能なチェックポイント機能が必要 - 処理量は月末・期末に通常の5倍に増加 - 処理結果は監査目的で5年間保持が必要 このシナリオでサーバーレスモダナイゼーションの最適なアーキテクチャはどれですか?
Step Functions + SQS + Lambdaの組み合わせが最適なサーバーレスアーキテクチャです。Step Functionsの6ステップのステートマシンがチェックポイントと再実行機能を提供し、エラーハンドリングとリトライを宣言的に定義できます。SQSで並列処理を実現し月末の5倍の処理量にも自動スケールします。S3 Lifecycle PolicyでGlacier Deep Archiveへ自動移行し、5年間の監査ログ保持をコスト効率よく実現します。 選択肢BのLambdaの再帰呼び出しはAWSの非推奨パターンであり、無限ループのリスクがあるため適切ではありません。 選択肢CのFargateはコンテナ管理が発生するため完全なサーバーレスとは言えず、サーバーレスモダナイゼーションの要件には合致しません。 選択肢DのAmazon BatchはEC2/Fargateを使用するため完全なサーバーレスアーキテクチャではなく、サーバーレスモダナイゼーションの要件には合致しません。