Amazon EventBridgeの基本

目次

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 アプリケーションなどを大規模に更改・構築が容易に実現できます。