1. 主要ページへ移動
  2. メニューへ移動
  3. ページ下へ移動

QES ブログ

記事公開日

FinOps Agentでコストレポート配信してみた

  • このエントリーをはてなブックマークに追加

この記事のポイント

AWSマネージドの「FinOps Agent(プレビュー版)」を用いて、Slackへの週次コストレポート自動配信を自作構成から置き換えられるかを独自検証した記事です。設定画面のみで定期実行できる利便性を確認しつつ、プレビュー版ならではの挙動や数値の差異についてのリアルな検証結果をまとめています。

  • 自動配信における数値の精度と課題:
    特定の検証週において、手動実行時の今週合計が約$553だったのに対し、自動実行(Automations)では定常サービスが除外され約$99と算出される乖離を確認しました。月末コスト着地予測でも約$300のズレが生じるなど、APIレート制限や取得漏れに対する注意点を記載しています。
  • AWSマネージド機能の利点と制約:
    「Automations」による定期実行や「Context files」を用いた出力ルールの明示的な指示は非常に強力です。一方で、公式ドキュメント(Agent guardrail control 等)の制約通り、EC2インスタンス作成者の特定などFinOpsドメイン外の操作は行えないことが確認できました。
  • 筆者の独自検証による知見と実践的アプローチ:
    Slackワークスペース認可時の403エラー解決法や、1アカウントにつきSlack連携が1つまでという仕様、PPTX出力時の日本語化の課題など、一次情報に基づくノウハウを共有。現時点では、FinOps Agentと厳密な自作構成の併用が現実的だと結論付けています。

はじめに

こんにちは。DXソリューション営業本部の岡田です。
前回のブログで、AWSマネージドの「AWS FinOps Agent」を比較した検証を紹介してきました。

また、Bedrock AgentCoreとClaude Sonnet 4を使い、毎週火曜08:00にSlackへ週次コストレポートを自動配信した自作構成については、下記の記事をご覧ください。

今回はその続きとして、「いつも自作構成でSlackに自動配信している週次コストレポートを、FinOps Agentでそのまま置き換えられるのか?」を実際に試してみました。

目標

自作構成では、以下のような週次コストレポートを毎週決まった時刻にSlackへ自動配信しています。

いつもの週次レポートに含まれる主な項目
・今週のサマリー(前週比・月末着地予測)
・サービス別コストTOP10(前週比)
・アカウント別コスト(全アカウント・前週比)
・コスト増減要因分析
・月次トレンド/月末コスト着地予測
・EC2インスタンス台帳(作成者特定つき)
・クレジット適用状況/削減提案

このレポートと同等のものを、FinOps AgentのコンテキストファイルAutomations(定期実行)の機能を使ってSlackに配信できるか確認しました。

FinOps Agentの画面構成

FinOps AgentのWebアプリは、左ナビの4つのメニューで構成されています。

FinOps Agentの画面構成

メニュー 役割
Tasks エージェントに依頼した1回ごとの実行履歴・状態。どのツールを呼んで何を取得したか(推論ステップ)も確認できる
Automations スケジュールやイベントでタスクを自動実行する仕組み(例: 毎週金曜8時)。発火するたびにTasksに実行が1件作られる
Artifacts 生成されたPDF/Markdown/PPTX等の成果物の置き場。ダウンロードできる
Context files 組織のアカウント対応表やレポート方針をアップロードする設定ファイルの置き場

Automations(いつ実行するか)→ Tasks(1回の実行)→ Artifacts(成果物) という流れで、レポートの内容を Context files が支える形です。

Slack連携でつまずいたところ

最初に、Slack連携でつまずきました。つまずいた順に共有します。

① ワークスペース認可で403エラー

管理(payer)アカウントでSlack連携を設定しようとしたところ、ワークスペース認可(Authorize with Slack)の段階で403エラーが出て先に進めませんでした。

ワークスペース認可で403エラー

解決方法: 既存の連携を削除してから再認可
はっきりした原因はドキュメントに記載がなく断定はできませんが、こちらの環境では、同じSlackワークスペースを配下の検証アカウントで既に連携登録していたことが影響していたようです。検証側の連携をいったん削除してからPayerアカウントで認可し直したところ、403は解消しました。
Slack連携はAWSアカウント単位で登録される一方、ワークスペースへのアプリ認可はワークスペース側で共有されるため、同一ワークスペースを複数のAWSアカウントから同時に連携するのは難しいのかもしれません。

② Slack連携はアカウントにつき1つまで

検証の途中で「このアカウントで設定できるSlack連携の最大数(1)に達しました」というエラーにも遭遇しました。1つのAWSアカウントにつきSlack連携は1つまで・引き上げ不可によるものです。

Slack連携の最大数エラー

コンテキストファイルで自社レポートに寄せる

FinOps Agentには、組織のアカウント対応表やレポート方針をアップロードして自社仕様を理解させる「コンテキストファイル」の仕組みがあります。今回は、いつもの週次レポートの章立て・アカウントのエイリアス名・分析方針(Tax除外、UnblendedCostで統一、日本語など)を記載したマークダウンファイルを用意してアップロードしました。

気づき: 章立てや出力ルールも「明示的に指示」して効く
アップロードしただけでは、レポートの章立てや細かいルールは反映されきりません。「コンテキストファイルの章立て・出力スタイルに従って週次レポートを作って」と明示的に指示することで、エイリアス名・日本語・Tax除外・章の順番が反映されやすくなりました。

さらに、数値を自作構成(Cost Explorer APIの直接取得)に近づけるため、コンテキストファイルに次のような取得方針も書き加えました。

・コスト種別は UnblendedCost で統一(今週・前週・月次で混在させない)
・週は月曜〜日曜で固定。前週も同じ定義で算出
・数値は概算・推測をしない。取得できない項目は「要再取得」と明記
・全章を1回でまとめて取得せず、章ごとに分けて取得する(レート制限対策)

 

週次レポートを生成してSlackに配信してみた

「コンテキストファイルの章立てに沿って、先週の週次コストレポートを作成してSlackに投稿して」と指示しました。FinOps Agentはレポートを成果物(Artifacts)として生成し、Slackチャンネルへ配信してくれました。



成果物の形式はPDF・Markdown(.md)・PowerPoint(PPTX)から選べます。今回は、詳細レポート用のPDFと、Slackで元データを読みやすいMarkdownの2形式で配信しました。
※当環境では、PowerPoint(PPTX)は日本語化がうまく反映されず英語のままになったため、運用ではPDFとMarkdownを採用しています(プレビュー版での観測)。

配信されたPDFレポート

配信されたPDFを開くと、アカウント別コスト・増減要因分析・月次トレンド・月末コスト着地予測・異常検知・削減提案など、いつものレポートに近い章立てで出力されていました。月末着地予測は信頼区間つきで算出されていました。(ただし、後述のとおり自動実行時にはCost Explorerの値と乖離する場面がありました)

月末コスト着地予測(6月)
| 項目 | 値 |
| 当月実績(途中) | $XXX.XX |
| 日次平均 | $X.XX/日 |
| 月末着地予測(中央値) | $XXX.XX |
| 信頼区間(参考) | $XXX〜$XXX |

※金額はマスキングしています

いつもSlackに届くレポートに近い内容が、FinOps Agentからも届くようになりました。

Automationsで定期配信を設定する

オンデマンドでの配信ができたので、次はいよいよ「定期自動配信」です。FinOps Agentには先述した通り、Automationsという機能があり、スケジュールに沿ってタスクを自動実行できます。自作構成ではEventBridge+Lambda+AgentCoreを組み合わせて実現していた「毎週決まった時刻の自動配信」を、画面上の設定だけで組めるのは大きな魅力です。

Webアプリの左ナビ「Automations」から、週次レポートを生成してSlackに投稿するスケジュール(例: 毎週月曜の朝)を作成します。
Instructionsに「コンテキストファイルに従って週次レポートを作成し、#cost-reportにPDFとMarkdownで配信して」と入力します。
※Nameは英語でないとエラーになります。

Automationsの設定画面1

Automationsの設定画面2

自作構成との違い
自作構成では、スケジューラ・実行基盤・Slack投稿処理をすべて自分で構築・保守する必要がありました。FinOps AgentのAutomationsなら、同じことが設定画面だけで完結します。構築・保守の手間という点では、マネージドの強みがはっきり出ます。

 

自動配信で金額が合わなかった話(当検証環境での観測)

はじめにお断り
以下は当方の検証環境(FinOps Agent プレビュー版・2026年6月時点)での観測結果であり、AWS公式の仕様や、すべての環境で再現する事象を示すものではありません。FinOps Agentはプレビュー中のため、今後の改善で挙動が変わる可能性があります。

Automationsで自動配信を設定して数回運用したところ、当環境では、自動配信されたレポートの金額が実態と大きくズレる場面がありました。同じ週(2026-06-12〜18)を「手動チャットでの依頼」と「自動実行」で出し比べたのが下表です。

項目 手動チャットで依頼 自動実行(Automation)
今週合計 約 $553 約 $99
VPC / Kiro / CloudTrail 等の定常サービス 取得できた 表に出てこなかった
当月累計(MTD) 約 $1,600 約 $220
月次トレンド 自作構成とほぼ一致 一部の月が大きく食い違い

手動で依頼したレポートは、定常的なインフラサービス(VPC・Kiro・CloudTrailなど)を含めて全アカウント分が取得でき、自作構成の数値ともほぼ一致しました。一方、自動実行で配信されたレポートは、当環境では一部のサービス(主にAIモデル利用分)しか反映されず、金額が小さく出る傾向が見られました。月末着地予測についても、自動実行時にはCost Explorerの値と$300程度の乖離が見られました。(信頼区間上限の値から)

自動実行時に内部的な処理時間やAPI呼び出しの上限に達した可能性などが考えられますが、原因については断定しません。あくまで「当環境ではこうした挙動が見られた」という観測を本ブログではお伝えいたします。

緩和策: コンテキストファイルの工夫
データの取得漏れを減らすため、コンテキストファイルに次のような取得ルールを追記してみました。当環境では完全には解消しきれなかったものの、定常サービスの取りこぼしはある程度軽減できました。
・必ず取得すべき定常サービス(VPC・CloudTrail・データ転送 等)を名指しで列挙する
・全アカウントIDを列挙し、1アカウントずつ順に集計させる
・各章の末尾で「今週合計とサービス別内訳の合算が一致するか」を自己検算させる
・整合が取れない項目は空欄にせず「要再取得」と明記させる
・1回で全章を取得せず、章ごとにタスクを分けてレート制限を回避する
当環境での示唆
自動配信を使う場合、現時点では、配信された数値をそのまま信用せず、定常サービスが含まれているか・合計額が妥当かを定期的に確認することをおすすめします。確実性が求められる定型レポートでは、当環境では自作構成のほうが安定していました。

 

できたこと・できなかったこと

今回の検証で見えた、自作構成の週次レポートと比べたときの「できたこと」「できなかったこと」を整理します。

項目 自作構成 FinOps Agent
Slackへのレポート配信
定期自動配信 ◯(自前で構築) ◯(Automations)
月末コスト着地予測
アカウント別コスト
サービス別TOP10/リソース別コスト
数値の網羅性・厳密性
EC2インスタンスの作成者特定

 ◯=対応 / △=部分対応 / ✕=非対応

正直な課題: 数値の網羅性と精度(当検証環境での観測)
当環境では、手動チャットで依頼したレポートは全サービス・全アカウントを正確に取得できましたが、自動実行(Automations)では一部サービスが欠け、金額が小さく出る場面がありました(前章参照)。手動でも、1回で大量のデータを求めるとAPIのレート制限に当たり、章が「取得不可」になることがあります。
FinOps Agentはエージェントがデータを解釈して集計するため、自前でAPIを直接叩く自作構成のような決定論的な厳密さとは性質が異なります。当環境では完全一致や自動実行での安定取得までは難しいというのが実感です(プレビュー版のため今後の改善に期待)。

また、上記の表のとおり、自作構成の目玉だったEC2インスタンスの作成者特定(Cloud9のownerArnやCloudTrailを使った調査)は、FinOps Agentでは再現できませんでした。エージェントのIAMロールにはCloudTrailの権限が含まれているものの、エージェントが答えられる範囲がFinOps(コスト管理)ドメインに制約されています。(参考: FinOpsAgentAgentPolicy / Agent guardrail control
ここはコードレベルの独自処理が必要な部分で、自作構成ならではの価値として残りました。

自前で構築した環境で、Slackにてコストレポートをしてくれる「コストボットくん」もまだクビにはできません。


まとめ

今回は、いつも自作構成で自動配信している週次コストレポートを、FinOps Agentで置き換えられるか試してみました(当方の検証環境・プレビュー版での結果です)。
結果として、Slackへの定期配信そのものはAutomationsで実現できる一方で、当環境では自動配信時の数値の網羅性・厳密性や、独自の分析(作成者特定など)は自作構成に分があるという観測になりました。

FinOps Agent: 手軽なコスト質問・異常検知・最適化提案・成果物(PDF/Markdown/PPTX)の自動生成
自作構成: 厳密で網羅的な週次レポート・作成者特定などの独自分析

というように役割を分担して併用するのが、現時点では一番現実的だと感じました。
なお、コンテキストファイルの書き方を工夫することで取得漏れはある程度緩和できました。コンテキストファイルを活用して精度を高める指示を試していきたいと思います。
FinOps Agentはまだプレビューであり、今後の機能拡張やGAでの精度向上にも期待しつつ、引き続き活用方法を探っていきたいと思います。
皆さんもぜひお試しください!

 

もし「このサービスについて知りたい」「AWS環境の構築、移行」などのリクエストがございましたら、弊社お問い合わせフォームまでお気軽にご連絡ください。 複雑な内容に関するお問い合わせの場合には直接営業からご連絡を差し上げます。 また、よろしければ以下のリンクもご覧ください!
<QES関連ソリューション/ブログ>

※Amazon Web Services、"Powered by Amazon Web Services"ロゴ、およびブログで使用されるその他のAWS商標は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。

※このブログで参照されている、Claude、Claude Code、Claude Opus、Anthropic は、Anthropic, PBC の米国およびその他の国における商標または登録商標です。

  • このエントリーをはてなブックマークに追加

お問い合わせ

Contact

ご質問やご相談、サービスに関する詳細など、何でもお気軽にご連絡ください。下記のお問い合わせフォームよりお気軽に送信ください。

お問い合わせ

資料ダウンロード

Download

当社のサービスに関する詳細情報を掲載した資料を、下記のページよりダウンロードいただけます。より深く理解していただける内容となっております。ぜひご活用ください。

資料ダウンロード