あるデータエンジニアリングチームは、以下の手順からなるデイリーバッチETLパイプラインを構築する必要があります。 ①Amazon RDSからS3へデータを抽出するAWS Lambda関数を実行 ②AWS Glue ETLジョブでデータを変換・加工 ③変換後データの品質チェックを実行し、失敗した場合はAmazon SNSで通知して処理を中断 ④品質チェック通過後にAmazon Redshiftへデータをロード 各ステップ間には依存関係があり、失敗時の自動リトライと詳細なエラーハンドリングが必要です。運用負荷を最小化しながらこのパイプラインを実装するオーケストレーションサービスはどれか。
選択肢BのAWS Step Functionsは、複数のAWSサービスをまたぐワークフローをステートマシンとして定義できるサーバーレスオーケストレーションサービスです。Lambda・Glue・SNS・Redshiftなど異なるサービスをTaskステートで統合し、Choiceステートで条件分岐(品質チェックの合否判定)、Catchでエラーハンドリング、Retryで自動リトライを宣言的に定義できます。AWS SDK統合によりコード追加なしで各サービスを呼び出し可能です。 選択肢AのAWS Glue WorkflowsはGlueジョブとクローラーの依存関係管理に特化したツールです。Lambda・SNS・Redshiftなど非Glueサービスのオーケストレーションや、条件分岐・詳細なエラーハンドリングには対応しておらず、このシナリオの全要件を満たせません。 選択肢CのAmazon EventBridge Schedulerは定時実行トリガーに使えますが、ステップ間の依存関係制御や失敗時の条件分岐・リトライを管理するオーケストレーション機能は持ちません。 選択肢DのAWS Batchはコンテナベースのバッチ計算環境であり、ジョブの依存関係は定義できますが、サービス横断の条件分岐・エラーハンドリング・通知連携を宣言的に管理するStep Functionsの柔軟性はありません。