クラウドの費用の増え方を毎週追って、原因の候補と確かめる先を出す
クラウドの費用の推移を毎週追い、想定を超えて増えている箇所を見つけて、原因の候補と、誰に何を確かめればよいかを一覧にします。担当者の作業は、画面を開いて回って原因を探すことから、示された候補を確かめることに変わります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Python/Zapier
- 対象業界
- IT・SaaS/その他/小売/広告/金融
- 対象部門
- 情報システム
- 対象業務
- 内容確認・チェック/集計・分析
- 主な課題
- データ分析に時間がかかる/人手が足りない/属人化している
- AIで行う処理
- エージェント
- 主な効果
- 判断支援/工数削減/機会損失防止
- 導入難易度
- ★★★★☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 月初にクラウド事業者から請求が確定する
- 担当者が費用管理の画面で、前月比を見る
- 増えているアカウントとサービスを特定する
- そのサービスの画面を開き、どの資源が増えたかを調べる
- タグや命名規則から、どのチームのものかを推測する
- 該当しそうなチームへ連絡して確認する
- 意図した増加か、設定の誤りかを判断する
- 誤りなら、止めるか設定を直すよう依頼する
- 月次の費用の報告資料にまとめる
- 自動毎週決まった曜日と時刻に、処理が始まる
- 自動各アカウントの費用データを取得する(日次の粒度)
- 【計算】 サービス別・資源別・タグ別に集計する
- 【計算】 過去の推移と比べ、想定を超えた増加を見つける
- 自動増加した資源について、作成日・タグ・命名から持ち主の候補を出す
- 自動同じ時期の変更の記録(デプロイ、設定変更)と照らす
- 自動原因の候補と、確かめる先を一覧にする
- 自動過去に同じ増加があったかを示す
- 人担当者が候補を確かめ、関係者へ連絡する
- 人意図した増加か、誤りかを判断する
- 自動判断の結果を記録し、次回の判定に使う
各工程の詳しい説明を読む
- 月初にクラウド事業者から請求が確定する
- 担当者が費用管理の画面で、前月比を見る
- 増えているアカウントとサービスを特定する
- そのサービスの画面を開き、どの資源が増えたかを調べる
- タグや命名規則から、どのチームのものかを推測する
- 該当しそうなチームへ連絡して確認する
- 意図した増加か、設定の誤りかを判断する
- 誤りなら、止めるか設定を直すよう依頼する
- 月次の費用の報告資料にまとめる
問題は7つあります。
(a)気づくのが遅い。 月初に前月分を見るため、増え始めてから3〜4週間が経っています。
(b)原因を探すのに画面を開いて回る。 アカウント18、サービスは1社あたり数十種類。増えた箇所を絞り込むのに時間がかかります。
(c)誰のものか分からない資源がある。 タグが付いていない、命名規則に従っていない資源があります。持ち主を探すところから始まります。
(d)意図した増加と区別がつかない。 新機能のリリースで利用が増えるのは正常です。それと設定の誤りを、費用の数字だけでは区別できません。
(e)担当者に集中する。 どの資源が誰のものかを把握しているのは1〜2名です。
(f)小さな増加が埋もれる。 全体が1,800万円あると、月20万円の増加は誤差に見えます。 しかし年間では240万円です。
(g)報告が事後になる。 月次の報告は「先月こう増えました」という内容です。手を打つ余地がありません。
- 【自動】 毎週決まった曜日と時刻に、処理が始まる
- 【自動】 各アカウントの費用データを取得する(日次の粒度)
- 【計算】 サービス別・資源別・タグ別に集計する
- 【計算】 過去の推移と比べ、想定を超えた増加を見つける
- 【自動】 増加した資源について、作成日・タグ・命名から持ち主の候補を出す
- 【自動】 同じ時期の変更の記録(デプロイ、設定変更)と照らす
- 【自動】 原因の候補と、確かめる先を一覧にする
- 【自動】 過去に同じ増加があったかを示す
- 【人】 担当者が候補を確かめ、関係者へ連絡する
- 【人】 意図した増加か、誤りかを判断する
- 【自動】 判断の結果を記録し、次回の判定に使う
自動化されるのは「取得」「集計」「増加の検出」「持ち主の推定」「変更との照合」「候補の提示」の6つです。残るのは、確かめることと、判断です。
費用を減らす判断はしません。 どの資源を止めるか、構成をどう変えるかは、サービスを運用するチームが決めます。この構成が出すのは、判断に必要な材料です。
資源を止めたり消したりもしません。 自動で資源を削除する構成にしないでください。本番のサービスを止める事故につながります。
原因も断定しません。 「設定の誤りです」と書かせないでください。候補を挙げるところまでです。
週次にすることが、この構成の中心です。 月次では遅すぎ、日次では変動が大きすぎます。週次なら、増え始めて1週間以内に気づけます。
02今回想定するシステム構成
クラウド事業者A(費用データのAPI) クラウド事業者B(費用データのAPI) 変更の記録(デプロイ、設定変更、チケット) 資源のタグと命名規則 │ ▼【トリガー】n8n の Schedule Trigger(毎週・曜日と時刻を指定) n8n のワークフロー │ ├──▶ 各アカウントの日次の費用データを取得 │ ├──▶ Code ノードで集計と検出 │ ・サービス別 / 資源別 / タグ別に集計 │ ・移動平均と、そこからの乖離を計算 │ ・閾値(金額と割合の両方)で候補を絞る │ **計算はここで確定させる** │ ├──▶ 資源の作成日・タグ・命名から持ち主の候補を出す ├──▶ 同じ時期の変更の記録と照らす │ ▼ Claude API │ ・増加の内容を言葉にする │ ・原因の候補を、変更の記録と結びつけて挙げる │ ・確かめる先(誰に、何を)を書く │ ・structured outputs でスキーマどおりのJSONを返させる │ ▼ 費用の監視の一覧(SharePoint リスト) │ ・増加した箇所 / 金額 / 原因の候補 / 確かめる先 │ ・過去の同様の事例 │ ▼ 担当者が確認 ──【人】関係者へ連絡する │ ▼ 意図した増加か誤りかを判断 ──【人】 │ ▼ 判断の結果を記録(次回の判定に使う)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n | Make、Zapier、Power Automate |
| 生成AI | Claude API | OpenAI API、Gemini API |
| 集計 | Python | SQL、表計算ソフト |
| 保管 | SharePoint | Box、Google ドライブ |
| 費用管理 | クラウド事業者の費用管理の機能 | 各社の製品 |
クラウド事業者の費用管理の機能に、異常の検出と予算のアラートがあります。 まずそちらを確認してください。自前で組む価値があるのは、2社のクラウドをまたいで見たい場合と、自社の変更の記録と結びつけたい場合です。
事業者の異常検出は、そのアカウントの中だけを見ます。 変更の記録(いつ誰が何をデプロイしたか)と結びつけることはできません。原因の候補を出すには、社内のデータが要ります。
n8n を選ぶ理由は、Code ノードで自由に計算できることです。 移動平均、乖離、閾値の判定は、ノードの組み合わせでは書きにくくなります。
Code ノードは JavaScript(Node.js)と Python に対応しています。 Python については、タスクランナーによるネイティブの対応が n8n 2 以降で安定版になり、従来の Pyodide を置き換えています。
Code ノードには2つの実行モードがあります。 「すべての項目に対して1回実行する」(既定)と、「項目ごとに1回実行する」です。アカウントごとに同じ処理を回す場面では、後者が向きます。
制約もあります。 n8n Cloud では、JavaScript で使える外部モジュールは crypto と moment の2つだけです。自分でホストする場合は、設定により追加の npm モジュールを読み込めます。Python は n8n Cloud ではライブラリを読み込めません。
Code ノードからファイルシステムへのアクセスやHTTPの要求は直接できません。 専用のノードを使う必要があります。費用データの取得は HTTP Request ノードで行い、計算だけを Code ノードで行う形になります。
Schedule Trigger は、秒・分・時・日・週・月の間隔と、カスタムのCron式に対応します。 Cron式は6つのフィールド(6つ目の秒は任意)です。この構成では、毎週の指定を使います。
タイムゾーンは、ワークフローに設定があればそれを使い、なければインスタンスの設定を使います。 自分でホストする場合の既定は America/New_York、n8n Cloud の既定は GMT です。日本時間で動かすなら、必ず設定してください。
スケジュールのトリガーを使うワークフローは、保存して公開する必要があります。 公開していないと動きません。Cron式の中の変数は公開の時点で評価されるため、変更したら再度公開してください。
03どうやって実装するのか
処理の起点を決める
毎週決まった曜日と時刻を起点にします。
月曜の朝を推奨します。 週の初めに一覧が届けば、その週のうちに確認できます。金曜の夕方だと、週末を挟んで対応が遅れます。
費用データの反映には遅れがあります。 クラウド事業者の費用データは、確定までに数時間から1日程度かかります。直近1〜2日のデータは変動する前提で設計してください。
日次にしないでください。 費用は曜日によって変動します。土日に減り、月曜に増えるのは正常です。 日次で見ると、この変動が「増加」として出続けます。
月次にもしないでください。 それでは現状と変わりません。
もう1つの起点として、大きな増加の即時検出があります。 1日で前日比が一定の割合を超えた場合、週次を待たずに知らせます。 設定の誤りで大量の資源が立ち上がった場合を拾うためです。
この即時の検出は、閾値を高く設定してください。 前日比で2倍を超える、といった水準です。細かく設定すると、通知が毎日来ることになります。
月次のトリガーも置きます。 月初に、前月の判断の結果を集計します。「意図した増加」と「誤り」の割合が見えると、閾値の調整ができます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 費用データ | 日次、アカウント別、サービス別、資源別、タグ別 | クラウド事業者のAPI |
| 資源の情報 | 作成日、作成者、タグ、命名、リージョン | クラウド事業者のAPI |
| タグの規約 | 付けるべきタグと、その値の一覧 | 情報システム部の文書 |
| 命名規則 | 資源の名前の付け方 | 情報システム部の文書 |
| チームの一覧 | チーム名、担当するサービス、連絡先 | 社内の情報 |
| 変更の記録 | デプロイ、設定変更、チケットの完了 | CI/CDの記録、チケット管理 |
| 過去の判断 | 増加の事例と、意図した/誤りの別 | 記録 |
| 予算 | チーム別・サービス別の月額の目安 | 情報システム部の管理表 |
データの取得方法を決める
タグの規約が、この構成の質を決めます。 タグが付いていなければ、持ち主が分かりません。
| タグ | 値の例 | 必須か |
|---|---|---|
| Team | platform / billing / search / ... | 必須 |
| Env | prod / stg / dev | 必須 |
| Service | 提供するサービス名 | 必須 |
| Owner | 責任者のメールアドレス | 必須 |
| CostCenter | 原価の付け先 | 任意 |
| ExpiresAt | 一時的な資源の廃棄予定日 | 一時的な資源では必須 |
ExpiresAt のタグが、実務では効きます。 検証用に立てた資源が消されずに残ることが、費用の増加のよくある原因です。期日を過ぎた資源を一覧にできます。
タグが付いていない資源が必ず残ります。 導入の前に、タグの付与率を測ってください。 7割を下回るようなら、まずタグを付ける運動から始めるほうが効きます。
命名規則も、タグの代わりになります。 prod-search-api-01 のような形なら、名前から環境とサービスが分かります。タグと命名の両方から持ち主を推定してください。
変更の記録との照合が、原因の候補を出す鍵です。
| 記録 | 使い方 |
|---|---|
| デプロイの記録 | 費用が増えた日と、デプロイの日が一致するか |
| インフラの構成変更 | 構成管理のコードの変更履歴 |
| チケットの完了 | 「◯◯の負荷試験」というチケットが同じ週にないか |
| 障害の記録 | 障害対応で一時的に資源を増やしていないか |
「同じ日に何があったか」が分かるだけで、原因の切り分けが大きく速くなります。
過去の判断: 運用を始めてからたまります。「このサービスのこの増え方は、毎月の定期処理によるもの」という判断が記録されていれば、次回から除外できます。
AIへ渡す前に整形する
- 費用データの取得 … 日次の粒度で、アカウント・サービス・資源・タグ別に取ります
- 通貨と税の扱いの統一 … 事業者によって表示が違います。税抜で統一してください
- 割引・クレジットの分離 … 予約購入やコミットメントによる割引は、費用の変動として扱うと誤検出になります。分けて集計します
- 移動平均の計算 … 直近4週の同じ曜日の平均を基準にします。曜日の変動を吸収するためです
- 乖離の計算 … 基準からの差を、金額と割合の両方で出します
- 閾値による絞り込み … 金額と割合の両方の条件を満たすものだけを候補にします
- 持ち主の推定 … タグ、命名、作成者から候補を出します
- 変更の記録との照合 … 増加した日の前後3日の変更を取ります
4の「同じ曜日の平均」が、誤検出を大きく減らします。 月曜と日曜では費用が違います。単純な直近7日の平均と比べると、曜日の影響が乗ります。
6の「金額と割合の両方」が重要です。 割合だけで見ると、月1,000円の資源が3,000円になったときに「3倍」として上位に出ます。金額だけで見ると、大きなサービスの小さな変動が埋もれます。
| 条件 | 例 |
|---|---|
| 金額の条件 | 週あたりの増加が3万円以上 |
| 割合の条件 | 基準の20%以上の増加 |
| どちらも満たす | 候補にする |
| 金額のみ極端 | 週あたり20万円以上なら、割合を問わず候補にする |
最後の行を入れてください。 大きなサービスで割合は小さくても、金額が大きければ確かめる価値があります。
AIに処理させる
計算処理にさせること(生成AIには任せない):
| 処理 | 内容 |
|---|---|
| 集計 | アカウント・サービス・資源・タグ別 |
| 移動平均と乖離 | 同じ曜日の直近4週の平均からの差 |
| 閾値の判定 | 金額と割合の条件 |
| 持ち主の推定 | タグ・命名・作成者からの引き当て |
| 変更の記録との時刻の照合 | 増加の日と変更の日の一致 |
| 予算との比較 | チーム別の月額の目安との差 |
Claude API にさせること:
| 処理 | 内容 |
|---|---|
| 増加の内容の記述 | どのサービスの何が、どれだけ増えたか |
| 原因の候補の提示 | 変更の記録と結びつけた候補(断定しない) |
| 確かめる先の提示 | 誰に、何を聞けばよいか |
| 過去の事例との照合 | 同じ増え方が過去にあったか |
| 優先度の目安 | 金額と、意図しない可能性の高さから |
原因を断定させません。 「設定の誤りです」「不要な資源です」と書かせないでください。候補を挙げるところまでです。
費用を減らす提案もさせません。 「このインスタンスを小さくすべきです」といった提案を禁じてください。構成の判断は、サービスを運用するチームが行います。
資源の削除や停止も指示させません。 「このインスタンスを停止してください」と書かせないでください。本番のサービスかもしれません。
計算もさせません。 金額、割合、移動平均は Code ノードで確定させます。
指示内容を固定する
あなたは情報システム部でクラウドの費用を管理する担当者です。
検出された費用の増加について、内容を言葉にし、原因の候補と
確かめる先を挙げることが役割です。
【厳守事項】
- 原因を断定しないでください。
「設定の誤りです」「不要な資源です」「無駄な支出です」と書かないでください。
候補を挙げ、「確かめる先」を示すところまでにしてください。
- 費用を減らす提案をしないでください。
「インスタンスを小さくすべきです」「予約購入を検討すべきです」
と書かないでください。
構成の判断はサービスを運用するチームが行います。
- 資源の停止や削除を指示しないでください。
「このインスタンスを停止してください」と絶対に書かないでください。
**本番のサービスを止める事故につながります。**
- 計算をしないでください。
金額、割合、移動平均、乖離はすでに計算済みです。
与えられた数値をそのまま使ってください。
- 与えられていない資源や変更について書かないでください。
推測でサービス名や構成を補わないでください。
- 原因の候補は、下の「同じ時期の変更の記録」に含まれるものだけから挙げてください。
変更の記録にない原因を想像で挙げないでください。
該当する変更がない場合は「同じ時期の変更の記録に該当なし」と書いてください。
- 確かめる先は、下の「持ち主の候補」に含まれる相手だけを挙げてください。
持ち主が特定できない場合は「持ち主が特定できません。タグが付いていません」
と書いてください。
- 確かめる内容は、問う形で書いてください。
「この増加は意図したものか」「いつまで続く見込みか」を聞く形にしてください。
対応を指示する形にしないでください。
- チームや個人を評価しないでください。
「このチームは費用の管理ができていません」と書かないでください。
- 優先度は、金額の大きさと、過去に同じ増え方があったかで示してください。
「緊急」といった強い言葉を使わないでください。
【検出された増加(アカウント / サービス / 資源 / 増加額 / 増加率 / 基準)】
{cost_increases}
【持ち主の候補(タグ / 命名 / 作成者から推定)】
{owner_candidates}
【同じ時期の変更の記録(デプロイ / 構成変更 / チケット / 障害)】
{change_records}
【過去の同様の事例(増加の内容 / そのときの判断)】
{past_cases}
【チーム別の予算の目安】
{budgets}
「資源の停止や削除を指示しない」の指示が、この構成でもっとも重要です。 一覧に「このインスタンスを停止してください」と書かれていて、担当者がそれに従った場合、本番のサービスが止まる恐れがあります。 この禁止は、テストで必ず確認してください。
「変更の記録にない原因を想像で挙げない」の指示も外せません。 「おそらくデータ量の増加によるものです」という推測が書かれると、それを前提に調査が進み、本当の原因を見落とします。
「対応を指示する形にしない」の指示が、関係との摩擦を防ぎます。 情報システムが開発チームへ「止めてください」と言う形になると、費用の管理が押し付けに見えます。 「意図したものか」を聞く形にしてください。
「チームを評価しない」の指示も入れてください。 費用の増加は、事業が伸びている証拠であることもあります。増加そのものを悪とする書き方をしないでください。
出力形式を固定する
{
"run_date": "",
"period": { "from": "", "to": "" },
"findings": [
{
"cloud": "",
"account": "",
"service": "",
"resource": "",
"increase_amount": 0,
"increase_rate": 0,
"baseline": 0,
"description": "",
"owner_candidates": [
{ "team": "", "basis": "tag | naming | creator", "confidence": "high | low" }
],
"possible_causes": [
{ "change_record": "", "date": "", "relation": "", "certainty": "possible | unclear" }
],
"no_matching_change": false,
"questions_to_ask": [],
"past_similar_case": "",
"priority": "high | medium | low",
"priority_basis": ""
}
],
"unattributed_resources": [
{ "resource": "", "amount": 0, "reason": "no_tag | no_naming_match" }
],
"summary": {
"total_increase": 0,
"findings_count": 0,
"with_cause_candidate": 0,
"without_cause_candidate": 0,
"unattributed_amount": 0
}
}
Claude API で出力をスキーマに沿わせるには、output_config の format に json_schema を指定します。 古い output_format は非推奨で、output_config.format に置き換わりました。
スキーマには制約があります。 enum は文字列・数値・真偽値・null に限られます。数値の minimum / maximum / multipleOf、文字列の minLength / maxLength / pattern は使えません。 金額を0以上に縛ることはスキーマではできないため、受け取った後に確かめてください。
最初にスキーマを使うときは、文法のコンパイルに時間がかかります。 結果は24時間キャッシュされますが、スキーマの構造やツールの構成を変えると無効になります。 週次の実行では、毎回コンパイルが走る可能性があります。
certainty を possible と unclear の2つにしていることが、設計上の意図です。 likely や confirmed を入れると、断定に近い表現が出ます。確からしさを表す語彙を、意図的に弱くしています。
no_matching_change のフラグが要ります。 変更の記録に該当がない増加は、むしろ注意して見るべきものです。 誰も何もしていないのに費用が増えているということだからです。
unattributed_resources が、この構成の副産物として重要です。 タグが付いておらず持ち主が分からない資源の一覧です。この金額を毎週見せることが、タグを付ける動機になります。
questions_to_ask は「問う形」で書かせます。 「この増加は意図したものか」「いつまで続く見込みか」「一時的なものか」です。
システムへ連携する
一覧を出すだけで、クラウドへの操作は一切行いません。
| 出力先 | 内容 |
|---|---|
| SharePoint リスト | 費用の監視の一覧 |
| Teams(情報システム) | 週次の一覧の通知 |
| Teams(各チーム) | 担当者が確認してから連絡 |
| クラウド | 書き込み・停止・削除は一切行わない |
クラウドへの操作を絶対に自動化しないでください。 資源の停止、削除、サイズの変更。どれも本番のサービスに影響します。 この構成は読み取りだけです。
権限も読み取りだけにしてください。 費用データと資源の情報を読む権限で足ります。書き込みの権限を与えないことが、事故を防ぐいちばん確実な方法です。
各チームへの連絡も、担当者が行ってください。 自動で「あなたのチームの費用が増えています」と通知すると、意図した増加の場合に不要な負担をかけます。 情報システムが内容を見てから聞く形にしてください。
ただし、unattributed_resources の一覧は、全体へ共有して構いません。 「持ち主の分からない資源が月◯万円分あります」という情報は、特定のチームを指すものではないためです。
人が確認する
担当者が、原因を確かめて判断します。
| 状態 | 確認 |
|---|---|
priority が high | すぐ確かめる |
no_matching_change が true | 変更がないのに増えている。設定や外部要因を疑う |
owner_candidates の confidence が low | 持ち主から確かめる |
unattributed_resources に大きな金額 | タグの付与を依頼する |
past_similar_case がある | 前回の判断を見る。同じなら即座に処理できる |
possible_causes が空 | 変更の記録の範囲を広げるか、人が調べる |
確認を速くするための設計が効きます。
- 金額の大きい順に並べる
no_matching_changeに印を付ける- 過去の同様の事例を併記する
- 持ち主の候補を連絡先とともに示す
- 判断の結果をその場で入力できるようにする
2つ目が効きます。 変更の記録に該当がないのに費用が増えているケースは、放置されている資源や、外部からの負荷の増加である可能性があります。 優先して見る価値があります。
判断の結果を必ず記録してください。 「意図した増加(新機能のリリース)」「誤り(検証用の資源の消し忘れ)」「様子見」の3択です。この記録が、次回の判定の精度を上げます。
月次で、判断の内訳を見てください。
| 見るもの | 判断 |
|---|---|
| 「意図した増加」の割合 | 高すぎるなら閾値を上げる |
| 「誤り」で見つかった金額 | この構成の効果そのもの |
unattributed_resources の推移 | タグの付与が進んでいるか |
| 検出されなかったのに後で分かった増加 | 見落とし。閾値を見直す |
例外に対処する
| 起きること | 対応 |
|---|---|
| 費用データの反映が遅れている | 直近1〜2日は変動する前提にする |
| 割引・クレジットで費用が急減した | 分けて集計する。減少を「異常」として出さない |
| 予約購入の適用で費用が動いた | 割引の適用として分ける |
| 為替の変動で円換算が動いた | 現地通貨でも集計する |
| タグが付いていない資源 | unattributed_resources に出す。持ち主を推測しない |
| 命名規則に従っていない資源 | 同様に扱う |
| 新しいサービスを使い始めた | 基準がないため、初回は必ず候補に出す |
| 曜日の変動で誤検出する | 同じ曜日の移動平均を使う |
| 月末月初で日数が違う | 日次の粒度で比べる。月額で比べない |
| AIが原因を断定した | 指示で禁止する。テストで必ず確認する |
| AIが停止や削除を指示した | 絶対に禁止する。最優先で確認する |
| AIが費用削減を提案した | 禁止する。構成の判断はチームが行う |
| クラウドへ書き込む権限を与えている | 読み取りのみにする。事故を防ぐ最も確実な方法 |
| 各チームへ自動で通知が飛ぶ | 担当者が確認してから連絡する |
| ワークフローを公開していない | スケジュールのトリガーは公開しないと動かない |
| タイムゾーンが違う | ワークフローかインスタンスに設定する |
「クラウドへ書き込む権限を与えない」は、設計の原則としてください。 読み取りだけの権限で足ります。書き込みの権限がなければ、どんな不具合があっても資源は消えません。
記録を残す
この記録は、閾値と判定の精度を育てる材料になります。
- 実行日時と、取得したデータの範囲
- 検出した増加と、その金額・割合
- 原因の候補と、変更の記録との照合の結果
- 担当者の確認と、判断(意図/誤り/様子見)
- 誤りだった場合の、実際の原因と対処
unattributed_resourcesの金額の推移- 検出されなかったのに後で分かった増加
最後の項目が、この構成の弱点を示します。 月次の請求を見て初めて分かった増加が、週次の検出に引っかからなかったということです。 閾値が高すぎるか、集計の粒度が粗すぎます。
「誤りだった場合の実際の原因」を分類してください。
| 原因の種類 | 例 |
|---|---|
| 消し忘れ | 検証用の資源が残っていた |
| 設定の誤り | ログの保存期間、インスタンスのサイズ |
| 想定外の負荷 | 外部からのアクセスの増加 |
| 意図しない自動化 | スケーリングの設定 |
| 外部要因 | 事業者の料金の改定 |
この分類が集まると、予防の手が打てます。 「消し忘れ」が多いなら、ExpiresAt のタグの運用を強めます。
費用データには、事業の状況が表れます。 どのサービスが伸びているか、どこに投資しているか。閲覧範囲を情報システム部と経営に限定してください。
外部のAIサービスへ渡す範囲も決めてください。 サービス名、資源名、金額。資源名に顧客名が含まれることがあります。 渡す前に確かめてください。
04実装レベルの3段階
半自動化の時点で、14分が7分程度になります。 増加を見つける作業が消えるためです。本格構成では4分になりますが、減るのは原因を探す時間です。 本格構成の「変更の記録との照合」が、この構成の分かれ目です。 これがないと、「増えました」という情報だけが毎週届きます。原因の切り分けが自動化されないなら、担当者の作業はあまり減りません。 「過去の判断の反映」も必須です。 毎月の定期処理による増加を毎週報告し続けると、一覧が読まれなくなります。 段階を飛ばさないでください。 タグの付与率が低い状態で本格構成を作ると、持ち主が特定できない候補ばかりが並びます。 まずタグを整えてください。 クラウドを1社から始めてください。 2社のデータ形式は違います。1社で回してから、もう1社を足すほうが確実です。
05工数削減シミュレーション
導入後 150件 × 4分 ÷ 60 = 10 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- クラウドの月額が数百万円以上で、複数のプロジェクトやチームが同じアカウントを使っている企業。費用の増加に気づくのが請求の後になっている場合。増えた原因を調べるのに、担当者が個別のサービスの画面を開いて回っている場合。費用の管理が1〜2名に集中している場合。
- クラウドの利用が小規模で、月額が数十万円に収まる企業。クラウド事業者の費用管理の機能と予算のアラートで足りている場合。利用しているサービスが数種類で、増減の原因がすぐ分かる場合。費用の管理を外部のパートナーへ全面的に委託している場合。
07最小構成で試す方法
- アカウントを3つ選ぶ(金額の大きいもの)
- 過去3か月の日次の費用データを取得する
- 表計算ソフトで、同じ曜日の移動平均と乖離を計算する
- 閾値(金額と割合)を仮に決め、候補がいくつ出るかを見る
- 過去に実際に問題になった増加が、候補に含まれるかを確かめる
- 生成AIのチャット画面で、候補と変更の記録を渡して原因の候補を挙げさせる
見るのは次の5点です。
| 見る点 | 判断 |
|---|---|
| 停止・削除の指示が出ていないか | 1件でも出たら指示を直す。最優先 |
| 原因の断定・費用削減の提案が混ざっていないか | 混ざったら指示を直す |
| 過去に問題になった増加を検出できたか | 見落としがあれば閾値を下げる |
| 週あたりの候補の件数 | 30件以内。多いなら閾値を上げる |
| タグの付与率 | 7割を下回るなら、タグの運動が先 |
1つ目を最優先で確かめてください。 わざと「このインスタンスは不要では」と聞いてみます。「意図したものかをチームへ確認してください」と返るのが正しい挙動です。
5つ目が、この構成を始められるかの判断になります。 タグの付与率が5割なら、持ち主の分からない資源が半分を占めます。 その状態で原因の切り分けを自動化しても、半分は「持ち主不明」で終わります。まずタグを付ける取り組みから始めるほうが効きます。
次に、閾値の調整を丁寧に行ってください。 候補が週に100件出れば読まれません。30件以内に収まる水準を、過去のデータで探してください。
変更の記録との照合も、この段階で試してください。 デプロイの記録と費用の増加の日が一致するかを、過去の事例で5件確かめます。 一致しないなら、記録の粒度か時刻の扱いに問題があります。
★4にしている理由が、ここに表れます。 タグの整備、閾値の調整、2社のクラウドのデータ形式の違いの吸収、変更の記録との紐づけ。どれも準備に時間がかかります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| AIが停止や削除を指示する | 絶対に禁止する。最優先でテストする |
| AIが原因を断定する | 禁止する。候補を挙げるまで |
| AIが費用削減を提案する | 禁止する。構成の判断はチームが行う |
| AIが計算し直して間違える | 計算は Code ノードで確定させる |
| タグの付与率が低い | 先にタグの運動を回す。7割が目安 |
| 曜日の変動で誤検出する | 同じ曜日の移動平均を使う |
| 割引・クレジットを費用の変動として扱う | 分けて集計する |
| 割合だけで判定して小額が上位に出る | 金額と割合の両方を条件にする |
| 候補が週に100件出る | 閾値を調整する。30件以内が目安 |
| 持ち主を推測で決める | タグ・命名・作成者の根拠を示す。なければ不明とする |
| クラウドへ書き込む権限を与えている | 読み取りのみにする |
| 各チームへ自動で通知が飛ぶ | 担当者が確認してから連絡する |
| ワークフローを公開していない | スケジュールのトリガーは公開が必要 |
| タイムゾーンの既定が日本でない | ワークフローかインスタンスに設定する |
| n8n Cloud で外部モジュールを使おうとする | JavaScript は crypto と moment のみ。Python はライブラリ不可 |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: クラウドの費用、資源の名前とタグ、変更の記録、チームの情報。サービスの構成と事業の状況が読み取れます。
- 読み取りだけの権限 … クラウドへの書き込み、停止、削除の権限を与えないでください。 費用データと資源の情報を読む権限で足ります。これが事故を防ぐいちばん確実な方法です
- 自動操作の禁止 … 資源の停止や削除を自動化しないでください。 本番のサービスを止める事故につながります。この構成は読み取りと提示だけです
- 外部AIへの入力可否 … サービス名、資源名、金額を外部のAIサービスへ送ることになります。資源名に顧客名や案件名が含まれることがあります。 渡す前に確かめてください
- 送る情報を絞る … 原因の切り分けに、資源の完全な識別子は必ずしも要りません。サービス名と種類で足りるなら、識別子を送らない形にできます
- 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます
- 構成情報の扱い … 費用データからは、システムの構成(どのサービスをどれだけ使っているか)が読み取れます。セキュリティ上の情報として扱ってください
- アクセス権限 … 費用の一覧には、どのサービスにいくら使っているかが集まります。閲覧を情報システム部と経営に限定してください
- チームの評価との分離 … 費用の増加を、チームや個人の評価に使わないでください。 増加は事業が伸びている証拠であることもあります。評価に使うと、タグを付けない、報告しないという動きが生まれます
- 判断の責任 … この構成は原因を断定せず、費用削減も提案しません。 構成の判断と対処は、サービスを運用するチームが行います
- 監査対応 … 費用の管理の記録は、内部監査で参照されることがあります。検出の基準と判断の履歴を、説明できる形で残してください
- 自動実行してよい範囲 … 費用データの取得、集計、増加の検出、原因の候補の提示までです。関係者への連絡、原因の確定、構成の変更、資源の停止は人が行います
誤りが起きた場合のリスクは、増加を見落として無駄な支出が続くこと、そしてAIの指示に従って本番の資源を止めてしまうことです。後者は取り返しがつきません。 停止や削除の指示の禁止をテストで確認し、そもそも書き込みの権限を与えない設計にしてください。
10まず何から始めるか
1週目:タグの付与率を測る
現在、どれだけの資源にタグが付いているかを金額ベースで測ります。7割を下回るなら、この構成より先にタグを付ける取り組みが必要です。 付与率を上げる目処が立ってから、次へ進んでください。
2週目:閾値を過去のデータで決める
過去3か月の日次データで、同じ曜日の移動平均からの乖離を計算します。金額と割合の条件を変えながら、候補が週30件以内に収まる水準を探してください。 そして、過去に実際に問題になった増加が検出されるかを確かめます。
3週目:停止・削除の指示が出ないことを確かめる
生成AIに候補を渡して、「このインスタンスを停止してください」といった記述が出ないかを確かめます。 わざと「不要では」と聞いてみてください。ここが通らなければ先へ進めません。
4週目:変更の記録との照合を試す
過去の増加5件について、同じ時期のデプロイや構成変更を突き合わせます。時刻の粒度が合っているか、記録が残っているかを確かめてください。
2か月目: クラウド1社、アカウント3つで週次の運用を始めます。読み取りだけの権限で設定してください。 判断の結果を記録する運用も、この月から始めます。
3か月目以降: 全アカウントへ広げ、もう1社のクラウドを足します。同時に、過去の判断を次回の判定へ反映する仕組みを入れてください。 これがないと、毎週同じ増加が報告されます。
半年後: 月次の請求を見て初めて分かった増加が、何件あったかを数えてください。0に近ければ、週次の検出が機能しています。 同時に、unattributed_resources の金額が減っているかを見てください。タグの付与が進んでいるかの指標です。
1年後には、誤りの原因の分類が資産になります。 「消し忘れ」が半分を占めるなら、検出を速くするより、期限付きのタグと自動の棚卸しを整えるほうが根本的です。 費用の増加を早く見つけることより、増加そのものを起こさない仕組みへ進む材料が、ここに集まります。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| n8n の Schedule Trigger が秒・分・時・日・週・月の間隔と、カスタムのCron式(6つのフィールド。6つ目の秒は任意)に対応すること。タイムゾーンはワークフローに設定があればそれを使い、なければインスタンスの設定を使うこと(自分でホストする場合の既定は America/New_York、n8n Cloud の既定は GMT)。スケジュールのトリガーを使うワークフローは保存して公開する必要があり、Cron式の中の変数は公開の時点で評価されるため変更したら再度公開する必要があること | n8n Docs: Schedule Trigger node | 2026-09-28 |
| n8n の Code ノードが JavaScript(Node.js)と Python に対応し、Python はタスクランナーによるネイティブの対応が n8n 2 以降で安定版となり従来の Pyodide を置き換えたこと。実行モードに「すべての項目に対して1回実行する」(既定)と「項目ごとに1回実行する」の2つがあること。n8n Cloud では JavaScript で使える外部モジュールが crypto と moment の2つに限られ、自分でホストする場合は設定により追加の npm モジュールを読み込めること。n8n Cloud では Python のライブラリを読み込めないこと。Code ノードからファイルシステムへのアクセスやHTTPの要求は直接できず、専用のノードを使う必要があること | n8n Docs: Using the Code node | 2026-09-28 |
Claude API で出力をスキーマに沿わせる際、output_config の format に json_schema を指定すること(output_format は非推奨で output_config.format に置き換わった)。enum が文字列・数値・真偽値・null に限られ、数値の minimum / maximum / multipleOf、文字列の minLength / maxLength / pattern が使えないこと。最初の使用時に文法のコンパイルの待ち時間があり、結果は24時間キャッシュされるが、スキーマの構造やツールの構成を変えると無効になること | Anthropic Docs: Structured outputs | 2026-09-28 |
クラウドの費用データの取得方法、タグの規約、予算の管理の仕方は、利用する事業者と自社の運用によって異なります。この部分は自社の情報システム部門の定めに応じた個別対応が必要です。 費用の削減、構成の変更、資源の停止の判断は、サービスを運用する部門の責任で行ってください。この記事は構成の適否や費用の妥当性について判断を示すものではありません。クラウドの構成情報を外部のAIサービスへ渡してよいかは、自社の情報セキュリティの責任者の判断が必要です。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0278)についてのご相談はこちらから。
