目次
AWS Loft Osaka、なかなか快適です。那須です。
AWS外からのイベントをトリガーになにか処理をしたい時ってありますよね?
ちょっと前だとAPI Gateway等を通じてLambdaに流したりしていたのですが、ふとEventBridgeの存在を思い出しました。
https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html
Datadogを使ってモニタリングして、その結果をwebhookで連携していたのをEventBridgeに変えたら仕組みが少しだけシンプルになるなーと思ったのでやってみました。
今回やってみること
datadogで異常検知したら内容をメール通知してみます。
どんな内容で飛んでくるのかも知りたいのでJSONそのままを投げましょう。
今回はメール通知ですが、EC2インスタンスにAPIコールしたり、SSMでアクション実行したり、Kinesisストリームに投げたり、別アカウントのイベントバスに投げたり、、まあいろいろなターゲットが指定できますよ。
設定の流れ
ざっくり流れを書くとこんな感じです。
1. Datadog用のイベントバスを作成
2. EventBridgeでルール作成
3. Datadogのモニタリング設定で異常検知時にEventBridgeに投げるように指定
1. Datadog用のイベントバスを作成
まずはEventBridgeコンソールに行きましょう。
左のメニューからパートナーイベントソースをクリックします。
Datadogのところの設定を押すと…
設定の流れの概要が出てきます。
これに従ってイベントバス設定します。
AWSアカウント番号だけはメモしてきましょう。
DatadogのIntegrations画面で、Amazon EventBridgeをクリックします。
説明と一緒に設定画面が表示されます。
説明書きにもありますが、Datadogが使うIAMロールのポリシーにevents:CreateEventBusアクションが許可されている必要があるので、事前に調整しておきましょう。
では画面下のAdd Event Busをクリックします。
作成するイベントバスの名前とリージョンを指定して、Saveを押します。
ちなみに、2019年10月21日時点では東京リージョンは指定できませんでした。
早く東京リージョンにも来てほしいですね!
DatadogのIAMロールのポリシーに問題がなければ、このように指定したリージョンに指定した名前でイベントバスが作成されていることがEventBridgeコンソールで確認できますよ。
2. EventBridgeでルール作成
次にEventBridgeコンソールでルールを作成します。
まずはルールの名前を決めましょう。
パターンを定義します。
パターンは、何かしらのトリガーを基にして処理するのか、スケジュールで処理するのかのどちらかを指定します。
今回はイベントパターンです。
Datadog用のイベントバスを利用するので、サービス名でDatadogを指定しましょう。
イベントバスの選択のところで、さきほど作成したイベントバスを指定します。
ターゲットを指定します。
ここではメール通知するだけにしたのでSNSを指定していますが、他にも選択できるターゲットはたくさんありますよ。
最後に作成ボタンを押しましょう。
3. EventBridgeに投げる指定
DatadogのMonitor設定画面で、このように@awseventbridge-~と書くことで先程作成したEventBridgeのルールの通りに動きます。
実際にテストアラートを投げると、JSONが含まれたメールが飛んできました。
最後に
今まではAWS外からなにか処理を実行させようとするとwebhookが便利でしたが、EventBridgeを使うことで簡単に連携することができるようになっています。
今回はDatadogを例にしてやってみましたが、他にも連携できるサービスがいろいろあるので是非EventBridgeコンソールで確認してみてください。
- カテゴリー