AWS Budgets
Cost, usage, Savings Plans, and reservation budgets: actual and forecasted alerts, notifications through email, SNS, and chat, budget actions that apply IAM policies or SCPs or stop instances, access, and pricing.
7 min read · Last reviewed · SAA-C03
Sign in to bookmark tutorials and track what you have read.
On this page
What it is
AWS Budgets lets you set a limit on cost or usage and get an alert when your actual spend, or your forecasted spend, crosses it. A budget can also run an action for you, such as applying a policy that stops anyone from launching more resources.
Where Cost Explorer helps you analyze what you spent, Budgets helps you control it. It is the usual answer when a question asks how to be warned before the bill goes over a limit.
Budget types
| Budget type | It tracks | Alerts when |
|---|---|---|
| Cost budget | Spend in dollars | Actual or forecasted cost exceeds the threshold |
| Usage budget | Usage of a service, such as EC2 hours or GB stored | Actual or forecasted usage exceeds the threshold |
| Savings Plans utilization | How much of your Savings Plans commitment you use | Utilization falls below the target |
| Savings Plans coverage | How much eligible usage your Savings Plans cover | Coverage falls below the target |
| Reservation utilization and coverage | The same, for RI (Reserved Instance)A billing discount for committing to an instance type in a Region or Availability Zone for one or three years. It is not an instance: running instances that match are billed at the lower rate. AWS now recommends Savings Plans instead.Glossary entry | Utilization or coverage falls below the target |
Setting up a budget
- Templates give a quick start, for example a zero spend budget that alerts you as soon as you spend beyond the AWS Free Tier, or a monthly cost budget.
- Period: daily, monthly, quarterly, annually, or a custom range such as a project or fiscal year.
- Budgeting method: fixed (the same amount every period), planned (a different amount each period), or auto-adjusting (the amount follows your recent spending pattern).
- Scope: the whole account or organization, or filtered by service, linked account, AWS RegionA separate geographic area where AWS runs its services, such as us-east-1 in Northern Virginia, made up of several Availability Zones. Most resources live in one Region; you choose Regions for latency, data residency, and the services you need.Glossary entry, tag, cost category, and other dimensions, so each team or project can have its own budget.
- Costs can be tracked as unblended, amortized, or net, and can include or exclude credits, refunds, support fees, and taxes.
Alerts
Each alert has a threshold, as a percentage of the budget or an absolute amount, based on actual or forecasted spend. For example, alert at 80% of actual cost and at 100% of forecasted cost. Alerts go to:
- Email, up to 10 addresses per alert.
- An Amazon SNS topic, which can Fan-outSending one message or event to many receivers at once so that each can process it in parallel, such as an Amazon SNS topic delivering to several SQS queues.Glossary entry to other systems. The topic's access policy must allow
budgets.amazonaws.comto publish, and the topic must be in the same account as the budget. - Amazon Q Developer in chat applications, for Slack or Microsoft Teams. If the SNS topic is encrypted, its KMS key policy must let AWS Budgets use the key.
Budget actions
A budget action runs when an alert threshold is crossed, on cost or usage budgets. It can:
- Apply an IAM policy, for example one that denies launching new EC2 instances, to a user, group, or role.
- Apply a SCP (Service control policy)An AWS Organizations policy that sets the maximum permissions for IAM users and roles in member accounts. It grants nothing by itself, and it does not apply to the management account.Glossary entry (SCP) to an account or OU (Organizational unit)A group of AWS accounts inside an organization in AWS Organizations. OUs can contain other OUs, and policies attached to an OU, such as SCPs, apply to every account in it.Glossary entry. Only the management account can apply SCPs.
- Stop specific EC2 or RDS instances in the account. Instances in other accounts cannot be targeted.
An action can run automatically or wait for manual approval. Budgets needs an IAM role that it assumes to run the action.
Security, resilience, performance, and cost
Security
- Single accounts, the management account, and member accounts can all create budgets. Member accounts create their own budgets but cannot change other accounts' budgets.
- The management account can create budgets that track any member account's costs; a member account sees such a budget only if it has access to the management account.
- IAM policies control who can view, create, and edit budgets, and which role a budget action may use.
Resilience and performance
- Budget data is updated up to three times a day, usually 8 to 12 hours apart, and billing data itself can lag behind usage. Spend can pass a threshold before the alert arrives, so set thresholds with some margin, and use forecasted alerts to warn early.
- For unexpected spikes rather than known limits, add AWS Cost Anomaly Detection.
Cost
- Budgets that only monitor and send notifications are free.
- Action-enabled budgets: the first two each month are free, then $0.10 per budget per day.
- Budget reports, emailed daily, weekly, or monthly, cost $0.01 per report.
Monitoring
- The Budgets page shows each budget's actual and forecasted amounts, alert status, and actions waiting for approval.
- Budget reports email the status of chosen budgets to stakeholders on a daily, weekly, or monthly schedule.
- Each action's history shows when it ran and whether it is waiting for approval; you can reverse an action that has run.
Budgets or another tool?
| If the requirement is | Choose |
|---|---|
| Be alerted before monthly spend exceeds a limit | AWS Budgets with a forecasted alert |
| Stop new resources being launched when the limit is reached | Budget action applying an IAM policy or SCP |
| Know when Savings Plans are underused | Savings Plans utilization budget |
| Be told about an unusual spike, with no fixed limit | AWS Cost Anomaly Detection |
| Analyze what drove last month's costs | AWS Cost Explorer |
| Alarm on a CloudWatch metric, such as estimated charges | CloudWatch billing alarm |
A CloudWatch billing alarm watches the EstimatedCharges metric, which is published only in US East (N. Virginia) and covers charges in every Region, so create the alarm there whichever Region your workloads run in. First turn on Receive CloudWatch Billing Alerts in Billing preferences (in the management account, for an organization). The alarm fires on actual charges only, not forecasts.
Reverse mindmap: when the question points here
- Yes, when the question says
- Alert when spend is forecasted to exceed a limit leads to Cost budget with a forecasted alert
- Each team gets its own spending limit leads to Budget filtered by tag or cost category
- Alert as soon as anything beyond the Free Tier is charged leads to Zero spend budget
- Notify finance in Slack leads to Amazon Q Developer in chat applications
- Act automatically
- Deny launching resources once the limit is reached leads to Budget action applying an IAM policy
- Restrict a whole member account leads to Budget action applying an SCP
- Stop development instances at the limit leads to Budget action targeting EC2 or RDS
- A person must approve first leads to Action with manual approval
- Watch commitments
- Savings Plans not fully used leads to Savings Plans utilization budget
- Too much usage still On-Demand leads to Savings Plans coverage budget
- No, when the question says
- Explore and forecast costs in charts leads to AWS Cost Explorer
- Machine learning finds unusual spend leads to Cost Anomaly Detection
- Detailed line items in S3 leads to Cost and Usage Report
- CloudWatch alarm on estimated charges leads to Billing alarm on EstimatedCharges in us-east-1
Key takeaways
- Budgets alerts on actual or forecasted cost and usage, and on Savings Plans and reservation utilization and coverage.
- Alerts go to email, SNS (the topic must allow
budgets.amazonaws.com), or chat applications. - Budget actions apply IAM policies or SCPs, or stop EC2 and RDS instances, automatically or after approval.
- Data updates up to three times a day, so alerts can lag behind spend.
- Monitoring budgets are free; action-enabled budgets beyond the first two cost $0.10 a day each.
Sources
- AWS Cost Management User Guide: Managing your costs with AWS Budgets
- AWS Cost Management User Guide: Creating a budget
- AWS Cost Management User Guide: Using a budget template
- AWS Cost Management User Guide: Creating a cost budget
- AWS Cost Management User Guide: Configuring budget actions
- AWS Cost Management User Guide: Configuring a budget action
- AWS Cost Management User Guide: Reviewing and approving your budget action
- AWS Cost Management User Guide: Setting up a role for AWS Budgets to run budget actions
- AWS Cost Management User Guide: Creating an Amazon SNS topic for budget notifications
- AWS Cost Management User Guide: Getting started with AWS Cost Anomaly Detection
- Amazon CloudWatch User Guide: Create a billing alarm to monitor your estimated AWS charges
- AWS Budgets pricing