AWS上で発報されるアラートをSlackと連携することで即座に検知できるようにしたり、見落とさないようにしたいと思ったことありますでしょうか?

それを叶えるためのサービスAmazon Q Developer in chat applications(旧AWS Chatbot)の紹介と実際にアラートがSlackに通知を飛ばすようにするための実装をレクチャーしていきます。

Amazon Q Developer in chat applications(旧AWS Chatbot)とは

Amazon Q Developer in chat applications(旧AWS Chatbot)はAWSからの各種通知をSlackやAmazon Chimeといったチャットツールに集約してチャット上からAWSのコマンドを実行してリソースの情報を取得できたり、簡単な操作を行うことができるサービスです。

従来の通知であったEメールの通知と比べて即座に検知することができる点や埋もれてしまって気づかないといったことを防止する可能性を高めることができます。

活用することによるメリット

メリット1 Slackチャンネルを活用することで、アラートの通知を知らせたい人にアラート発生時にリアルタイムで共有できる

従来のメール通知では「誰が対応しているか」が不透明になりがちだったり、対応する際にSlackで対応することを連携する必要がありましたが、Slackであれば「👀(確認中)」などのスタンプリアクションを押すだけで、対応状況をチーム全体に可視化できたり、連携の手間が省けます。これにより、対応の漏れや、複数人が同時に着手してしまうといった問題を防ぐことができます。

メリット2  設定が簡単

AWS ChatbotはSNSと連携して動作します。そのため、一度設定すれば様々なサービスからSNSトピックを通して Chatbotに通知を送ることができます。

案件ごとやサービスごとにチャンネルを細かく分けて設定することもできるので管理もしやすいです。

実際に構築してみる

SNSトピックの作成

 

設定項目

タイプ:スタンダード

名前:任意の名前

アクセスポリシー:デフォルト(他のサービスからSNSトピックを通知先として選択すると自動的に権限を追記してくれる)

Chatbotの作成

上記の画像がコンソールのホーム画面です。

ここでチャットクライアントを選定のところでSlackを選択するとSlackの承認が求められるので、それを許可すると下の画像のチャネルの作成画面に遷移することができます。

設定項目

名前:任意の名前

Slack ID:通知を送りたいチャンネルのチャンネルID

ロール設定:チャネルロール

チャネルロール:テンプレートを使用してIAMロールを作成する

ロール名:任意のロール名

ポリシーテンプレートについて

今回はSlackのチャンネルにSNSトピックから通知を飛ばしたいだけなので設定するロールはデフォルトの設定で行います。

やりたいことに合わせて選択する必要があります。

Lambdaを呼び出したい時やQの提案に基づいたリソースの作成・変更・削除をしたい等がある場合は適宜ポリシーを付与する必要があります。

SNSトピック関連付け

上記で作成したSNSトピックを関連付けます。

Budgetsからの通知をSNSトピックに連携

Budgetsで作成した予算の通知をSlackチャンネルに通知するように設定します。Budgetsの作成手順まで記載すると情報量が多くなることや、通知内容はBudgets以外にもCloudWatchやLambdaなど様々なサービスを関連付けて様々な用途でSlack通知を実現できるといった理由でBudgetsの活用手順は割愛します。

 

 

アラートの項目からアラートの編集を選択

 

作成したSNSトピックのARNを通知先に選択する。

これで構築が完了です

まとめ

テストメッセージをSNSトピックから Chatbotを通してSlackチャンネルに通知することができました。

この構築を行うことでアラートの見落としがなくなったり、アラートに対して迅速に対応することができるようになるかと思います。

この記事が参考になれば嬉しいです。