Contents
前提条件と IAM ポリシー
| 項目 | 必要な権限 |
|---|---|
| Cost Explorer の閲覧・有効化 | AWSBillingReadOnlyAccess に加えて、以下の Cost Explorer API が必要です。ce:GetCostAndUsage, ce:Describe* など (ce:*) |
| 予算(Budgets)の作成・編集 | budgets:CreateBudget, budgets:ModifyBudget, budgets:DeleteBudget、および SNS トピックへ通知する場合は sns:Publish が必要です。 |
| SNS トピックの管理(オプション) | sns:CreateTopic, sns:Subscribe, sns:SetTopicAttributes |
推奨 IAM ポリシー例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "BillingAndCostExplorerReadOnly", "Effect": "Allow", "Action": [ "aws-portal:*", "ce:*" ], "Resource": "*" }, { "Sid": "BudgetsManagement", "Effect": "Allow", "Action": [ "budgets:*", "sns:Publish" ], "Resource": "*" } ] } |
ポイント
-AWSBillingReadOnlyAccessのみでは Cost Explorer の有効化に失敗することがあります。上記ポリシーのようにce:*(または必要な個別アクション)を付与してください。
- 本ポリシーは最小権限の観点から、実際に使用しないサービスへのアクセスは除外してカスタマイズすることが推奨されます。
Cost Explorer の有効化
-
AWS コンソールへサインイン
ルートユーザーまたは上記ポリシーが付与された IAM ユーザーで https://console.aws.amazon.com/ にログインします。 -
右上メニューから「Billing」へ遷移
アカウント名(アイコン)をクリック → 「Billing」 を選択。 -
左サイドバーの「Cost Management」>「Cost Explorer」
表示されたページで 「Enable Cost Explorer」 ボタンがあればクリックします。処理は数秒~1 分で完了します。 -
リージョン設定を確認
- 画面右上のリージョンドロップダウンは 「Global(全体)」 がデフォルトです。
- Cost Explorer の集計対象はアカウント単位であり、リージョン選択は UI 表示だけに影響し、実際のコスト算出には関係ありません。
注意:有効化後に「AccessDenied」エラーが出る場合は IAM ポリシーに
ce:*が含まれているか再確認してください。
月次予算(Usage / Cost)を作成する
1. Budgets コンソールへ移動
Billing → Budgets をクリックし、「Create budget」 ボタンを押す。
2. 予算タイプの選択
| タイプ | 用途 |
|---|---|
| Cost budget(コスト予算) | 金額ベースでアラートしたいとき。例:月間 $50 USD 超過防止 |
| Usage budget(使用量予算) | Free Tier のように「利用単位」で閾値を管理したいとき。 |
本手順では、一般的な月次コスト予算の作成方法を示しますが、Free Tier アラートは Usage budget で設定します(後述)。
3. 必須項目を入力
| 項目 | 設定例 |
|---|---|
| Budget name | dev-monthly-budget |
| Period | 「Monthly」 → 開始日を請求サイクルの初日(例:1 日)に設定 |
| Amount | $50 USD(Cost budget の場合) |
| Include taxes, refunds, credits | 必要に応じてチェック。デフォルトは「含めない」 |
4. 保存
入力が完了したら 「Create」 をクリックし、予算が作成されたことを確認します。
閾値と通知先の設定方法
1. 閾値(Threshold)を追加
| 閾値 | 種類 | 推奨シナリオ |
|---|---|---|
| 80 % | Actual cost(実績コスト)または Forecasted cost(予測コスト) | 初期警告。余裕があるか早めに判断 |
| 90 % | 同上 | 最終調整のタイミング |
| 100 % | 同上 | 超過直後の即時通知 |
実績 vs. 予測:実績コストは当月の確定額、予測コストは Cost Explorer が算出した将来予測です。どちらも設定可能なので、用途に合わせて併用してください。
- 予算一覧画面で対象予算を選択 → 「Edit」 → 「Add threshold」
- 「Threshold type」で Actual cost または Forecasted cost を選び、パーセンテージを入力。
- Notification recipients にメールアドレス(カンマ区切り)または SNS トピックを指定。
- 「Save changes」。
2. 通知先の選択肢
| 方法 | 手順概要 |
|---|---|
| メール直接入力 | 「Notification recipients」に alice@example.com, bob@example.com を記入 → 保存 |
| SNS トピック経由 | 事前に SNS コンソールでトピック(例:aws-cost-alerts)を作成し、購読者(メール/Slack 等)を登録。予算設定画面の「Select an existing SNS topic」から対象トピックを選択 → 保存 |
ベストプラクティス:チーム全体で共有したい場合は SNS トピックを利用すると、通知先の追加・削除が一元管理できて便利です。
Free Tier 使用量アラートの作り方
Free Tier は「使用量(Usage)」ベースで評価されるため、Cost budget ではなく Usage budget を作成します。
Billing → Budgets→ 「Create budget」-
Budget type で “Usage” を選択。画面下部に 「Free Tier usage」 のチェックボックスが表示されるのでオンにする。
-
Budget name:例
free-tier-dev - Period:Monthly(デフォルトで毎月リセット)
-
Unit:自動的に Free Tier が提供する単位(例:GB‑Month、vCPU‑Hours 等)が表示されます。
-
閾値を追加
| 閾値 | パーセンテージ |
|---|---|
| 85 % | Add threshold → Percentage: 85 |
| 100 % | Add threshold → Percentage: 100 |
- 通知先 をメールまたは SNS トピックで指定し、「Create」。
重要ポイント
- 「Usage budget」は金額ではなく、Free Tier が提供する「利用単位」で評価されます。したがって、メール本文には「Free Tier の 85 % が消費されました」のように記載されます。
- 無料枠は毎月リセットされるため、予算の Period は必ず Monthly に設定してください。
設定後の確認ポイントとよくあるトラブルシューティング
1. 設定が正しく反映されたかのチェックリスト
| 確認項目 | 手順 |
|---|---|
| Cost Explorer が有効 | Billing → Cost Management → Cost Explorer に「Enable」ボタンが無いことを確認 |
| 予算ステータスが Active | Billing → Budgets の一覧で対象予算のステータス列が “Active” かつ “Last evaluated” が最新日時になっていること |
| テストメールが届くか | 予算作成直後に自動送信されるテスト通知(80 % 未満)を確認。届かなければ SNS/メール設定を再チェック |
| SNS トピックの購読状態 | SNS コンソールで対象トピックのサブスクリプションが “Confirmed” か確認 |
2. よくあるエラーと対処法
| エラーパターン | 原因 | 対策 |
|---|---|---|
| AccessDenied: ce:* が無い | IAM ポリシーに ce:* が欠如 |
前述の「IAM ポリシー例」を適用し、ポリシーを再アタッチ |
| Cost Explorer が無効(UI で Enable が出ない) | アカウントが請求情報をまだ有効化していない | Billing → Preferences で「Receive Billing Alerts」や「Consolidated Billing」の設定を確認 |
| 予算作成時に “Invalid unit” エラー | Usage budget の単位がサービス固有で選択できていない | Free Tier 用は自動的に正しい単位が設定されるので、手動で変更しない |
| SNS 通知が届かない | トピックの購読が “Pending Confirmation” のまま | メールや Slack などの確認リンクをクリックして購読確定 |
| メールがスパムに振り分けられる | 受信側フィルタ設定 | no-reply@aws.amazon.com をホワイトリストに追加 |
3. トラブル発生時のデバッグ手順
- CloudTrail ログで API 呼び出しを確認
CreateBudget,UpdateBudget,Publish(SNS) 等が成功しているか。- IAM ポリシーシミュレーターで権限チェック
- 対象ユーザー/ロールに
ce:*とbudgets:*が許可されていることを検証。 - Cost Explorer のデータ取得確認
- コンソールの Cost Explorer で任意の期間を選択し、グラフが表示されるか。表示されなければ権限または請求情報設定に問題あり。
まとめ
- IAM:
AWSBillingReadOnlyAccessに加えてce:*(Cost Explorer)とbudgets:*を必ず付与する。 - Cost Explorer は Global がデフォルトで、リージョン選択は集計に影響しないことを認識。
- 予算作成 は Cost(金額)か Usage(使用量)かを目的別に選択し、適切な閾値と通知先を設定するだけで自動的に監視が開始される。
- Free Tier アラート は「Usage budget」のテンプレートを利用し、85 % と 100 % の二段階で通知すれば、予期せぬ課金リスクを最小化できる。
- 設定後は テストメール/SNS 通知 を必ず受信し、ステータスが “Active” かつ最新評価日時になっていることを確認する。
これらの手順を実施すれば、AWS のコスト管理と予算アラートが正しく機能し、不要な請求やリソース浪費を防止できます。