概要

特定アカウントで閾値を超える課金が発生した場合に通知を受けるBudget設定をCloudFormationで作成しました。

設計

クラウドシェルからシェルスクリプトを実行して、CloudFormationでBudgetsアラートを作成します。
最終的にYAMLテンプレートとシェルスクリプトを公開されたS3に置いて、curlでシェルスクリプトを取得して、アカウントごとにシェルスクリプトをアップロードしなくても、クラウドシェルから1行のコマンドで実行できるようにします。

YAMLテンプレート

AWSTemplateFormatVersion: "2010-09-09" 

Description: "Budget"

Parameters:
  Amount:
    Type: String
    Default: 0.5
    Description: Budgeted amount
  EmailAddress:
    Type: String
    Description: Notification email address
  Actual:
    Type: Number
    Default: 100
    MinValue: 1
    MaxValue: 100
    Description: "% of budgeted amount (Actual Costs)"

Resources:
  Budget:
    Type: AWS::Budgets::Budget
    Properties:
      Budget:
        BudgetLimit:
          Amount: !Ref Amount
          Unit: USD
        TimeUnit: MONTHLY
        BudgetType: COST
      NotificationsWithSubscribers:
        - Notification:
            NotificationType: ACTUAL
            ComparisonOperator: GREATER_THAN
            Threshold: !Ref Actual
          Subscribers:
          - SubscriptionType: EMAIL
            Address: !Ref EmailAddress


全文はこちら:CloudFormationテンプレートをクラウドシェルからワンライナーで実行し、AWS Budgetsを作成する

著者:@y-kob