AWS Chatbot
AWS Chatbotを使うことで、これまでSlackへの通知をLambdaで実装する必要があったのですが、簡単にAWSコンソールを触ることで連携が可能となります。
今回はRoute 53のヘルスチェックエラーをChatbotを使ってSlackに通知を送るよう実装しました。
参考:AWS Chatbot
AWS Chatbot は、Slack チャンネルや Amazon Chime チャットルームで AWS のリソースを簡単にモニタリングおよび操作できるようにしてくれるインタラクティブエージェントです。
手順
- SNS(Amazon Simple Notification Service)でトピックの作成
- AWS Chatbotでクライアントの設定
- AWS ChatbotでSlackチャンネルを設定
- Route53でヘルスチェックの作成
SNS(Amazon Simple Notification Service)でトピックの作成
トピックは名前を決めるくらいなのですが、リージョンをバージニア北部(us-east-1)で作成します。
参考:ヘルスチェックを作成または更新するときに指定する値
他のリージョンはヘルスチェックアラートに設定できないので注意
AWS Chatbotでクライアントの設定
クライアントを設定をクリックするとSlackの画面に飛ぶのでログイン後(ログイン済みの場合は不要)連携を許可します。
AWS ChatbotでSlackチャンネルを設定
Route53でヘルスチェックの作成
ヘルスチェックは通常の作成します。
今回はhttpstat.usを利用しました。このサイトは
httpstat.us/200だとhttpステータス200を
httpstat.us/503だとhttpステータス503を返すように任意のステータスをスラッシュ以後に書くと帰ってくるので非常に便利で、今回はテスト用に利用させていただきました。
アラームを作成して、通知先を先程作成したSNSトピックを選択します。上述したとおり、バージニア北部にSNSトピックがないとここに現れないので注意が必要です。
設定完了
以上で設定完了です。
ヘルスチェックアラートは以下のようなSlackが飛んできます。
メッセージ内容はうまい具合にやってくれて、画像も添付してくれます。
困ったこと
Chatbotはメッセージを上述のようにデフォルトできれいに送信してくれる一方カスタムができません。
なので緊急度の高いメッセージでも@channelや@someoneなどつけることができません。通知設定はSlack側でコントロールするか、カスタマイズが必要な場合はやはり自前でLambdaを利用する必要がありそうです。