日別の料金アラートを IaC で作成してみた

日別の料金アラートを IaC で作成してみた

CloudFormation と Terraform 両方で作ってみました。
Clock Icon2025.05.27

カスタマーサクセス部 運用支援チームのいたくらです。

はじめに

先月、以下のブログを公開しました。
https://dev.classmethod.jp/articles/202504-how-to-create-daily-pricing-alerts/

先日お客様が弊社オフィスに来社され、お話する中で前述のブログの話になり「IaC 化待ってます!!!」とのお言葉を頂いたので、IaC 化しました!

作ってみた

CloudFormation と Terraform の両方を作成してみました。
今回設定する予算アラートの内容は以下です。

予算アラートの内容
  • 期間:日
  • 予算更新タイプ:定期予算
  • 開始日:アラート通知を開始したい日付
  • 予算設定方法:固定
  • 予算額 ($):適宜入力(今回は 1.0)
  • 範囲オプション:すべての AWS のサービス (推奨)
  • コストの集計基準:非ブレンドコスト

CloudFormation

CloudFormation テンプレート
daily-alert.yaml
AWSTemplateFormatVersion: "2010-09-09"

Resources:
  DailyCostBudget:
    Type: AWS::Budgets::Budget
    Properties:
      Budget:
        BudgetName: test-daily-alerts-cfn
        BudgetType: COST
        BudgetLimit:
          Amount: 1.0
          Unit: USD
        TimePeriod:
          Start: 1748304000 # 2025/05/27 00:00:00 UTC のエポック秒
        TimeUnit: DAILY
      NotificationsWithSubscribers:
        - Notification:
            NotificationType: ACTUAL
            ComparisonOperator: GREATER_THAN
            Threshold: 100
            ThresholdType: PERCENTAGE
          Subscribers:
            - SubscriptionType: EMAIL
              Address: example@example.com # アラート通知先のメールアドレス

Terraform

Terraform 設定ファイル
daily-alert.tf
provider "aws" {
  region = "ap-northeast-1"
}

resource "aws_budgets_budget" "daily_cost_budget" {
  name              = "test-daily-alerts-tf"
  budget_type       = "COST"
  time_unit         = "DAILY"
  limit_amount      = "1.0"
  limit_unit        = "USD"
  time_period_start = "2025-05-27_00:00"

  notification {
    comparison_operator = "GREATER_THAN"
    notification_type   = "ACTUAL"
    threshold           = 100
    threshold_type      = "PERCENTAGE"

    subscriber_email_addresses = [
      "example@example.com",
    ]
  }
}

デプロイしてみた

CloudFormation

Windows 11 の WSL2 (Ubuntu 22.04) 上に AWS CLI をインストールし、ローカル環境からコマンドを実行しました。

aws cloudformation create-stack --stack-name test-alert --template-body file://daily-alert.yaml

マネジメントコンソール上で作成されたことも確認できました。
1-2.png

Terraform

Windows 11 の WSL2 (Ubuntu 22.04) 上に Terraform をインストールし、ローカル環境からデプロイを実行しました。

terraform plan
terraform apply

こちらについてもマネジメントコンソール上で作成されたことを確認できました。
2-3.png

あとがき

AWS Budgets を使用した日別料金アラートを IaC を利用して作成する方法のご紹介でした。
CloudFormation の場合は開始日をエポック秒で記載する必要があったので、エポック秒変換サイトを利用しました。
一方、Terraform は人間にも分かりやすい形式でやさしいなと感じました。

この記事がどなたかのお役に立てれば幸いです。

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。
サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.