目次
Amazon EventBridgeとは?
Amazon EventBridgeは、コードを作成せずに、AWS のサービスや独自のアプリケーション、SaaSのデータへリアルタイムにアクセスできるサービスです。
Amazon EventBridgeはAWSが提供しているサービス以外にも独自のアプリケーション、他のSaaSなどとも組み合わせて利用できます。
それにより、既存のシステムや SaaS アプリケーションなどの大規模な更改・構築が容易になります。
Amazon CloudWatch Eventsから何が変わった?違いについて
Amazon EventBridgeは、2019年7月に発表されたサービスですが、実はそれ以前にも、AWS内のイベントをトリガーにして他のサービスと連携するサービスがありました。
それが、Amazon CloudWatch Eventsです。
名称が変わったことによる主な変更点を2つ紹介します。
CloudWatch Eventsは、AWS内のイベントやcron機能による定時イベントのみ、取り扱うことが可能でした。
しかしAmazon EventBridgeは、AWS以外のSaaSサービスで発生したイベントについても、取り扱えるようになりました。たとえば、AWSと連携が可能なシステム監視サービスであるDatadogやNewRelicといったサードパーティ製品との連携が可能です。
リージョン間イベント転送のサポートにより、同一アカウント内でのリージョンをまたいだイベントの集約が可能になりました。これにより、イベント駆動アーキテクチャを採用したシステムのイベント統合管理も可能になり、実用性が高まりました。
なお、Amazon EventBridgeでは同じCloudWatch Events APIを使用するため、乗り換えをする必要はなく、そのままEventBridgeを利用できます。
Amazon EventBridgeの構成要素
Amazon EventBridgeの構成要素には、イベントバス、イベントソース、ルール、ターゲットの4つがあります。それぞれの概要と役割について説明します。
イベントバス(Event Bus)
Amazon EventBridgeイベントバスはイベントを受信するルーターであり、ゼロ個以上の送信先やターゲットに配信します。
イベントバスは、イベントをさまざまなソースから多数のターゲットにルーティングするのに適しており、オプションでターゲットに配信する前にイベントを変換できます。
Amazon EventBridgeイベントバスは、以下のような3種類のイベントバスが存在します。
Default Event Bus
AWSのサービス同士をAmazon EventBridgeで連携する場合に利用します。
Custom Event Bus
独自のアプリケーションのイベントを作成したい場合に利用します。自分で自由に作成できます。
Partner Event Bus
AWS以外のSaaSアプリケーションのイベントを作成したい場合に利用するものです。SaaSサービス側による登録がなければ基本的に利用することはできません。
イベントソース(Event Source)
Amazon EventBridgeイベントソースは、イベントの送信元となるサービスやアプリケーションのことを指します。
イベントソースは、以下の3種類があります。
SaaSアプリケーション:
Amazon EventBridgeと連携しているSaaS アプリケーションで、イベントとして設定する際のコードを一から書く必要がありません。
たとえば、Zendesk、Datadog、PagerDutyなどのサービスが挙げられます。
カスタムアプリケーション:
Python、Node.js、Java、Goなどを含む開発言語で作られたアプリケーションです。
AWSのアプリケーション
AWS Lambda、Amazon SQS、Amazon SNS、AWS Step Functions、Amazon Kinesis Data StreamsなどのAWSサービスです。
ルール(Rules)
Amazon EventBridgeルールとは、一定の間隔ごとに実行する「イベントパターン」や特定の時間に実行する「スケジュール」に基づいて作成、実行する機能です。
たとえば、20分間隔などで実行できるようにイベントパターンを作成したり、毎月第一月曜日の太平洋標準時午前8:00時など特定の日時に実行できるようにスケジュールを作成したりします。
ターゲット
Amazon EventBridgeターゲットは、EventBridgeがイベントを送信する先のリソースまたはエンドポイントのことを指します。
Amazon EventBridgeターゲットは、EventBridgeコンソールで指定可能で、EC2 Image BuilderやAmazon SNSトピック、API送信先などさまざまなターゲットを設定できます。
Amazon EventBridgeの基本的な使い方
Amazon EventBridgeを使用するにはどのようにしたらよいでしょうか。ここでは、Amazon EventBridgeの基本的な使い方の基本的な使い方について紹介します。
イベントパターンの作成
イベントパターンの作成方法は以下の通りです。
イベントソースを選択します。
イベントソースは、イベントを生成するサービスやアプリケーションです。AWSのサービスやEventBridgeのパートナーイベントを選択できます。
イベントパターンをJSON形式で記述します。
イベントパターンは、イベントと同じ構造をしており、イベントのフィールドと値を指定します。イベントパターンに含まれないフィールドは無視されます。イベントパターンには、複数の値やコンテンツベースのフィルターを使用できます。
イベントパターンをテストします。
EventBridgeでは、サンプルイベントやカスタムイベントを使用して、イベントパターンが期待通りに動作するかどうかを確認できます。
ターゲットの指定
イベントパターンが決まったら、そのイベントをどのターゲットに送信するか決定します。
1つのルールにつき最大5つまでターゲットを指定できます。
ターゲットに使用可能な主なサービスは以下の通りです。
- Lambda関数
- EC2インスタンス
- Kinesis Data Streamsのストリーム
- Kinesis Data Firehoseの配信ストリーム
- CloudWatch Logsのロググループ
- ECSタスク
EventBridgeから各ターゲットへのアクセス制御には、IAMポリシーとリソースベースポリシーと2つの制御方法があります。
最後に
Amazon EventBridgeでは、AWS内外のさまざまなイベントソースから発生するイベントを受け取り、ルールに基づいてターゲットに送信できるサービスです。それにより、既存のシステムや SaaS アプリケーションなどを大規模に更改・構築が容易に実現できます。