← All Articles

Budget Actionで予算超過しないようにする。

Posted on

はじめに

EC2やRDSの停止を忘れたため、請求金額の高さに驚くことがあります。

AWS Budgetsで予算を設定して、予算超過したときにはRDSを停止してもらえるようにしたので 手順をまとめておきます。

やること

BudgetActionを実行するためのIAMロールを作成した後、 予算設定とRDSを停止するためのアクションを設定します。

やってみた。

1) BudgetAction用のIAMロールを作成する。

Budgetを信頼したIAMロールを作成します(BudgetActionRole)。 信頼ポリシーとアクセス許可ポリシーは下記の通りです。

■信頼ポリシー

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "budgets.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

■アクセス許可ポリシー

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeInstanceStatus",
        "ec2:StartInstances",
        "ec2:StopInstances",
        "iam:AttachGroupPolicy",
        "iam:AttachRolePolicy",
        "iam:AttachUserPolicy",
        "iam:DetachGroupPolicy",
        "iam:DetachRolePolicy",
        "iam:DetachUserPolicy",
        "organizations:AttachPolicy",
        "organizations:DetachPolicy",
        "rds:DescribeDBInstances",
        "rds:StartDBInstance",
        "rds:StopDBInstance",
        "ssm:StartAutomationExecution"
      ],
      "Resource": "*"
    }
  ]
}

2) Budgetsのコンソールを開いて[予算を作成]をクリックする。

20210222-1

3) [コスト予算]を選んで[予算を設定]をクリックする。

ここでは、単純なコスト予算を選びます。

4) 予算の名前と予算額を決める。

ここでは予算名を[月額予算]として、予算額は[$5]とします。 その他はデフォルトのままとします。

20210222-2

20210222-3

4) 予算のしきい値を決める。

実際のコストか予測コストか決められます。 予算をこえたらアクションをしてほしいので実際のコストを選びます。

20210222-4

5) 通知を設定する

閾値を超えたときの通知先を設定します。

6) 予算アクションを追加する。

画面の下にある[予算アクションを追加]をクリックしてアクションを追加できるようにします。

7) 予算アクションを選択する。

IAMロールに1)で作成したロールをえらんで アクションタイプは[Automate instances to stop for EC2 or RDS]を選択します。 あとはRegionやインスタンスIDが選べるので適宜設定します。 設定が完了したら[予算の確認]をクリックします。

20210222-5

8) 設定内容を確認後に作成する。

確認画面に遷移して問題がなければ[作成]をクリックする。

20210222-6

9) 予算が追加されたことを確認する。

作成した予算が追加されているので確認します。

20210222-7

まとめ

予算を超えたらRDSを停止できるように設定しました。

RDSのインスタンスIDを選ばないといけないため、 新規にRDSを追加したら忘れずに更新が必要になります。

参考サイト

AWS Budget action で予算を超えたAWSアカウントに制御アクションを実行する

技術AWSBudgets