ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

Amazon EventBridge について

f:id:kitahara-fv:20190723134649p:plain みなさん、こんにちは。クラウドインテグレーション事業部 北原です

少し日が経ってしまいましたが、7月11日のAWS NEWSにて「Amazon EventBridge」が紹介されました

aws.amazon.com

概要

以下、AWS NEWSより引用しています

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

  • EventBridge はZendesk、Datadog、PagerDuty などのイベントソースからリアルタイムデータのストリームを配信し、そのデータを AWS Lambda(以下、Lambda) などのターゲットにルーティングします

  • ユーザはルーティングルールの設定、データを送信する場所の決定、すべてのデータソースにリアルタイムで反応するアプリケーションアーキテクチャの構築ができます。EventBridge を使用すると、疎結合かつ分散型のイベント駆動型アーキテクチャの構築が可能になります。これにより俊敏性とアプリケーションの回復力が向上します。EventBridge ではイベントの取り込みと配信、セキュリティ、承認、およびエラー処理が行われるため、イベント駆動型アプリケーションを簡単に構築することができます

  • EventBridge は CloudWatch Events API を利用するため、CloudWatch Events は新しいEventBridge コンソールおよび CloudWatch イベントコンソールで、既存のデフォルトのバス、ルール、イベントにアクセスできます

利用前提/対応リージョン

以下、AWS NEWSより引用しています

  • EventBridge は、AWS マネジメントコンソール、コマンドラインインターフェイス (CLI)、あるいは Software-Development-Kit(SDK) から使用を開始できます。新しいイベントバスを作成すると、SaaS アプリケーションからイベントを数分で受信できます。次に、AWS のサービスまたは SaaS アプリケーションのリストからイベントを照合するためのルールを作成して、イベントのターゲットを設定します

  • EventBridge は、米国東部 (オハイオおよびバージニア北部)、米国西部 (オレゴンおよび北カリフォルニア)、カナダ (中部)、欧州 (ストックホルム、パリ、アイルランド、フランクフルト、ロンドン)、アジアパシフィック (ムンバイ、東京、香港、ソウル、シンガポール、シドニー)、および南米 (サンパウロ) の各リージョンで一般公開されています

仕組み

f:id:kitahara-fv:20190723140125p:plain

f:id:kitahara-fv:20190723140300p:plain

f:id:kitahara-fv:20190723140749p:plain

使ってみる

さっそく使ってみようと思います

色々なSaaS⇒EventBridge⇒AWS連携が出来ますが、ひとまず、AWS環境で完結出来る「EC2⇒EventBridge⇒Lambda」の連携をやってみます

実現方式はEventBridgeで作成したルールにてEC2のステータス変化を監視しstoppedになったステータスを起因にLambdaで自動復旧を実現します

サービス[Amazon EventBridge]を選択し、ルールを作成を選択します f:id:kitahara-fv:20190723143902p:plain

f:id:kitahara-fv:20190723144027p:plain

f:id:kitahara-fv:20190723144101p:plain

f:id:kitahara-fv:20190723144237p:plain

f:id:kitahara-fv:20190723144304p:plain

f:id:kitahara-fv:20190723144410p:plain

f:id:kitahara-fv:20190723144613p:plain

f:id:kitahara-fv:20190723144806p:plain

f:id:kitahara-fv:20190723144856p:plain

最後に

EventBridgeの連携は以上となります。

今回のケースでは正直、既存のオートリカバリやLambda単体でのクローニングで十分まかなえるかと思いますが、他のSaaSをトリガーとしたHUBとしての使い方を実施することでこれまでには無いメリットがあると思います

また、公式ドキュメントにある通り、以下のようなユースケースもあるので、是非参考にしてください f:id:kitahara-fv:20190723145821p:plain

ただ、ユースケースに合わせて、自分でルールを考えて、トリガーも準備しないといけないのが、あまり使い勝手が良くないと感じます

ルールがテンプレートで準備してあれば凄く便利ですが、現在はAWSサービスも含め関連するSaaSに関しては、イベントを全て受け取って分岐処理などを全て自分で考えないと導入出来ないのは中々ハードルが高いですね

サービス拡張に期待して待ちつつ、対応SaaSなどが増えてくれば、流行りそうなので、今の内に触っておくと良いかもしれません