AWSのコストをSlackに連携する方法【AWS】

・SLackにコストを連携したい。
・AWS Budgetsを使ってみたい。
・AWS Chatbotを使ってみたい。

先月AWSで遊んでいたら、月額のコストが合計60,000円ほどかかってしましました…。

運用していく上で、コスト管理は非常に重要なので、AWS Budgetsを使用して、予算が一定ラインを超えたらslackに通知がいくように設定したいと思います。

今回作成する。全体の構成・サービスとしては、下記の通りです。

AWS Budgets連携全体図

SNSトピックの作成

AWSマネジメントコンソールにログインし、上部検索ペインから「SNS」と入力し、SNSのダッシュボードに移動。

下記のような画面になると思うので「トピックの作成」をクリック・

SNS画面

下記のように設定してください。

タイプはスタンダードで、名前、表示名を任意で設定してください。

トピックの作成画面

「正常に作成されました。」と表示されたら作成完了です。

ARNより下の数字(下記の図では赤く塗りつぶされているところ)をメモしてください

ARNをメモしたら編集をクリック

AWS画面

アクセスポリシー – オプションより「statement」に以下の文を追記してください。

追記が完了したら、下にスクロールして「変更の保存」をクリック

{
        "Sid": "AWSBudgets-notification-1",
        "Effect": "Allow",
        "Principal": {
            "Service": "budgets.amazonaws.com"
        },
        "Action": "SNS:Publish",
        "Resource": "<YOUR_ARN_ID>" 
},
SNS権限画面

AWS Chatbotの作成

AWS クライアント設定

次にAWS Chatbotを作成します。

検索ペインから「Chatbot」と入力し、Chatbotのダッシュボードに移動。

チャットクライアントを「Slack」に設定し「クライアントを設定」をクリック

AWS Chatbot画面

すると下記の画面のようになると思いますので、ワークスペースのSlack URLを入力して「続行する」をクリック

slack画面

※Slack URLは下記のように、ワークスペース名をクリックすれば表示されます。

Slack画面
slack表示画面

「許可する」をクリック

slack許可画面

するとAWS Chatbotに遷移します。下記の画面になっていればクライアント設定は完了です。

AWS Chatbot クライアント設定完了画面

AWS Chatbot チャネル設定

次にAWS Chatbotのチャネルを設定します。

AWS Chatbotより「新しいチャネルを設定」をクリック

チャネル設定画面

Slackチャネルを設定で下記のように情報を入力し「設定」をクリック

※チャネルIDはチャンネル→コピー→リンクをコピーの末尾のアルファベットです。

Slackチャネルを設定画面

※チャネルID確認方法

SlackチャネルID確認方法画面

下記のように表示されましたら完了です。

AWS Chatbot表示画面

AWS Budgetsの設定

次にAWS Budgetsの設定です。

上部検索ペインに「AWS Budgets」と入力しBudgetsの予算ページに移動します。

下記のような画面になると思いますので「予算の作成」をクリック

AWS Budgets予算の作成画面

下記のように情報を入力し「次へ」をクリック

AWS Budgets設定1

ステップ2では下記のように情報を入力します。

予算名・予算額は任意で設定してください。

AWSBudgetsステップ2

ステップ3アラートの設定では、下記のように設定します。

AWSBudgetsステップ3

最終確認

AWSBudgetsステップ4

最終確認画面で問題がなければ「予算を作成」をクリック

確認

先ほど作成したslackを開いてみます

作成した時点で、設定した予算を超過しているので、slackに通知が来ていることを確認できました。

AWSBudgets通知画面

参考

AWS BudgetsのアラートをAWS ChatbotでSlackに連携する

AWS Budgets のコストアラートを Slack に通知してみる