DEA / ドメイン1 データの取り込みと変換

重要な内容

Amazon EventBridge (スケジュールとイベント駆動)

は、「いつ」「何が起きたら」パイプラインを動かすかを決めるサービスです。決まった時刻に ジョブを起動する (スケジュール)、 にファイルが届いたら を起動する ()、ジョブが失敗したら通知する、といった仕組みをサーバーなしで作れます。DEA では、スケジューラの設定、イベントトリガーの設定、イベントとスケジューラの管理として出題されます。

Point
  • EventBridge には3つの機能があります。イベントバスとルール (多対多のイベントの振り分け)、EventBridge Scheduler (時刻での起動)、EventBridge Pipes (1つのソースから1つのターゲットへの連携) です。
  • cron 式 は「毎日 2 時」のような日時の指定、rate 式 は「5分ごと」のような間隔の指定です。
  • 和訳

概要

概要の図 Object Created EventBridge Scheduler毎日 2:00 Step Functions S3 にファイル到着 イベントバス Glue ジョブの状態変化 ルールイベントパターン Glue ワークフロー SNS で通知 SQS・Kinesis・DynamoDB Streams EventBridge Pipesフィルター・エンリッチ
機能役割データパイプラインでの使い方
イベントバスとルール届いたイベントをパターンで判定し、ターゲットへ配る の到着、// の状態変化をきっかけに次の処理を起動・通知
Schedulercron・rate・一回限りの日時でターゲットを呼ぶ夜間バッチの起動、定期的な取り込み
EventBridge Pipesキューやストリームから1つのターゲットへ、フィルターと加工を挟んで渡す や Streams のレコードを Step Functions へ渡す

主要技術

①時間ベースのスケジュール ⚠️ 頻出

パイプラインを時刻で動かす方法は複数あります。

方法特徴向くケース
Schedulercron・rate・一回限り。タイムゾーンの指定、柔軟な時間枠、再試行と 。多くの AWS を直接呼べる (ユニバーサルターゲット)サービスを横断した定期起動の標準的な方法
EventBridge のスケジュールルールイベントバスのルールに cron・rate を書く従来の方法。時刻は UTC で指定し、一回限りの実行は書けない既存の構成。新規には Scheduler が推奨される
のスケジュールトリガーGlue ジョブやを cron 式で起動するGlue の中で完結するジョブとクローラー
クローラーのスケジュールクローラー自体に実行スケジュールを設定するパーティションやスキーマの定期的な更新
() の のスケジュールDAG ごとに schedule を設定。依存関係・バックフィル・再実行の管理が強い多数のタスクの依存関係がある複雑なパイプライン
①時間ベースのスケジュール ⚠️ 頻出の図 Glue のジョブ・クローラーだけ 複数サービスの処理を1つ起動 多数のタスクの依存とバックフィルを管理 何を定期的に動かすか Glue のトリガー・クローラーのスケジュール EventBridge Scheduler→ Step Functions MWAA の DAG

⚠️ 頻出: 「毎日決まった時刻に、・Glue・ などを起動したい。サーバーは管理したくない」は EventBridge Scheduler (またはスケジュールルール) です。 上の cron は運用負荷とコストの点で劣ります。

EventBridge Scheduler の柔軟な時間枠 (flexible time window) を設定すると、指定した時刻から最大その分数の範囲で呼び出しをばらけさせます。多数のスケジュールが同じ時刻に集中し、ターゲットや下流でが起きる場合に、時刻ちょうどでなくてよい処理の負荷を均せます。


②イベントトリガー: S3 イベント通知と EventBridge ⚠️ 頻出

にファイルが届いたことをきっかけにする方法は2つあります。

観点S3 イベント通知 (直接)S3 →
送信先 トピック、 標準キュー、 関数EventBridge のルールで指定する多数のターゲット (、 ワークフロー、 タスクなど)
絞り込みプレフィックスとサフィックス (拡張子)イベントパターンでオブジェクトのキー、サイズ、送信元などを細かく判定
1つのイベントの配り先同じイベントの種類とプレフィックスの組み合わせは1つの送信先 (複数へ配るなら SNS で)複数のルール・複数のターゲットへ配れる
設定イベントの種類を選んで設定で EventBridge を有効にすると、すべてのイベントが送られる
その他—とリプレイ、他アカウントのバスへの転送

S3 イベント通知の送信先に SQS の キューは使えません。順序付きで受けたい場合は EventBridge を経由します。

⚠️ 頻出: 「S3 に CSV が届いたら Step Functions のワークフローを起動」「拡張子だけでなく条件で絞りたい」「同じイベントで複数の処理を起動」は、S3 の EventBridge 連携とルールです。「届いたら Lambda を1つ起動するだけ」なら S3 イベント通知で十分です。


③AWS サービスのイベントで次の処理をつなぐ

多くのデータサービスは、状態の変化を のデフォルトのイベントバスへ送ります。

イベントの例使い方
Job State Change (SUCCEEDED / FAILED / TIMEOUT)失敗したら で通知、成功したら次の処理を起動
Glue Crawler State Changeの完了後にジョブを起動
のクラスターやステップの状態変化ステップの失敗を通知
の実行状態の変化ワークフローの失敗を検知
Data のステートメントの完了 の完了で後続を起動 (ExecuteStatement で WithEvent を指定)
Query State Change (SUCCEEDED / FAILED など)長いクエリの完了で結果の処理を起動し、 で待ち続けない
Job State Change (SUCCEEDED / FAILED / TIMEOUT / STOPPED)DataBrew のレシピジョブの完了で次の処理を起動
のジョブの状態変化の完了後に結果を処理

Glue ワークフローは、EventBridge のイベントで開始するトリガー (イベントトリガー) も持ち、一定数のイベントがたまるか一定時間が経つまで待ってから起動するバッチ化もできます。


④イベントパターンとターゲットの設定

設定内容
イベントパターンsource、detail-type、detail の値で一致を判定する 。前方一致や数値の範囲も書ける
入力ターゲットへ渡す JSON を組み立て直す (例: 名とキーだけを渡す)
ロール がターゲットを呼ぶための権限
再試行ポリシーと ターゲットへ渡せなかったイベントを へ退避する
とリプレイ過去のイベントを保存し、後で同じバスへ流し直す

ルールを作ったのにターゲットが動かない場合は、イベントパターンの不一致、ターゲットを呼ぶ権限の不足、 側で EventBridge の連携を有効にしていない、を確かめます。


⑤EventBridge Pipes

Pipes は、ソースからレコードを読み、フィルターで絞り、エンリッチメント (、 の Express ワークフロー、、 送信先) で情報を加えてから、ターゲットへ渡します。

項目内容
ソース、、 Streams、、セルフマネージドの 、
料金フィルターに一致したイベントだけが課金される
向くケースストリームやキューと処理先のあいだの「つなぐだけのコード」をなくしたい

⑥Airflow (MWAA) と EventBridge の使い分け

観点 (+ )
得意なことイベントへの即時の反応、単純な定期起動多数のタスクの依存関係、バックフィル、Python での柔軟な定義
運用、常時の費用がほぼない環境が常時動き、環境クラスに応じた費用
既存資産—既存の の を移行できる

試験対策

①判断マトリクス

問題文のキーワード選ぶ機能
毎日決まった時刻にジョブを起動、サーバーなし Scheduler
のを定期実行クローラーのスケジュール / Glue のトリガー
多数のタスクの依存関係とバックフィル
にファイルが届いたら を1つ起動S3 イベント通知
S3 の到着でワークフローを起動、条件で絞る、複数の処理へS3 → EventBridge のルール
Glue ジョブが失敗したら通知Glue Job State Change のルール →
渡せなかったイベントを失わないターゲットの
過去のイベントを流し直すとリプレイ
のメッセージを加工して へEventBridge Pipes

②よくある誤答

  • で cron を動かしてジョブを起動すること。運用負荷が高く、の Scheduler で置き換えます。
  • イベント通知の送信先に キューを指定すること。直接はできません。
  • に長い処理や多段の分岐を実装させること。EventBridge は起動と振り分けを担い、ワークフローは や に任せます。
  • S3 の EventBridge 連携を有効にせずにルールだけ作ること。イベントが届きません。

参考文献

  1. ※1出題比率: AWS 公式の試験ガイドに記載された、採点対象の設問のうちその分野が占める割合です。

検索

キーワードを入力してください