▪️はじめに
AWSには、さまざまな処理を自動化し、サービス同士を連携させる仕組みがあります。
そのひとつが Amazon EventBridge(イベントブリッジ) です。
EventBridgeを使うと、AWSサービスやアプリケーションで発生したイベントを受け取り、条件に合ったイベントを別のサービスへ連携できます。
例えば、次のような処理を実現できます。
- EC2インスタンスの状態が変化したら、Lambdaを実行する
- S3にファイルがアップロードされたら、後続の処理を開始する
- 特定のイベントが発生したら、SNSを使って通知する
- 指定した時刻にLambdaなどの処理を実行する
この記事では、EventBridgeの基本的な仕組みから、イベントバス・ルール・ターゲットの役割、Lambdaとの連携まで、初心者向けに解説します。
目次
- Amazon EventBridgeとは
- イベント駆動型アーキテクチャとは
- EventBridgeの基本的な仕組み
- イベントバス・ルール・ターゲット
- EventBridgeとLambdaの連携
- EventBridge Schedulerによるスケジュール実行
- CloudWatchとの違い
- 利用する際の注意点
- まとめ
▪️Amazon EventBridgeとは
Amazon EventBridgeは、イベントを受け取り、条件に応じてAWSサービスやアプリケーションへ連携するサーバーレスサービスです。
ここでいう「イベント」とは、システム内で発生した出来事を指します。
例えば、次のようなものがイベントになります。
| イベントの例 | 発生する出来事 |
|---|---|
| EC2の状態変更 | インスタンスが起動・停止する |
| S3へのオブジェクト作成 | ファイルがアップロードされる |
| アプリケーションのイベント | 注文が確定する |
| スケジュール | 指定した時刻になる |
EventBridgeは、こうしたイベントを受け取り、あらかじめ設定した条件に一致するものを対象のサービスへ送信します。
♦︎EventBridgeを使うメリット
EventBridgeを使わずにサービス同士を直接連携させると、連携先が増えるたびに、それぞれのサービスで連携処理を実装する必要が出てくる場合があります。
EventBridgeを間に配置すれば、イベントを受け取る仕組みと、イベントを処理する仕組みを分離できます。
その結果、システム同士の依存関係を小さくし、構成を柔軟に変更しやすくなります。
▪️イベント駆動型アーキテクチャとは
EventBridgeを理解するうえで重要なのが、イベント駆動型アーキテクチャ という考え方です。
イベント駆動型アーキテクチャとは、ある出来事が発生したことをきっかけに、別の処理を実行する設計方式です。
例えば、ECサイトで注文が確定した場合を考えてみましょう。
ユーザーが商品を注文
↓
注文確定イベントが発生
↓
Amazon EventBridge
↓
┌────┼────┐
↓ ↓ ↓
Lambda SNS その他の処理
↓ ↓
注文処理 通知
注文確定イベントをきっかけに、注文に関する後続処理や通知処理を実行する構成です。
このように、イベントを発生させる側と、そのイベントを処理する側を分けることで、それぞれの役割を明確にできます。
なお、実際の注文システムでは、注文データの保存や処理の重複防止なども適切に設計する必要があります。
▪️EventBridgeの基本的な仕組み
EventBridgeのイベントバスを利用した基本的な流れは、次のとおりです。
① イベントの発生
↓
② イベントバスが受信
↓
③ ルールで条件を判定
↓
④ 条件に一致したイベントを送信
↓
⑤ ターゲットが処理を実行
それぞれの役割を確認しましょう。
① イベントの発生
AWSサービスやアプリケーションで、何らかの出来事が発生します。
例えば、EC2インスタンスの状態が「stopped」から「running」に変わることが挙げられます。
② イベントバスが受信
イベントバスは、イベントを受け取って振り分けるための仕組みです。
AWSサービスが発生させるイベントや、独自のアプリケーションが送信するイベントなどを受け取ります。
③ ルールで条件を判定
EventBridgeのルールには、どのようなイベントを対象にするかという条件を設定します。
例えば、「EC2インスタンスの状態がrunningになった場合」という条件です。
④ 条件に一致したイベントを送信
受信したイベントがルールの条件に一致すると、EventBridgeは指定されたターゲットへイベントを送信します。
⑤ ターゲットが処理を実行
ターゲットは、イベントを受け取って処理を行う連携先です。
Lambda、SNS、SQSなど、さまざまなAWSサービスをターゲットとして指定できます。
▪️イベントバス・ルール・ターゲット
EventBridgeを理解するために、3つの基本用語を押さえておきましょう。
| 用語 | 役割 | イメージ |
|---|---|---|
| イベントバス | イベントを受け取る | 受付 |
| ルール | イベントを条件で判定する | 振り分け条件 |
| ターゲット | イベントを受け取って処理する連携先 | 処理担当 |
♦︎イベントバス
イベントバスは、イベントを受信して振り分けるための仕組みです。
主な種類は次のとおりです。
- デフォルトイベントバス:AWSサービスから発生するイベントを受け取るために利用される、アカウント標準のイベントバス
- カスタムイベントバス:独自のアプリケーションなどから送信されるイベントを整理して扱うために作成するイベントバス
- パートナーイベントバス:連携する外部サービスからのイベントを受け取るためのイベントバス
イベントの発生元や用途に応じて、イベントバスを使い分けます。
♦︎ルール
ルールは、受信したイベントをどのような条件で処理するかを定義します。
例えば、EC2の状態変更イベントを受け取り、その中から「状態がrunningになったイベント」だけを対象にできます。
イベントの内容を条件にして振り分ける場合、イベントパターンという設定を使用します。
以下は、EC2インスタンスの状態がrunningになったイベントを対象にするイベントパターンの例です。
{
"source": ["aws.ec2"],
"detail-type": ["EC2 Instance State-change Notification"],
"detail": {
"state": ["running"]
}
}
各項目の意味は次のとおりです。
source:イベントの発生元を指定するdetail-type:イベントの種類を指定するdetail.state:イベントの詳細情報に含まれるインスタンスの状態を指定する
この条件に一致したイベントがターゲットへ送信されます。
なお、この例はイベントを振り分けるための条件です。実際に動作させるには、イベントバスやルール、ターゲットなどを設定する必要があります。
♦︎ターゲット
ターゲットは、条件に一致したイベントを受け取る連携先です。
代表的なターゲットには、次のようなものがあります。
| ターゲット | 主な用途 |
|---|---|
| Lambda | プログラムを実行する |
| SNS | 通知を配信する |
| SQS | メッセージをキューに送信する |
| ECS | コンテナタスクを起動する |
| CloudWatch Logs | イベントをログとして記録する |
例えば、EC2の起動イベントを受け取ったらLambdaを実行し、必要な情報をログに記録する、といった構成が考えられます。
▪️EventBridgeとLambdaの連携
EventBridgeは、Lambdaと組み合わせて利用されることが多いサービスです。
Lambdaはプログラムを実行するサービスであり、EventBridgeはイベントをきっかけにLambdaなどの処理を起動する役割を担います。
♦︎連携のイメージ
EC2の状態が変化
↓
Amazon EventBridge
↓
ルールの条件に一致
↓
AWS Lambdaを起動
↓
プログラムを実行
例えば、EC2インスタンスが起動したときに、Lambdaで通知処理や独自のチェック処理を行う構成を作れます。
この場合、EventBridgeがイベントの検知・振り分けを担当し、Lambdaが実際のプログラム処理を担当します。
♦︎Lambdaとの連携で押さえたいポイント
EventBridgeからLambdaを起動するには、EventBridgeが対象のLambda関数を呼び出せるよう、適切なアクセス許可を設定する必要があります。
Lambdaの実行ロールは、Lambdaのプログラムが他のAWSサービスへアクセスするための権限です。一方、EventBridgeからLambdaを呼び出すための許可は、別の観点で設定します。
「Lambdaが実行中に使う権限」と「Lambdaを起動するための権限」は別物 なので、混同しないようにしましょう。
▪️EventBridge Schedulerによるスケジュール実行
EventBridgeには、イベントの発生をきっかけに処理する仕組みだけでなく、指定した時刻や間隔で処理を実行するための機能もあります。
その代表例が Amazon EventBridge Scheduler です。
EventBridge Schedulerを使うと、定期的な処理や一度だけ実行する処理をスケジュールできます。
例えば、次のような用途があります。
- 毎日決まった時刻にLambdaを実行する
- 一定間隔でAWSサービスのAPIを呼び出す
- 指定した日時に処理を実行する
- 定期的なバッチ処理を起動する
♦︎スケジュール実行のイメージ
指定した時刻になる
↓
EventBridge Scheduler
↓
設定したターゲットを呼び出す
↓
Lambdaなどの処理を実行
スケジュールは、例えばcron式やrate式などで設定できます。
- cron式:特定の日時や曜日などに実行する
- rate式:一定の間隔で実行する
スケジュール実行を新しく設計する場合は、従来のスケジュールルールではなく、EventBridge Schedulerの利用を検討しましょう。
なお、スケジュールされた時刻に処理を呼び出すことと、処理そのものが必ずその時刻ぴったりに完了することは異なります。実行時刻の精度や再試行などの設定も確認することが重要です。
▪️CloudWatchとの違い
EventBridgeとCloudWatchは、どちらもAWSの監視・運用や自動化に関わるため、混同されることがあります。
しかし、それぞれの主な役割は異なります。
| サービス | 主な役割 | 具体例 |
|---|---|---|
| Amazon CloudWatch | メトリクスやログの監視・分析 | CPU使用率がしきい値を超えたことを検知する |
| Amazon EventBridge | イベントの受信・条件判定・連携 | EC2の状態変更イベントを受け取り、Lambdaを起動する |
例えば、EC2のCPU使用率が高くなった場合を考えます。
CloudWatchアラームでCPU使用率などのメトリクスを監視し、アラーム状態への変化をイベントとしてEventBridgeで扱う構成も可能です。
EC2のCPU使用率が上昇
↓
CloudWatchがメトリクスを監視
↓
CloudWatchアラームが状態変化
↓
EventBridgeでイベントを振り分け
↓
Lambdaや通知先へ連携
ただし、すべてのCloudWatchアラームの通知でEventBridgeが必須になるわけではありません。要件に応じて、CloudWatchアラームからSNSへ直接通知する構成なども選択できます。
ポイントは、CloudWatchが監視・分析を担い、EventBridgeがイベントを使ったサービス間連携を担う、という役割の違いです。
▪️利用する際の注意点
EventBridgeを利用する際は、次のポイントを押さえておきましょう。
① イベントパターンを正しく設定する
イベントパターンの条件が正しくないと、想定したイベントがターゲットへ送信されなかったり、対象外のイベントまで処理されたりする可能性があります。
イベントの発生元、種類、詳細情報を確認し、必要なイベントだけに一致する条件を設定しましょう。
② アクセス許可を設定する
EventBridgeからターゲットを呼び出すには、ターゲット側のリソースポリシーや、必要に応じたIAMロールなどで適切な権限を設定する必要があります。
権限不足があると、イベントを受信していてもターゲットの処理を実行できないことがあります。
③ イベントが届かない場合に備える
イベントを連携する構成では、ターゲット側のエラーやアクセス許可の問題などにより、処理が正常に実行されない場合があります。
必要に応じて、再試行の設定やデッドレターキュー(DLQ)などを検討しましょう。EventBridge Schedulerとイベントバスのルールでは設定項目や挙動が異なるため、利用する機能に合わせて確認することが大切です。
④ 重複実行を考慮する
イベント駆動型のシステムでは、同じイベントに関連する処理が複数回実行される可能性を考慮する必要があります。
例えば、注文処理で同じイベントを受け取ったときに、二重に注文を確定してしまうと問題になります。
そのため、重要な処理では、処理済みのイベントを識別する仕組みなどを設け、重複して実行されても問題が起きにくい設計を検討しましょう。
⑤ ログや監視を設定する
EventBridgeのルールが有効になっているか、イベントがターゲットへ送信されているか、ターゲット側でエラーが発生していないかを確認できるようにしましょう。
CloudWatchなどを活用してログやメトリクスを確認できる構成にしておくと、障害発生時の原因調査に役立ちます。
▪️まとめ
Amazon EventBridgeは、イベントを受け取り、条件に応じてAWSサービスやアプリケーションへ連携するサーバーレスサービスです。
今回のポイントを整理します。
- イベントバス:イベントを受け取る
- ルール:イベントが条件に一致するか判定する
- ターゲット:条件に一致したイベントを受け取って処理する
- Lambdaとの連携:イベントをきっかけにプログラムを実行できる
- EventBridge Scheduler:指定した時刻や間隔で処理を起動できる
- CloudWatchとの違い:CloudWatchは主に監視・分析、EventBridgeはイベントを使った連携を担う
EventBridgeを理解すると、AWSのサービスを個別に使うだけでなく、イベントをきっかけに複数のサービスを組み合わせて自動化する考え方が身につきます。
まずは「イベントが発生する → EventBridgeが条件を判定する → ターゲットが処理する」という流れを押さえておきましょう。
次の記事では、「AWS Step Functions」について解説します。
*「AWS Step Functions」の記事はこちら
→「https://lovelabengineer.com/2026/10/09/aws-step-functionsとは?複数の処理を連携させる仕組みを初心/」

No responses yet