DEAデータオペレーションとサポート

あるデータチームは毎日 ①Glue ETLによるS3データ取り込み ②RedshiftでのSQL集計 ③結果のS3エクスポート の順で実行するパイプラインを運用している。①が成功した場合のみ②を実行し、②または③が失敗した場合はRedshiftの中間テーブルを自動削除してSlackに通知する要件が加わった。このオーケストレーションに最も適したサービスは?

A
AWS Step FunctionsステートマシンでTaskを定義し、CatchブロックでクリーンアップとSlack通知用Lambdaをステップごとに設定する
✓ 正解
AWS Step FunctionsのCatchブロックはどのステップで失敗したかを識別して条件付きクリーンアップを実行でき、今回の要件に最も合致する。
B
AWS Glue Workflowでジョブ依存関係を定義し、FAILEDイベントをEventBridgeでLambdaに転送してRedshiftクリーンアップとSlack通知を行う
AWS Glue WorkflowはGlueジョブ間の依存管理が中心で、Redshift操作やSlack通知を含む複雑な条件分岐フローをネイティブに制御できない。
C
EventBridgeスケジューラで毎日Lambdaを起動し、Lambda内でGlue・Redshift・S3の各処理を順番に呼び出して成否を制御する
LambdaをオーケストレーターとするとLambda自体が失敗した際にクリーンアップロジックが実行されないリスクがあり状態管理が複雑になる。
D
Amazon MWAAでAirflow DAGを定義してタスク依存関係とon_failure_callbackを設定し、PythonOperatorでRedshiftクリーンアップを実行する
Amazon MWAAは多機能だが常時稼働のAirflow環境が必要で、1日1回のパイプラインに対して運用コストが過剰になる。

解説

AWS Step FunctionsはネイティブのCatchブロックでどのステップが失敗したかを識別し、条件付きクリーンアップと通知をサーバーレスで宣言的に定義できる。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
DEA の問題一覧に戻る