サーバーレス

Amazon EventBridge あまぞん いべんとぶりっじ

イベント駆動アーキテクチャサーバーレスAWSイベントバスルーティングSaaS連携
EventBridgeについて教えて

簡単に言うとこんな感じ!

EventBridgeは、AWSのサービス同士やSaaSツールを「何かが起きたら次のアクションを自動で実行」ってつなぐ”電話交換手”みたいなものだよ!「注文が入ったら在庫を更新して、メールも送って」みたいな連携を、コード最小限で組み立てられるんだ!


Amazon EventBridgeとは

Amazon EventBridge(イベントブリッジ)は、AWSが提供するサーバーレスイベントバスサービスです。「イベント」とは「何かが起きた」という通知のことで、たとえば「EC2インスタンスが停止した」「S3にファイルがアップロードされた」「Salesforceで商談が更新された」といった出来事がイベントにあたります。EventBridgeはこれらのイベントを受け取り、あらかじめ定義したルールに従って適切な宛先(Lambda関数・SQS・Step Functionsなど)へ自動的に振り分けます。

イベント駆動アーキテクチャ(Event-Driven Architecture:何かが起きたことをトリガーにして処理を連鎖させる設計)の中心的な役割を担うのがEventBridgeです。従来はシステム間の連携にAPIの直接呼び出しや複雑なバッチ処理が必要でしたが、EventBridgeを使うと送り手と受け手を疎結合(お互いを直接知らなくてよい状態)に保ちながら柔軟に連携できます。

もともとは「CloudWatch Events」という名称でAWSサービス内のイベント通知のみを扱っていましたが、2019年にEventBridgeとして独立・強化され、SaaSサービスとの直接統合カスタムイベントバスなど、エンタープライズ向けの機能が大幅に拡充されました。


EventBridgeの主要コンポーネント

コンポーネント役割具体例
イベントバスイベントの受け口(チャンネル)デフォルトバス/カスタムバス/パートナーバス
イベント「何かが起きた」を表すJSONデータEC2停止通知・注文確定・Salesforce更新
ルールどのイベントをどこに送るかの条件と宛先「source=ec2 かつ state=stopped → Lambda実行」
イベントパターンルールが適用されるイベントの条件式{"source": ["aws.ec2"]}
ターゲットイベントの送り先(最大5個まで)Lambda・SQS・SNS・Step Functions・ECS など
スケジュール時刻ベースでイベントを発生させる毎日9時にバッチ処理を起動

3種類のイベントバス

┌───────────────────────────────────────────────────┐
│                 EventBridge                        │
│                                                   │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐ │
│  │ デフォルト    │  │ カスタム     │  │ パートナー   │ │
│  │ イベントバス  │  │ イベントバス │  │ イベントバス │ │
│  │              │  │              │  │              │ │
│  │ AWSサービス  │  │ 自社アプリ   │  │ Salesforce   │ │
│  │ からの通知   │  │ のイベント   │  │ Zendesk 等   │ │
│  └──────────────┘  └──────────────┘  └──────────────┘ │
└───────────────────────────────────────────────────┘
  • デフォルトバス:AWS自身のサービス(EC2・S3・RDSなど)が自動的にイベントを送るバス。追加設定不要で利用可能
  • カスタムバス:自社アプリケーションのイベントを流すために作成するバス。マイクロサービス間の連携に使う
  • パートナーバス:Salesforce・Zendesk・GitHub・Shopifyなど、SaaSサービスが直接イベントを送り込めるバス

イベントの流れとルーティング

EventBridgeを通るイベントの一生を追うと、こんな流れになります。

イベントソース AWS / SaaS / カスタム イベントバス イベントを受信 JSON形式で 保持・配信 最大24時間リトライ ルール評価 イベントパターン と照合 条件が一致したら ターゲットへ送信 ターゲットA Lambda関数 ターゲットB SQSキュー ターゲットC Step Functions ① イベント発生 → ② バスで受信 → ③ ルール照合 → ④ ターゲットへ配信

イベントパターンの書き方(例)

{
  "source": ["aws.ec2"],
  "detail-type": ["EC2 Instance State-change Notification"],
  "detail": {
    "state": ["stopped", "terminated"]
  }
}

このパターンは「EC2インスタンスが停止または終了したとき」というルール。JSONの部分一致で条件を書けるため、プログラミング知識がなくても直感的に設定できます。


歴史と背景

  • 2015年:前身となる「Amazon CloudWatch Events」がリリース。AWSサービスのイベントをLambdaやSNSに送る機能として登場
  • 2019年11月:re:Invent 2019で「Amazon EventBridge」として独立・リブランド。SaaS統合(Zendesk・PagerDutyなど)、カスタムイベントバス、スキーマレジストリを追加
  • 2021年EventBridge Pipesのプレビュー開始。ポイントツーポイントの接続をよりシンプルに構築できる機能
  • 2022年:EventBridge Pipesが正式リリース。フィルタリング・変換・エンリッチメントをノーコードで設定可能に
  • 2023年EventBridge Schedulerが強化。cron式・rate式でのスケジュール実行をより細かく制御できるように
  • 現在:250以上のAWSサービスがデフォルトバスにイベントを送信。SaaSパートナーも30社以上に拡大

イベント駆動アーキテクチャの普及に伴い、マイクロサービス間の疎結合化・非同期処理化のニーズが高まり、EventBridgeはその中核を担うサービスとして定着しました。


類似サービスとの比較

EventBridgeと混同されやすいAWSの他のメッセージングサービスを整理します。

サービス比較 EventBridge イベント駆動 ルールベース振り分け SaaS連携あり 1:多 配信 向き: 複雑な イベントルーティング 遅延: ミリ秒〜秒 スループット: 中 SNS Pub/Sub型通知 トピックでグループ化 メール/SMS/Push対応 1:多 配信 向き: シンプルな プッシュ通知 遅延: ミリ秒〜秒 スループット: 高 SQS メッセージキュー ポーリング型取得 順序保証あり(FIFO) 1:1 消費 向き: 非同期処理 バッファリング 遅延: ほぼゼロ スループット: 非常に高 Kinesis ストリーミング 大量データ処理 時系列順序保証 1:多 消費 向き: ログ・IoT・ リアルタイム分析 遅延: ミリ秒 スループット: 超高 ※ 用途に応じて組み合わせて使うのが一般的

実務での使い分け目安:

こんなとき使うサービス
「EC2が止まったらSlackに通知したい」EventBridge → Lambda → Slack
「注文が来たら複数の処理を並行して走らせたい」EventBridge or SNS
「処理が重いので順番にキューイングしたい」SQS
「毎秒100万件のIoTデータを分析したい」Kinesis

実務でのユースケース

1. インフラ監視の自動化

EC2やRDSが異常状態になったら自動でアラートを上げたり、復旧スクリプトを実行したりする。従来はCloudWatchアラームの設定が複雑でしたが、EventBridgeのルールで直感的に設定できます。

2. SaaS連携ワークフロー

Salesforceで商談ステータスが「成約」に変わったとき、自動的に社内の受注システムにデータを登録し、担当者にSlack通知を送るといった連携が、コード最小限で実現できます。

3. マイクロサービス間の非同期連携

注文サービス・在庫サービス・請求サービスが直接呼び合うと一つが止まったら全体が止まります。EventBridgeをハブにすることで、各サービスは「イベントを発行するだけ」で済み、障害時の影響を局所化できます。

4. 定期バッチ処理のスケジュール実行

「毎日深夜2時にデータ集計Lambdaを起動」のようなcron的な使い方もEventBridgeのSchedulerで対応できます。EC2を立てっぱなしにする必要がなくなり、コスト削減に直結します。


関連用語

  • AWS Lambda — EventBridgeが最もよく使うターゲット。イベント発生時にコードを実行するサーバーレス関数
  • Amazon SQSメッセージキューサービス。EventBridgeと組み合わせてイベントをバッファリングするのに使う
  • Amazon SNS — Pub/Sub型の通知サービス。シンプルな1対多通知ならSNSが向いている
  • マイクロサービス — 機能を細かく独立させた設計手法。EventBridgeはマイクロサービス間を疎結合でつなぐ役割を担う
  • イベント駆動アーキテクチャ — 「何かが起きたら次の処理を動かす」設計思想。EventBridgeはその実装基盤
  • AWS Step Functions — 複数のLambdaや処理をフロー制御するオーケストレーションサービス。EventBridgeと組み合わせて使う
  • Amazon Kinesis — 大量ストリームデータのリアルタイム処理。大量データはKinesisを使い分ける
  • サーバーレス — サーバーの管理不要でコードや機能を動かす考え方。EventBridgeはその代表的サービスの一つ