あるデータエンジニアリングチームは、AWS Glueを使用したデイリーETLパイプラインを構築しています。このパイプラインは以下の依存関係を持っています: ・Step1:S3のRawゾーンをGlue Crawlerでクロールしてデータカタログを更新する ・Step2:Crawlerの完了後、データクレンジングジョブとエンリッチメントジョブを並列実行する ・Step3:両Glueジョブの完了後、最終集計ジョブを実行する チームの要件として、Glueコンソール上でパイプライン全体の実行状況を可視化し、Step2で失敗したジョブのみをStep1からやり直さずに個別再実行したいと考えています。Glueコンソール上での管理を完結させることを優先し、追加インフラを最小化したい。最も適切なアーキテクチャはどれですか?
AWS Glue WorkflowsはGlue Crawler・ジョブ・トリガーをネイティブにサポートするETLオーケストレーション機能です。Glueコンソール上でパイプラインのグラフを視覚的に確認でき、各ノードの実行状態をリアルタイムに把握できます。条件トリガーを使用することで「Crawlerが成功した場合にStep2の両ジョブを並列起動」「両ジョブが完了した場合にStep3を起動」という依存関係を宣言的に定義できます。失敗したジョブは個別に再実行でき、成功済みのCrawlerを再実行する必要がありません。GlueリソースのみをGlueコンソール内で管理できるため、追加インフラが不要です。 選択肢AのEventBridge + Lambdaは実現可能ですが、ジョブ状態管理・並列起動ロジック・失敗時の個別再実行をLambdaコードで実装する必要があり、Glueコンソールでの統合可視化もできません。 選択肢BのAWS Step Functionsは高機能なオーケストレーションサービスですが、Glueとは別サービスであり、Glueコンソール内での可視化は提供されません。 選択肢CのAmazon MWAAはApache Airflowを提供する強力なサービスですが、クラスターの管理コスト・学習コストが発生し、Glueコンソールでの管理完結という要件を満たしません。