RDSのイベント通知機能としてEvent Subscriptionがあり、イベント発生時に任意のメールアドレスに通知ができます。
メールのアラート受信は埋もれやすいので、DatadogとSlackへ通知します。
基本的にはメール送信による投稿が可能なサービスへの連携が可能と思います。
目次
RDSイベント通知
設定すると以下の様なFailover等のイベント発生時に設定したメールアドレス宛に通知してくれます。
RDSイベント通知設定
AWSマネジメントコンソールのRDSダッシュボードからEventSubscription -> CreateEventSubscription
- Name
- イベント通知名称
- ちなみにアンダースコア(_)は使用不可
- Send notifications to
- 送信先
- 実体はAWS SNSのARN
“create topic”リンククリックで、メールアドレスを入力できるようになるので、通知したい宛先を入力します。
Datadog、Slackへの通知に使用するメールアドレス取得方法は後述します。
Datadogへ通知
DatadogにはAWSで発生したイベントを拾ってくれる機能がありますが、 RDSのイベントは含まれていません。
Datadogにメールによる投稿を行うことで、Eventsへ出力させます。
Datadogメールアドレス払い出し
Integrations -> APIs
Create API Email
メールアドレス(event-XXXXX@dtdg.co)が払い出されます。
Datadog上でConfirm
RDSイベント通知設定にメールアドレスを登録するとConfirmationのメールが届きます。
Datadogの場合はEvents画面上で参照できます。
Confirm subscriptionのリンクをクリックし、認証を完了します。
イベント発生時には以下の様なメッセージが通知されます
Slackへ通知
Slackメールアドレス払い出し
Integrations -> Email
Create an Email Integration
メールアドレス(xxxxx@XXXXX.slack.com)が払い出されます。
投稿したいチャンネル、アイコン等を設定します。
Slack上でConfirm
RDSイベント通知設定にメールアドレスを登録するとConfirmationのメールが届きます。
Slackの場合は以下のようなメッセージが届きます。
Confirm subscriptionのリンクをクリックし、認証を完了すると、以下の様なメッセージが通知されます。
まとめ
クリティカルなイベントは標準でアカウント宛に通知してくれても良いのではと思いました。
まだまだ根強いですが、Eメールでアラート受信の運用は止めたいです。
以下、余談です。 DatadogにEventをトリガーにアラート通知する機能があります。が、
フィルタが正常に起動しなかったり、1分単位で発生したイベントを掴めなかったりと、現時点では少々挙動が怪しいです。
サポートさんへissueを挙げてますので修正されることを期待します。