はじめに
こんにちは、技術一課の山中です。 惜春真っ只中です。
それはそうと、2020/04/22 に遂に AWS Chatbot が一般公開となりました!!!!
https://aws.amazon.com/about-aws/whats-new/2020/04/aws-chatbot-now-generally-available/
これよさそう!と思っては「まだベータ版か…」と何度夜な夜な枕を濡らしたことか… というわけで、試しに AWS Chatbot を使って Slack 連携をしてみました。
AWS Chatbot とは
AWS Chatbot を利用するとサポートしている AWS サービスの通知を Amazon SNS 経由で Slack や Amazon Chime に簡単に通知することができます。 現在対応しているサービスは以下のとおりです。 (2020/04/27)
- AWS Billing and Cost Management
- AWS CloudFormation
- Notifications for AWS Developer Tools
- Amazon CloudWatch Alarms
- Amazon CloudWatch Events
- AWS Config
- Amazon GuardDuty
- AWS Health
- AWS Security Hub
- AWS Systems Manager
https://docs.aws.amazon.com/chatbot/latest/adminguide/related-services.html
また、 Slack や Amazon Chime から AWS Chatbot を経由してコマンドを実行することも可能です。
料金
AWS Chatbot は追加料金なしですぐにご利用いただけます。 発生する料金は AWS Chatbot と一緒に利用する AWS リソース (SNS トピックや CloudWatch アラーム) に対してのみです。
作ってみる
CloudWatch アラームを Slack に送ってみましょう。
Amazon SNS トピックの作成
あらかじめ、通知に使用する SNS トピックを 1 つ作っておきましょう。
今回は東京リージョンに chatbot
という名前で作成しました。
Slack ワークスペースと AWS Chatbot の連携
AWS マネジメントコンソールから AWS Chatbot
を選択します。管理とガバナンスの中にありますね。
チャットクライアントの設定画面がでてくるので、今回は Slack
を選びましょう。
Betaの文字が確かになくなってますね。
Slack への権限リクエストを求める画面が出るので、 AWS Chatbot を利用したいワークスペースを選び許可します。
これで連携は完了しました。
AWS Chatbot の設定
引き続き設定をしていきます。
先ほどの画面から 新しいチャネルを設定
を選択します。
設定に名前をつけます。今回は test-configuration
としました。
オプションで Amazon CloudWatch Logs にログも流せるみたいですねー。
続いて、どの Slack チャンネルに流すか設定します。
今回は times-yamanaka
を選んでいます。
続いて、アクセス許可の設定です。
今回は AWS Chatbot から CloudWatch メトリクスにアクセスできればよいので、デフォルトのまま新しい IAM ロールを作成します。
AWS Chatbot から AWS Lambda を実行したい場合などは、ポリシーテンプレートから Lambda 呼び出しコマンドのアクセス許可
を選ぶ等、必要なポリシーを与えましょう。
必要なポリシーの詳細については以下に記載されています。
Running AWS CLI Commands from Slack Channels
最後に、あらかじめ作成しておいた SNS トピックを選択してください。
これで AWS Chatbot の設定は完了です。
チャットボットを Slack チャンネルに呼ぶ
AWS Chatbot の設定で選択したチャンネルに @aws を招待しておいてください。
CloudWatch アラームを設定
SNS トピックに通知するための CloudWatch アラームを設定しましょう。 今回は Amazon EC2 の画面から特定のインスタンスを選び、以下の条件で SNS トピックに通知されるように設定しました。
確認してみる
アラームを設定したインスタンスに接続し、 CPU 負荷をあげてみましょう!!
$ yes > /dev/null
しばらく経つと Slack に以下のメッセージが!!!
AWS Chatbot のメトリクスを見ても、イベントが一回起きたことを確認できました。
おわりに
AWS Chatbot を利用すると Slack や Amazon Chime との連携がすぐにできますね! 今度は Slack から AWS Lambda 実行にチャレンジしてみようと思います。
また、本ブログの内容は2020/4/30(木) の YouTube Live でも話しますので、是非ご覧ください!! https://youtu.be/I0wqhDRyhjI