以前にAWSの請求アラートをAWS CLIで設定する記事を書きました。
請求アラートを設定することで、思わぬコスト増の抑制になりますが、細かい設定に対応できません。 例えば、
- 特定のリソース(S3など)だけに絞って請求アラートを設定したい
- タグ付けしたリソースに対して請求アラートを設定したい
- 予測額に対して請求アラートを設定したい
- 四半期や年単位で予算額を超えたら通知してほしい
といった要望に対して従来の請求アラートでやろうとしたらかなり面倒になっていたかと思います。
AWS Budgetsはそうした要望に答えるためのサービスだといえます。
AWS Budgets によって、上記のような細かい設定だけではなく、ダッシュボードから予算額が超えそうかどうかも推測値から判断可能になります。
https://aws.amazon.com/aws-cost-management/aws-budgets/ のサンプルから
予算タイプを決める
予算タイプには、コスト、使用量、RI 使用率、RI Coverageの4種類があります。
コストは予算金額を設定します。使用量はリソースに対するものです。
フィルタを使って最適な予算を設定する
予算設定するにあたってフィルタの設定が必要不可欠です。
フィルタの種類が豊富なので以下を組み合わせることで細かい予算が設定できます。
このフィルタは AWS Cost Explorer で設定できるフィルタと同じです。
- サービス
- EC2やS3など特定のサービスだけに絞りたい場合
- タグ
- リソースにタグをつけることで、タグ別に予算設定することができます
- 事前にタグとビリングを紐付ける必要があります -> コスト配分タグの使用 - AWS 請求情報とコスト管理
- 購入オプション
- オンデマンド、スポットインスタンス、リザーブドインスタンス
- インスタンスタイプ
- リージョン
- アベイラビリティーゾーン
- APIオペレーション
- S3へのアップロード(
PutObject
)など特定の操作に対して予算設定したい場合
- S3へのアップロード(
- 使用タイプグループ
EC2: Data Transfer - Internet (Out)
(AWSから外部ネットワークへのアウトバウンド通信に対する料金) など
- 使用タイプ
- 請求エンティティ
- 詳細フィルタ
- 非ブレンド、償却、ブレンド
- 連結AWSアカウントだけど、アカウント毎の予算をきっちりやりたいなら非ブレンドコストがオススメ
- 含められる関連コスト
- 返金、クレジット、前払いの予約料金、定期的な予約料金、そのほかのサブスクリプションコスト、税金、サポート料金
- 予算に対してどこまで含めるかによって関連コストを決定します。純粋なAWS使用量に対する税抜き金額の予算であれば、すべてのチェックを外します
- 非ブレンド、償却、ブレンド
通知をどうするか
通知タイミングは大きく分けて2種類あり、「現行コストに対して」「予測コストに対して」があります。
現行コストは実際に使用した金額に対するもので、従来の請求アラートがこちらに該当します。予測コストはAWSが指定期間内(月間であれば月初から本日まで)の使用量から期間中にかかるコストを予測します。予測額は頻繁に変わる *1 ため、しきい値付近で何度もアラート通知が飛ぶ可能性があります。
通知先は、メールアドレスかAmazon SNSのトピックのいずれかです。Amazon SNSと他のAWSコンポーネント(AWS Lambdaなど)と組み合わせることで、Slack通知できたりします。
最後に
短めですがAWS BudgetsというAWS予算機能の紹介をしました。
事業の予算管理をしている経理担当から個人AWSアカウントで請求アラートを設定したい人にも便利な機能ですが、地味なので意外と知らない人が多い気がします。
ぜひ使ってみてください。
*1:一日数回更新されますが何時頃かはドキュメントに記載はありません