先月のAWS請求額がいつもの3倍に膨れ上がっていた——そんな経験はないでしょうか。クラウドはオンプレミスと違い、少しの設定ミスや想定外のトラフィックが即座にコストへ跳ね返ります。
AWS BudgetsやCost Explorerで月次の予算管理をしている方は多いですが、「月の80%を超えたら通知」という設定では、異常が起きてからしばらく経ってようやく気づく、という状況になりがちです。
AWS Cost Anomaly Detectionは、機械学習を使って「いつもと違うコストの動き」をリアルタイムに近い形で自動検出するサービスです。この記事では、Cost Anomaly Detectionの仕組みと設定方法、実務で役立つTipsまでを現場エンジニアの目線で解説します。

なぜAWS Cost Anomaly Detectionが必要なのか?
オンプレミス環境では、サーバーの追加には調達・設置・設定という手間とリードタイムがあるため、「気づかないうちにコストが数倍になっていた」という事態はほぼ起こりませんでした。ところがAWSでは、APIを一発叩けば誰でもリソースを作れるため、意図せずコストが爆発するリスクが常にあります。
現場でよくあるコスト急増のパターンを挙げると、こんな事例があります。
・NAT Gatewayのトラフィック急増: アプリのバグでデータ転送量が100倍になった
・Lambda無限ループ: イベントトリガーが循環し、リクエスト数が爆発した
・開発環境のリソース放置: 検証で立てたEC2やRDSを削除し忘れた
・S3への大量PUT: ログ出力の設定ミスで毎秒数千件の書き込みが走った
・EBSスナップショットの肥大化: 自動スナップショットが大量に蓄積した
AWS BudgetsはあくまでもKPIベースのアラートです。「月の予算上限に近づいた」という事実は通知できますが、「先週と比べてEC2の費用が突然2倍になった」という変化の検知は苦手です。Cost Anomaly Detectionはその部分を機械学習で補う役割を担います。
AWS Cost Anomaly Detectionの仕組み
Cost Anomaly DetectionはAWSが機械学習モデルを内部で管理し、ユーザーのコスト使用パターンを継続的に分析します。MLの専門知識やモデルの管理は不要で、「コスト異常モニター」と「アラートサブスクリプション」の2つを設定するだけで動き始めます。
検知の仕組みはシンプルです。機械学習モデルが「このサービスの通常の費用はこの程度」という期待値を学習し、実際の費用がその期待値から大きく外れたときに異常として検知します。この差分(インパクト)が設定したしきい値を超えると通知が飛ぶ仕組みです。
モニターの種類は4つ用意されています。
| モニタータイプ | 監視単位 | 向いているケース |
|---|---|---|
| AWSサービス | サービス別(EC2、S3など) | シンプルに全サービスを監視したい |
| 連結アカウント | Organizationsのメンバーアカウント別 | マルチアカウント環境を一元管理したい |
| コストカテゴリ | 自分で定義したコストカテゴリ | 部門別・システム別にコストを分類している |
| タグ | リソースタグ(例: Project=dev) | プロジェクト単位・環境単位で監視したい |
設定手順(AWSコンソール操作)
1. コスト異常モニターを作成する
AWSマネジメントコンソールで「Cost Management」サービスを開き、左メニューの「Cost Anomaly Detection」を選択します。初めて開くと「開始方法」の画面が表示されます。
「モニターを作成」をクリックし、以下を設定します。
・モニタータイプ: AWSサービス(まずはこれから始めると迷いません)
・モニター名: 識別しやすい名前(例: aws-service-monitor)
設定したら「次のステップ」へ進みます。
# AWS CLIでモニターを作成する場合 aws ce create-anomaly-monitor \ --anomaly-monitor '{ "MonitorName": "aws-service-monitor", "MonitorType": "DIMENSIONAL", "MonitorDimension": "SERVICE" }'
2. アラートサブスクリプションを設定する
モニターを作成したら、異常を検知したときの通知先としきい値を設定します。
・サブスクリプション名: 任意(例: cost-alert)
・しきい値: 金額ベース(例: $20以上の異常のみ通知)または割合ベース(例: 50%以上の増加)
・通知先: メールアドレスを直接入力するか、SNSトピックを指定
・通知頻度: 即時/毎日/毎週から選択
しきい値の設定は環境によって異なりますが、最初は$20〜$50程度から始めると通知が多すぎず使いやすいです。
# AWS CLIでサブスクリプションを作成する場合 # MONITOR_ARNは手順1で作成したモニターのARNに置き換える aws ce create-anomaly-subscription \ --anomaly-subscription '{ "SubscriptionName": "cost-alert", "MonitorArnList": ["MONITOR_ARN"], "Subscribers": [ { "Address": "your-email@example.com", "Type": "EMAIL" } ], "Threshold": 20, "Frequency": "DAILY" }'
3. 通知頻度の選択
通知頻度は3種類あります。
・即時(IMMEDIATE): 異常を検知したその日のうちに通知。コストへの影響を最小化したい本番環境向け。
・毎日(DAILY): 1日1回、当日検知した異常をまとめて通知。実務で最もバランスが取れた設定。
・毎週(WEEKLY): 週1回まとめて通知。継続的な監視というより、定期レビュー用の設定。
本番環境では「即時」または「毎日」を強くお勧めします。「毎週」は通知の遅れが大きく、被害が拡大してから気づく可能性があります。
料金の仕組み(コスト感覚)
Cost Anomaly Detection自体の利用料金は無料です(2026年3月時点)。追加費用が発生するケースは以下の2点のみです。
・SNSトピック経由の通知: メール送信は実質無料、SMS送信は1件あたり数円程度の料金が発生します。
・AWS Cost Explorer API: Cost Anomaly Detectionの内部ではCost Explorer APIが使われており、APIコール1件あたり$0.01の費用が発生することがあります。通常の運用では月数十円程度で収まります。
「使ってみたいけどコストが心配」という理由で導入をためらう必要はありません。コスト管理ツールが実質無料で使えるのは、AWSのコスト最適化施策の中でも特に費用対効果が高い選択肢のひとつです。
実務で差がつく応用Tips
タグモニターで開発環境を個別監視する
本番環境と開発環境のコスト監視を分けたい場合は、タグモニターが有効です。たとえば Env=dev タグを持つリソースだけを監視するモニターを作ることで、開発者が誤って大量のリソースを起動したケースを早期に検知できます。開発環境のコスト超過は本番より発覚が遅れがちなので、タグ単位の監視は特に効果的です。
AWS BudgetsとセットでW型の防衛線を張る
Cost Anomaly Detectionは「パターンの変化(急増・急減)」の検知が得意ですが、「月の絶対額が上限を超えないようにする」という用途にはAWS Budgetsが向いています。両方を組み合わせることで、短期的な異常(Anomaly Detection)と長期的な予算超過(Budgets)の両方をカバーできます。この2つはコスト管理の必須セットと考えてください。
SNS+LambdaでSlack通知にする
メールは見落としがちです。SNSトピックとAWS LambdaをつなぎSlackやMicrosoft Teamsに転送するパターンが現場では多く採用されています。Lambda関数でSNSイベントを受け取り、Incoming Webhookに転送するだけのシンプルな実装で、アラートをチーム全員が確実に確認できる環境を作れます。
Organizationsを使ったマルチアカウント一元管理
AWS Organizationsのマルチアカウント構成では、管理アカウントからすべてのメンバーアカウントのコスト異常を一元的に監視できます。連結アカウントモニターを使えば、アカウントごとに個別設定する手間が省け、組織全体のコスト管理が格段に効率化されます。本番・開発・ステージングを別アカウントで分離しているチームには特に有効です。
Linuxサーバーのリソース監視については、姉妹サイトLinuxMaster.JPでも詳しく解説しています。クラウド上のEC2監視との比較にも役立ててください。
よくあるトラブルと対処法
「設定したのにアラートが全く来ない」
機械学習モデルの精度には一定量のデータが必要です。AWSアカウントを作成して日が浅い場合、少なくとも10日〜2週間分のコストデータが蓄積されるまでは正確な検知が難しい状態です。新しいアカウントや使用頻度が低いアカウントでは、しばらく様子を見てください。
「通知が多すぎて逆にノイズになっている」
しきい値が低すぎる場合によく起こります。たとえば$5以下の小さな変動まで検知する設定にしていると、日常的なコスト変動でも頻繁に通知が届きます。まず$20〜$50程度から始めて、実際の通知頻度を見ながら調整するのが現実的です。
「異常として検知されたが意図的な操作だった」
キャンペーンや大型リリースで意図的にリソースを増強した場合、それが異常として検知されることがあります。Cost Anomaly Detectionの管理画面から「フィードバックを送信」機能を使って「この異常は予想の範囲内でした」と登録することで、モデルが学習して将来の誤検知を減らせます。
本記事のまとめ
| 項目 | 内容 |
|---|---|
| サービス名 | AWS Cost Anomaly Detection |
| 料金 | 無料(SNS/Cost Explorer APIは微額) |
| 設定の手間 | 少ない(モニター+サブスクリプションの2ステップ) |
| 得意なこと | コストパターンの変化(急増・急減)を自動検知 |
| 苦手なこと | 月の絶対的な予算上限の管理(→AWS Budgetsを使う) |
| 組み合わせ推奨 | AWS Budgets、Cost Explorer、Slack通知(SNS+Lambda) |
コスト管理は「予算を設定したら終わり」ではありません。クラウドはリソースが柔軟に増減するからこそ、予期しないコスト変動を早期に検知する仕組みが欠かせません。Cost Anomaly Detectionは設定が簡単で費用もほぼかからないため、今すぐ有効化することをお勧めします。
AWS BudgetsやCost Explorerとの併用で、クラウドコストの「見える化と早期対処」の体制を整えましょう。
AWSのコスト管理、まだ月次チェックだけで済ませていませんか?
クラウド実務に役立つ「Cost Optimization」カテゴリの記事を他にもまとめています。あわせて読みたい関連記事はこちらからどうぞ。