kasei_sanのブログ

かせいさんのIT系のおぼえがきです。胡乱の方はnoteとtwitterへ

Amazon EventBridge おぼえがき

Amazon EventBridge って何?

Amazon EventBridge は、独自のアプリケーション、統合 Software-as-a-Service (SaaS) アプリケーション、および AWS のサービスからのデータを使用して、アプリケーションを簡単に接続することを可能にするサーバーレスイベントバス

aws.amazon.com

つまり?

SaaSとAWSのサービスをグルーコードなしで接続できるサービス

例えば、今までだったら Mackerel -> Webhook -> API Gateway -> lambda とかで実現していた処理を Mackerel -> EventBridge -> lambda とかでシンプルに実現できる

どんなSaaSと接続できるの?

ここから見れる

自分が使いそうなところだと

  • PagerDuty
  • Datadog
  • New Relic
  • Mackerel

どうやって連携するの?

例えばMackerelだと、ヘルプページに詳細が書かれてる

mackerel.io

これに沿って設定をすれば、例えばmackerelのアラート発生時に lambda を叩くみたいなのを、API Gatewayを経由せずに実行したりできる

Amazon EventBridge の特徴。イベントバス

イベントバスって?

要はこういうものらしい

f:id:kasei_san:20200327230502p:plain

  • 送信者が受信者を意識せずに、イベントを送信できるサービス
  • イベントバス管理者が、どのように誰が受信するかを制御する

AWSのアカウント毎にイベントバスが存在し、Amazon EventBridge はそこからイベントを取り出す

それって、Amazon SNSでよくない?

1つのアカウントでサービスが完了していたらSNSで良いはず

しかし、Amazon EventBridgeのイベントバスは他のアカウントにイベントを飛ばすことができる...! ので、こういった組織間でイベントを連携したい場合に使える

f:id:kasei_san:20200327231215p:plain

まとめ

  • Amazon EventBridge はイベントバスを制御することで、イベントのやり取りを簡単にするサービス
  • 送信側は最終的な受信先を意識する必要は無く、イベントバスに送るだけでよい
  • イベントバスの管理者が、受けたイベントをどうするか管理する
  • イベントバスでは、SaaS、アプリケーション(カスタムイベント)、CloudWatchEvent、他アカウントからのイベントなどを受けることができる
  • 1アカウント単体で使用する場合も、SaaSとAWSの連携にグルーコードが不要となるというメリットがある(通常のwebサービスだとこっちがメインの使い方になるはず

参考

http://d1.awsstatic.com/webinars/jp/pdf/services/20200122_BlackBelt_EventBridge.pdf

  • AWS BlackBelit の EventBridge 解説記事

SNSの代わりにEventBridgeを使用すべき5つの理由| ルミゴ

  • SNSではなくEventBridgeをつかう5つの理由を解説