あるデータエンジニアリングチームは、毎晩実行する複数ステップのデータパイプラインを構築しています。パイプラインのステップは次のとおりです。 ①AWS Glue ETLジョブでS3の生データを変換する ②Amazon Athenaクエリでデータ品質を検証する ③品質チェック合格時のみAmazon Redshift Data APIでデータをロードし、不合格時はAmazon SNSでアラートを送信する ④処理済みのS3ファイルをアーカイブ用プレフィックスに移動する このパイプラインには条件分岐・ステップ間の依存関係管理・リトライロジック・エラー通知が必要です。最も適切なオーケストレーションサービスはどれですか?
AWS Step Functions Standard WorkflowはAmazon States Language(ASL)でステートマシンを定義し、AWS Glue・Amazon Athena・Amazon Redshift Data API・Amazon SNSなど100以上のAWSサービスをSDKインテグレーションで直接呼び出せます。Choice Stateで品質チェック結果による条件分岐を宣言的に記述でき、RetryとCatchの設定で細粒度のエラーハンドリングが実現できます。各ステップの実行状態はコンソールでリアルタイムに可視化され、Lambdaなどの中間コードを挟まずに複合パイプラインを構築できます。 選択肢AのAWS Glue WorkflowはGlueジョブとクローラーのみをオーケストレーションできる機能で、Athena・Redshift・SNSなどGlue以外のサービスとの条件分岐には対応していない。 選択肢BのAmazon EventBridge Scheduler + AWS Lambdaはスケジュール起動は可能ですが、条件分岐・リトライ・エラーハンドリングのロジックをすべてLambdaコードとして実装・保守する必要があり複雑化する。 選択肢DのAmazon MWAAは高機能なオーケストレーションが可能ですが、PythonとAirflow DAGの専門知識が必要で運用コストもStep Functionsより高く、このシナリオには過剰なソリューション。