📝

CloudWatchの請求アラームをAWS ChatbotでSlackに通知してみた

2021/07/14に公開

以前、
CloudWatchで請求アラームを作成する
マルチアカウントで各アカウントの請求アラームを作成してみた
という記事を書きましたが、いずれもSNS経由でメールに通知する方法だったので、今回はChatbotも使用して、Slackに通知する方法を紹介します。

イメージ

CloudWatchアラームで請求額を監視し、しきい値を超えたらSNS(Simple Notification Service)からメールとChatbotに連携します。ChatbotからはSlackに通知を送信します。

動画

https://youtu.be/BzKI5n6vXgQ

CloudWatchアラームの作成方法

以前書いた、
CloudWatchで請求アラームを作成する
をご覧ください。

ChatbotとSlackの連携設定

以下の公式手順でも紹介されています。
Slack と AWS Chatbot で ChatOps をやってみよう

設定方法

Chatbotコンソールに移動します。

チャットクライアントの設定で「Slack」を選択します。

ワークスペースへのアクセスを許可します。

「新しいチャネルを設定」をクリックします。

各種設定を行います。

  • 設定名
    • 任意の名前を入力します
  • ログ記録
    • チェックを入れると通知ログを残すことができます
    • CloudWatch Logsの利用料金がかかります
  • Slackチャネル
    • 通知先のチャンネルを選択します

アクセス許可を設定します。

  • IAMロール
    • デフォルトでは自動作成です
    • 既存のロールを選択することもできます
  • ロール名
    • 任意のロール名を入力します
  • ポリシーテンプレート
    • 自動作成のロールの場合テンプレートを選択できます
    • 基本的にデフォルトのままでよいです

Chatbotに通知を送るSNSトピックを選択します。ここで請求アラーム通知用のトピックを選択しましょう。
ちなみに、トピックはリージョンごとに複数選択できます。
最後に「設定」をクリックします。

以上で連携の設定は完了です。
通知のテストを行うには作成したチャネルを選択し、「テストメッセージを送信」をクリックします。

Slackに以下のようなテストメッセージが届けば成功です。

請求アラームをSlackに飛ばしてみる

CloudWatchアラームとChatbotの設定ができのたで、請求のしきい値を0USDにして、Slackに通知が飛ばしてみます。

しばらくすると、Slackに以下の通知が飛んできました。

ちなみにSNSトピックでメールにも飛ばしているのでメールにも通知が来ています。

これで実際にSlackとメールの両方に請求アラームが来ることが確認できました!
0USDに変更したしきい値は元に戻しておきましょう。

まとめ

今回はCloudWatchの請求アラームをメールだけでなく、Chatbotも使用してSlackに通知する方法を紹介しました。
Chatbotはノーコーディング、数クリックで簡単にSlackと連携できる嬉しいサービスです。ただし、通知内容は英語なので日本語で通知したい場合はLambdaなどで通知をカスタマイズする必要があります。
Chatbotでも日本語通知に対応してもらえる日が来るのかな??

今回の内容が参考になれば幸いです。

Discussion