こんにちは、インフラエンジニアの綿引です。
従量課金が多い AWS ではコストを常にチェックしておきたいですよね。
そこで今回は AWS Budgets を使って、一定の料金を越えたら Slack に通知をさせる、ということをやってみたいと思います。
対象の方は以下のような方でしょうか。
- AWS のコストは監視しておきたいが毎回見るのは面倒
- コストアラートを Slack に通知させたい
AWS Budgets とは
AWS Budgets はコストまたは使用量が予算額や予算量を超えたときにアラートを発信できるサービスです。
また他にも以下のような機能もあります。
- 現時点で予想請求額(使用量)から月末に発生する課金額を予測できる
- RI(リザーブドインスタンス)の使用状況などをモニタリングする
詳細は以下のリンク先をご参照ください。
実装
では早速実装していきます。使用するサービスは以下です。
- Amazon SNS
- Slack
- AWS Chatbot
- AWS Budgets
Amazon SNS
まずは SNS トピックを作成してします。
設定はデフォルトで作成し、トピック名は 「CostAlert_Test」 にしました。
作成が完了したら、 ARN をメモしておきます。
次に 「編集」 を選択し、アクセスポリシーを変更していきます。
アクセスポリシーの JSON エディタより以下を追加します。
追加する場所は “Statement” の下の行です。
{ "Sid": "AWSBudgets-notification-1", "Effect": "Allow", "Principal": { "Service": "budgets.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "Insert-ARN-here" ← ここに先ほどメモした SNS の ARN を記載 },
“Insert-ARN-here” は先ほどメモした ARN に変更します。
これで SNS の設定は完了です。
Slack
次は Slack です。
コストアラート通知用に channel を作っておきましょう。
今回は 「alert-cost_alert」 という channel 名にしました。
AWS Chatbot
次は AWS Chatbot の設定を行なっていきます。
余談ですが、Chatbot はついに beta 版がなくなって一般提供が開始されましたね。
前から使っていたので嬉しい限りです。
Chatbot ではまず 「クライアントの設定」 から、通知を行いたい Slack ワークスペースと Chatbot を連携させます。
次に 「新しいチャネルを設定」 を選択し、先ほど作成した SNS トピックなどを登録していきます。
設定名や付与する IAM ロールの設定などは任意です。
「Slack チャネル」には先ほど作成した channel を設定します。
「SNS トピック」も同様に、先ほど作成した SNS トピックを設定します。
設定が完了したら保存します。
これで Chatbot の設定も完了しました。
AWS Budgets
最後に Budgets の設定です。
AWS Budgets の画面を開き、 「予算を作成する」 を選択します。
「予算タイプの選択」 では 4つの選択肢から選ぶことができますが、今回は一定の料金を越えたら Slack に通知をさせる、ということをやりたいので 「コスト予算」 を選択します。
次の 「予算の設定」 では、予算に関する詳細の設定を入れていきます。
名前、間隔(月、四半期など)、予算額などを任意で入力します。
最後に 「アラートの設定」 です。
「アラートのしきい値」 には、先ほど入力した予算額の何%でアラートを通知させたいかを入力し、 「Amazon Simple Notification Service (SNS) トピックを通じて通知」にチェックをつけて、先ほど作成した SNS トピックの ARN を入力します。
これで Slack への通知設定ができたので、他の設定が終わったら 「完了」 を押下します。
これで AWS Budgets の設定も完了しました。
この段階で設定した閾値を越えていたら、Slack に以下のような通知が届きます。
最後に
今回はAWS Budgets のコストアラートを Slack に通知してみましたが、非常に簡単にできました。
モニタリングしておかなければならないコストを、Chat に流すことで楽に見れるようになったのは嬉しいです。
尚、今回は Slack にのみ通知する設定を入れましたが、SNS 側でサブスクリプションの設定を追加すれば、メールなどにも同時に通知が可能ですのでご興味あればお試しください。
エンジニア募集中
Wedding Parkでは一緒に技術のウエディングパークを創っていくエンジニアを募集しています。
興味のある方はぜひ一度気軽にオフィスに遊びにいらして頂ければと思います。
株式会社ウエディングパークwantedly