DEAデータの取り込みと変換
ある金融データ分析会社は、日次ETLパイプラインとして以下のステップを実行しています。
①S3へのデータ到着を検知する
②AWS Glue ETLジョブでデータをクレンジングする
③データ品質チェックを実施し合格時はRedshiftへロード・不合格時はSNSでアラートを送信して処理を停止する
④ロード完了後にLambdaでQuickSightキャッシュを更新する
この条件分岐・エラーハンドリングを含む複数ステップのワークフローを最小の開発コストで実装するには何を使うべきですか?
AAWS Step Functionsのステートマシンを定義し、Glueジョブ実行・Choice Stateによる条件分岐・Lambda呼び出し・エラーハンドリングを統合管理する
✓ 正解
AWS Step FunctionsはGlue・Lambda・SNS等のAWSサービスをネイティブに統合でき、Choice State(条件分岐)とCatch/Retry(エラーハンドリング)をビジュアルエディタで最小コードで定義できます。
BAWS Glue Workflowを使用し、トリガーを連鎖させてGlueジョブ・データ品質チェック・条件分岐フローを実装する
AWS Glue WorkflowはGlueジョブとクローラーの連携に特化したオーケストレーション機能であり、Lambda・SNS・Redshiftをまたがる複雑な条件分岐フローの実装には機能が不足しています。
CAmazon EventBridgeルールでS3イベントとGlueジョブ完了イベントを検知し、各ステップのLambdaをチェーン実行して状態を管理する
Amazon EventBridge + Lambdaの組み合わせはイベント駆動処理には優れますが、複数ステップの状態管理・条件分岐ロジックをLambda内に自前実装する必要があり、開発コストが増大します。
DAmazon MWAAでAirflow DAGを作成し、PythonオペレータでGlue・Redshift・Lambda・SNSを順次呼び出すワークフローを定義する
Amazon MWAAはAirflow環境のフルマネージドサービスですが、インフラ構築とDAG開発のコストが発生します。少数ステップのパイプラインに対してはStep Functionsより開発コストが高くなります。
解説
AWS Step Functionsは、マネージドなワークフローオーケストレーションサービスです。AWS SDK統合によりGlue ETLジョブの実行・完了待機、Choice Stateによる条件分岐(品質チェック合格/不合格)、Retry/Catchによるエラーハンドリング、Lambda・SNS呼び出しをASL(Amazon States Language)またはWorkflow Studioのビジュアルエディタで定義できます。異なるAWSサービスをまたがる複雑なフローを最小の開発コストで実装できます。
選択肢BのAWS Glue WorkflowはGlueのジョブ・クローラー間の連携に特化しており、Lambda・SNS・Redshiftなど異なるサービスをまたがる条件分岐フローの実装には機能が不足しています。
選択肢CのAmazon EventBridge + Lambdaは、複数ステップの状態管理と条件分岐ロジックをLambda間で自前実装する必要があり、開発・保守コストが大幅に増大します。
選択肢DのAmazon MWAAはApache Airflow環境の構築・管理コストが発生し、このパイプライン規模に対してはオーバースペックで開発コスト最小という要件に合いません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →