【AWS】AWS ChatbotとAWS Budgetsを連携して利用料金状況をSlack通知してみた。

先日、AWSから発表されたAWS Chatbotを使ってみました。

AWS ChatBot概要

今までAWSからSlackに連携するためにはSNSとLambdaを組み合わせる必要がありましたが、Chatbotを使えば簡単にSlack通知が可能です。現在のところ、Amazon CloudWatch、AWS Health、Budgets、Security Hub、GuardDuty、CloudFormationから連携することができます。Slack以外ではAWS Chimeにメッセージ通知を行えます。

利用方法

事前準備

実際に利用する場合にはとAWS Chatbotの前にSNSを挟むことになり、事前にSNSでトピックを作成しておく必要があります。 予算の通知に関連付ける Amazon SNS トピックの作成

今回はAWS Budgetsと連携して設定した予算を超えた(そう)場合に通知を送るようにしたいのでSNSにAWS Budgetsの権限を付与しておきます。

Step1:連携先の選択

chatbotのトップページでメッセージの送信先を選択します。SlackかAWS Chimeが選べます。

Step2:認証

AWSと通知先、今回はSlackとの認証を許可します。マル秘の部分はSlackのアカウント名や社名が表示されています。

Step3:配信チャンネル選択

メッセージを配信するチャンネルを選択します。public、privateどちらでも選択可能です。

Step4:Rolename設定

任意のRolenameを入力します。

Step5:SNSトピックス指定

事前に作成しておいたSNSトピックスを選択し、「configure」を選択します。

Step6:AWS Budgetsで予算を設定する

AWS BudgetsのBudgetsで予算を設定します。そこでアラート設定をするのですが、配信先にSNSトピックスを選択します。

感想

以上、6ステップだけでSlack通知ができるので非常に簡単で拍子抜けなくらいです。 ただ、今回、AWSの利用料金を通知したかったのですが、AWS Budgetsで料金をグルーピングしてレポートできるBudgetsReportsにはどうやら対応していないようで複数のAWSアカウントをOrganizationで管理している場合にプロダクト単位でまとめて通知するというような柔軟な使い方はまだできなさそうでした。そこはまだメールで送ることになりそうです。

BudgetsReportsではレポート送信のタイミングをデイリーやマンスリーで選べたりもするのですが、Budgetsだとあくまで予算を設定して、それを超えたときにアラートとして飛ばすというような使い方なので、この辺は今後に期待です。