
AWS Budgets のアラートを AWS Chatbot へ通知してみた!
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
園部です。
AWS のコストアラートを AWS Budgets と AWS Chatbot を使って Slack へ通知する方法へ変更しました。以前は Lambda で実行した結果を Slack に通知していたのですが、Python 2.x 系だったので切り替えるタイミングで、フルマネージドに変えるのが目的となります!
こういうイメージがゴールです。

利用するサービス
AWS サービスは バージニア北部(us-east-1)リージョンを利用します。
- AWS Budgets
- AWS Chatbot
- AWS SNS
- AWS CloudWatch
- IAM Role
- Slack
やってみた
SNS トピック作成
SNS >>> トピック >>> トピックの作成 を選択

名前に任意のものを入力 >>> トピックの作成 を選択

アクセスポリシーへ追記を行います。 表示画面から ARN をどこかにメモしておきます。
編集 を選択

アクセスポリシーを展開

JSON 部分へ権限を追加します。

以下参考情報 [1] に記載されている JSON をコピーして "your topic ARN" を先ほどメモした SNS の ARN へ置き換えて、追加します。
変更の保存 を選択
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "E.g., AWSBudgetsSNSPublishingPermissions",
"Effect": "Allow",
"Principal": {
"Service": "budgets.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:us-east-1:*AWS Account ID*:budgets-chatbot-integration"
},
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:GetTopicAttributes",
"SNS:SetTopicAttributes",
"SNS:AddPermission",
"SNS:RemovePermission",
"SNS:DeleteTopic",
"SNS:Subscribe",
"SNS:ListSubscriptionsByTopic",
"SNS:Publish",
"SNS:Receive"
],
"Resource": "arn:aws:sns:us-east-1:*AWS Account ID*:budgets-chatbot-integration",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "*AWS Account ID*"
}
}
}
]
}
AWS Chatbot 作成
AWS Chatbot >>> 設定済みクライアント >>> 新しいクライアントの作成 を設定
Slack >>> 設定 を選択

今回、通知先となる Slack へログインします。

許可する を選択

新しいチャネルを設定 を選択
プライベートチャンネルへ通知したい場合は以下に注意が必要です。

設定を進めます。

既存で IAM Role を作成していない場合は、この場で作成します。

先ほど作成した SNS を指定 >>> 設定 を選択

SNS 画面に戻ると、サブスクリプションが作成されています。

AWS Budgets 作成
AWS Budgets >>> 予算の作成 を選択

コスト予算 >>> 予算の設定 を選択

予算を設定していきます。
アラートの設定 を選択

今回は、通知されることを確認したいので、しきい値を最小(0.1)に指定しています。 先に作成した SNS の ARN を入力すると権限チェックが行われて、問題なければ 「レ」 が表示されます。
予算の確認 >>> 作成 を選択

しばらくすると 指定した Slack チャンネルに通知が届きます。

参考情報
[1] AWS Billing and Cost Management
- ユーザーガイド - 予算の通知に関する Amazon SNS トピックの作成
[2] AWS Billing and Cost Management
- ユーザーガイド - Amazon Chime および Slack での予算アラートの受信






