「なぜ料金が高くなった?」AWSコスト分析をAmazon Bedrockに丸投げしてSlack通知する

AWSの利用料を生成AIに分析させてコスト管理してみた

こんにちは!

コンソールにログインして、AWS Cost Explorer(以下、Cost Explorer)の画面に行って・・・
AWSのコスト管理は正直めんどくさいですよね!
利用料をSlackなどに投稿することはできますが、毎日数字やグラフとにらめっこするのは大変です。

今回は、AWSの生成AIサービスである「Amazon Bedrock(以下、Bedrock)」を利用して、
「生成AIにコストが増加している原因や傾向を分析させて、その要約をSlackに投稿する」仕組みを作りました。

 

できること

この記事で紹介する仕組みを実装すると、以下のことができるようになります。

  • AWSのコストが増加しているサービスを生成AIに分析させ、特定する
  • コストが増加したサービスごとにどれだけ増えているか差額を出力する
  • 1日のコストの閾値を設定しておき、閾値を超えた日を特定する
  • 結果をSlackの特定のチャンネルに投稿する

コストの分析期間は7日前~2日前です。
1日前&当日はすべての利用料がCost Explorerに反映されていません。

Slack投稿は毎日行われます。

 

構成

構成は以下の通りです。

  • 以下の処理をAmazon EventBridge Schedulerで毎日定時実行
    • Cost Explorer APIで7日前~2日前のAWS利用料を取得
    • Bedrock APIでコスト分析

シンプルですね!
Bedrockのモデルは「Amazon Nova Pro」を利用します。

 

コード

以下にLambdaのコードを記載します。


自分で設定する必要のある変数は以下の通りです。
  • THRESHOLD_BOLD_TOTAL_DIFF:AWSコスト利用料の閾値。
    • この値を超えている日があるかどうかAIが分析してくれます。
        自身のAWS利用想定や規模に応じて設定してください。
  • SLACK_BOT_TOKEN:投稿に利用するSlack Botのトークン。
  • SLACK_WEBHOOK_URL:投稿に利用するSlack BotのWebhook URL。
    • SLACK_BOT_TOKENと併せて、確認方法はこちらを参照してください。
  • SLACK_CHANNEL_ID:投稿するSlack ChannelのID。
    • 確認方法はこちらを参照してください。

また、上記の「SLACK_」で始まる3つの変数について、
今回は動作をシンプルにイメージできるように直接コード上に記載していますが、実際はハードコーディングをしないようにしてください。
Lambdaの環境変数に設定したり、Parameter Storeに保存したりして保守性を上げましょう。

 

設定

Lambda関数の設定は以下の通りです。

  • ランタイム:Python 3.14
  • アーキテクチャ:x86_64
  • メモリ:128MB
  • タイムアウト:1分0秒
    • 利用しているサービスの多さによって、Bedrockでの分析に数十秒かかります。
  • EventBridgeのスケジュール式:cron(0 X ? * * *)
    • Xの部分に0~15の数字を記載します。
    • 式は世界標準時を表しているので、+9して日本時間を計算できます。
        (例:cron(0 3 ? * * *)なら日本時間の正午)
  • 実行ロール:lambda_basic_executionの他に、以下のポリシーが必要です。

Cost Explorerの読み取りポリシー

Bedrockの呼び出しポリシー

 

注意点

「できること」でも軽く触れましたが、
この仕組みでは、昨日・今日の直近のコストは分析していません。
Cost Explorerに利用料が完全に反映されておらず、一部しか表示されないからです。
直近の異常利用などを検出したいときは、Anomaly Detectionなど別の仕組みを利用してください。

また、分析を完全に信用しきることはできません。生成AIはハルシネーションを起こす可能性があります。
この仕組みだけで利用料の監視を終わらせずに、違和感があるときは必ずCost Explorerや請求を確認してください。

 

完成!

これで決まった時間に生成AIによるコスト分析の結果がSlackに投稿されるようになりました!

値も正しいものがしっかり取れていますね!

 

おわりに

今回は「生成AIにコストが増加している原因や傾向を分析させて、その要約をSlackに投稿する」仕組みをご紹介しました。
生成AIは様々なところで活用できるので、楽できるところは楽していきましょう!

ありがとうございました!

 

お問い合わせ先

執筆者プロフィール

Kunimatsu Hisayuki
Kunimatsu Hisayukitdi デジタルイノベーション技術部
インフラの技術支援や、クラウドテクノロジーの検証・社内教育/展開を担当しています。
AWSのプロフェッショナルを目指して奮闘中です。
「人に何かを説明すること」が好き!

関連記事