この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
いわさです。
予算設定を行うことが出来る AWS Budgets にて、テンプレートを使って簡単に予算アラートを設定することが出来るようになりました。
本日時点ですべてのリージョンで利用出来るようになっていますので確認してみます。
通常どおり予算作成を行い最初に選択するだけ
利用方法は簡単です。
コンソールから通常どおり「予算を作成」を選択し予算タイプの選択に進みます。
ここで「カスタマイズ(アドバンスト)」を選択すると、従来と同じく細かくカスタマイする設定方法が引き続き利用可能です。
ここで「テンプレートを使用(シンプル)」を選択すると次のように3つのテンプレートを選択し、メールアドレスを入力するだけで予算作成が出来るようになりました。
テンプレートから作成した場合でも、作成されるものはカスタム(アドバンスト)から作成されるものと同じです。
また、以下の「カスタム」を選択するとテンプレートを選択した場合でもその設定値やテンプレート構成を引き継ぎつつ細かい設定を変更することも可能です。
本日時点で次の 3 つのテンプレートが提供されています。
ゼロ支出予算
こちらは E メール受信者のみを入力します。
作成される予算としては、実際コストが $0.00 がしきい値になったアラートです。
月次コスト予算
月次コストの場合は予算額を入力します。
作成される予算は 3 つのアラートが自動で作成されます。
- 予算額の 85% (実際コスト)
- 予算額の 100% (予測コスト)
- 予算額の 100% (実際コスト)
日次の Savings Plans のカバレッジ予算
Savings Plans カバレッジは従来でいう「Savings Plans の予算」と同じもです。
テンプレートのインプットとしてはカバレッジのしきい値を入力します。
以下のように Saving Plans カバレッジのしきい値が設定された予算が作成されます。
JSON でテンプレートをダウンロードする
テンプレート利用画面の下部で先程「カスタム」を選択しましたが「JSON」を選択すると入力中の状態のテンプレートをダウンロードすることが出来ます。
以下 2 つのテンプレートがダウンロードされます。
budget.json
{
"BudgetLimit": {
"Amount": "1",
"Unit": "USD"
},
"BudgetName": "My Zero-Spend Budget",
"BudgetType": "COST",
"CostFilters": {},
"CostTypes": {
"IncludeRefund": false,
"IncludeCredit": false,
"IncludeUpfront": true,
"IncludeRecurring": true,
"IncludeOtherSubscription": true,
"IncludeTax": true,
"IncludeSupport": true,
"IncludeDiscount": true,
"IncludeSubscription": true,
"UseAmortized": false,
"UseBlended": false
},
"TimePeriod": {
"Start": 1661990400000,
"End": 3706473600000
},
"TimeUnit": "Monthly"
}
notifications-with-subscribers.json
[
{
"Notification": {
"ComparisonOperator": "GREATER_THAN",
"NotificationType": "ACTUAL",
"Threshold": 0,
"ThresholdType": "ABSOLUTE_VALUE"
},
"Subscribers": {
"0": {
"SubscriptionType": "EMAIL",
"Address": "hoge@example.com"
}
}
}
]
このファイルは AWS CLI のCreateBudget
で入力パラメータとして使うことが出来ます。
CLIでやってみるがエラーになった
ただし、本日時点では出力される JSON の形式と AWS CLI の入力形式が一致していないような感じで取り込もうとすると以下のエラーが発生します。
- Invalid type for parameter Budget.TimePeriod.Start, value: 1661990400000, type: , valid types: , timestamp-string
An error occurred (ValidationException) when calling the CreateBudget operation: 1 validation error detected: Value 'Monthly' at 'budget.timeUnit' failed to satisfy constraint: Member must satisfy enum value set: [ANNUALLY, MONTHLY, QUARTERLY, DAILY]
Invalid type for parameter NotificationsWithSubscribers[0].Subscribers, value: OrderedDict([('0', OrderedDict([('SubscriptionType', 'EMAIL'), ('Address', 'hoge@example.com')]))]), type: , valid types: ,
JSON ファイルを少し修正して取り込む
ここではCreateBudget
の入力形式に従って、ダウンロードされた JSON ファイルを少し加工しました。
budget.json の TimePeriod, TimeUnit の見直しと、notifications-with-subscribers.json では Subscribers を JSON リスト形式に直しました。
budget.json
{
"BudgetLimit": {
"Amount": "1",
"Unit": "USD"
},
"BudgetName": "My Zero-Spend Budget",
"BudgetType": "COST",
"CostFilters": {},
"CostTypes": {
"IncludeRefund": false,
"IncludeCredit": false,
"IncludeUpfront": true,
"IncludeRecurring": true,
"IncludeOtherSubscription": true,
"IncludeTax": true,
"IncludeSupport": true,
"IncludeDiscount": true,
"IncludeSubscription": true,
"UseAmortized": false,
"UseBlended": false
},
"TimeUnit": "MONTHLY"
}
notifications-with-subscribers.json
[
{
"Notification": {
"ComparisonOperator": "GREATER_THAN",
"NotificationType": "ACTUAL",
"Threshold": 0,
"ThresholdType": "ABSOLUTE_VALUE"
},
"Subscribers": [
{
"SubscriptionType": "EMAIL",
"Address": "hoge@example.com"
}
]
}
]
あとは以下のように取り込むことが出来ます。
% aws budgets create-budget --account-id 123456789012 --budget file://budget.json --notifications-with-subscribers file://notifications-with-subscribers.json --profile hoge
さいごに
本日は AWS Budgets で 1-Click テンプレートが使えるようになっていたので使ってみました。
出来ることが増えたわけではないのですが AWS の利用を開始してまず初めに設定したいのが予算だと思いますので、まずは AWS に慣れていない方も簡単な設定ですぐに使い始められるようにするとても良い機能だと思いました。