AWS Cost Anomaly Detection が AWS Chatbot に対応しました

記事タイトルとURLをコピーする

カスタマーサクセス部 佐竹です。一ヶ月ぶりにブログを書いています。
本日は、AWS Cost Anomaly Detection 待望のアップデートについて記載します。

また、本ブログに引き続き Cost Anomaly Detection に関するブログを三回連続でご紹介する予定です。続くブログポストにもご期待ください。

はじめに

2022年3月14日、以下のアナウンスがありました。

aws.amazon.com

本ブログ記事の表題通りですが、AWS Cost Anomaly Detection が AWS Chatbot に対応しました!本日はこのアップデートの素晴らしさと、実際の Slack への通知内容をご紹介します。

AWS Cost Anomaly Detection とは

blog.serverworks.co.jp

上記のブログでご紹介した通り、AWS Cost Anomaly Detection は2020年12月に一般提供が開始された「コスト管理」に関連する機能です。

本機能を有効化することで、意図しない突発的な AWS 利用料の急増を検知及び通知することが可能です。

今回の機能が待望のアップデートである理由

先のブログでは、SNS を利用したメール通知とその内容である json の中身をご紹介していました。

SNS によるメール通知は Slack へも連携可能ですが、正直可読性が低いため中身を読むのに少しハードルを感じます。特に json のフォーマットを読み慣れていない方にはとっつきにくいでしょう。

そのため、AWS Chatbot への連携及び可読性の向上の機能リクエストを早くから AWS へあげていました。この機能リクエストが受け入れられ、この度、機能リリースとなったことはとても嬉しく思います。

メール通知と Chatbot 通知の比較

実際に Chatbot で Slack に通知された内容を比較して、その可読性の高さをご紹介します。

AWS Chatbot の Slack 通知例

これが AWS Chatbot を利用した AWS Cost Anomaly Detection の通知です。非常にわかりやすいですね!

特に、以下の記述がはっきりと見えているのがありがたいと思いました。

  1. Service: Amazon Elastic Load Balancing
  2. Account: 123456789012
  3. Region: ap-northeast-1
  4. Usage type: APN1-LoadBalancerUsage

比較して、Slack へと連携された SNS を利用したメール通知の内容をみてみましょう。

SNS のメール通知の json の例

パッと見「なるほど、わからん」となってしまうような内容です。整形すると以下になります。

{
    "accountId": "マネジメントアカウントID",
    "anomalyStartDate": "2022-03-14T00:00:00Z",
    "anomalyEndDate": "2022-03-14T00:00:00Z",
    "anomalyId": "e03b11da-3fe6-4e3a-9527-175b8ea6335a",
    "dimensionalValue": "Amazon Elastic Load Balancing",
    "monitorArn": "arn:aws:ce::マネジメントアカウントID:anomalymonitor/6a48afbb-1498-4224-9f3e-b7449fb2ca94",
    "anomalyScore": {
        "maxScore": 0.29,
        "currentScore": 0.29
    },
    "impact": {
        "maxImpact": 8.78,
        "totalImpact": 8.78
    },
    "rootCauses": [
        {
            "service": "Amazon Elastic Load Balancing",
            "region": "ap-northeast-1",
            "linkedAccount": "メンバーアカウントID",
            "usageType": "APN1-LoadBalancerUsage"
        }
    ],
    "anomalyDetailsLink": "https://console.aws.amazon.com/cost-management/home#/anomaly-detection/monitors/6a48afbb-1498-4224-9f3e-b7449fb2ca94/anomalies/e03b11da-3fe6-4e3a-9527-175b8ea6335a",
    "subscriptionId": "642713bd-3424-4f0a-84a7-f0e427fb912c",
    "subscriptionName": "AWS Services - Recommended"
}

整形後は、rootCauses の箇所が先ほどの4つの項目に該当することがわかります。しかし、生のメールでは json が整形されていないため、可読性が非常に悪い状況でした。

また、json には Cost Anomaly Detection を設定しているマネジメントアカウント(親アカウント)の ID も登場するため、直感的にどのアカウントで問題が発生しているのか分かりにくい状況でもありました。

このように比較してみると AWS Chatbot の通知は可読性が高く、優れていることがご理解頂けると存じます。

AWS Chatbot の設定追加方法

既存の SNS のメール通知を AWS Chatbot に変更する手順については、少し GUI が古いものではありますが、下記にご紹介するブログをご参考ください。

blog.serverworks.co.jp

AWS Cost Anomaly Detection 用の SNS Topic の作成に関して

SNS トピックの Access policy において "Service": "costalerts.amazonaws.com" からのアクセスを許可する必要がある点については以下の公式ドキュメントを確認ください。

docs.aws.amazon.com

また、AWS Chatbot が AWS Cost Anomaly Detection と連携するためには、SNS Topic を us-east-1 リージョンで作成する必要がある点にもご留意ください。

Slack に AWS のインテグレーションを招待する

AWS Chatbot が Slack チャンネルに投稿するためには、AWS のインテグレーションがその Slack チャンネルに存在する必要がありますので、AWS インテグレーションの招待も忘れずに行ってください。

まとめ

本日は、AWS Cost Anomaly Detection 待望のアップデートである AWS Chatbot への連携について記載しました。

いままでは通知内容がとっつき難く、いつも私が json をかみ砕いてから通知されたアカウント ID の利用者へ連携していました。

しかし!これでそのまま通知を連携しても全く問題のない通知内容になったと感じます。非常に利便性が向上しました。

本ブログは以上になります。

2022年3月23日 追記

AWS Cost Anomaly Detection ブログ三連続の第二弾ブログは以下となります。こちらも合わせてご覧ください。

blog.serverworks.co.jp

では、またお会いしましょう。

佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ

マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023 Japan AWS Top Engineers/2020-2023 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。