Quick Guide to AWS Budgets: Tutorial and Best Practices
What Are AWS Budgets?
AWS Budgets enables you to create custom budgets to track AWS costs and usage. Once you set this up, you can get email alerts or SNS notifications. You can set alerts to notify you:
- When forecasted or actual usage and cost exceed the budget threshold.
- When actual Reserved Instances and Savings Plans coverage or utilization drops below the desired threshold.
AWS Budget Actions enable you to configure actions in response to usage and cost status. If a threshold exceeds, actions are executed—automatically or with human approval—to reduce over-spending.
AWS Budgets integrates with various AWS services, including:
- AWS Cost Explorer—enables you to easily view and analyze cost and usage drivers.
- AWS Chatbot—delivers Budget alerts in a designated Slack channel or Amazon Chime room.
- AWS Service Catalog—lets you track costs on approved AWS products and portfolios.
In this article:
- Managing Your Costs with AWS Budgets
- Tutorial: Creating a Budget
- Best Practices for AWS Budgets
- Using Managed Policies
- Setting Budget Alerts
- Controlling Access to AWS Budgets
- Optimize AWS Costs and Budgets with Spot by NetApp
Managing Your Costs with AWS Budgets
There are several budget types you can create in AWS Budgets:
- Cost—set your expected expenditure on each service.
- Usage—set your expected usage of one or several services.
- RI utilization—set a threshold for reserved instance utilization to track underused or unused RIs.
- RI coverage—set an RI coverage threshold to detect when you have fewer instance horses covered by reserved instances.
- Savings plan utilization—set a threshold to track underused savings plans.
- Savings plan coverage—set a threshold to track the coverage of your savings plans and identify underutilized available instance usage.
You can configure alerts to notify you when you fall below, exceed, or are about to exceed your specified budgets.
There are several ways to set your usage or costs budget:
- Fixed budget—monitor a fixed budgeted amount over all periods.
- Planned budget—monitor different amounts based on quarterly or monthly budgets. You can plan your budget for up to a year (4 quarters/12 months), after which the last planned budget will become a fixed budget.
- Auto-adjusted budget—dynamically set your budgeted amount based on usage or spending over a specified time range. The time range you choose is the baseline for auto-adjusting the budget, with AWS Budgets calculating the budget for each period based on your baseline. Choosing the right time range for your expected usage or costs is important to avoid receiving too few or too many alerts.
Related content: Read our guide to AWS cost optimization
Tutorial: Creating a Budget
When you create a budget, you first need to choose your monthly target budget value. You can then go to the AWS Budgets console and create the budget based on your chosen value. The objective of a budget is to prevent you from overspending across all the AWS services you use. For this reason, a good first option is to set the cost budget to track your overall spending.
Image Source: AWS
When you set your budget amount, you should specify the following:
- Budget effective date—recurring budget
- Start month—use the default
- Choose how to budget—fixed
- Budgeted amount—enter your chosen value (ideally determined in advance)
Image Source: AWS
Once you’ve set your budget amount, you can choose to apply a scope to the budget to create budgets for specific groups of objects, such as services, accounts, regions, or tags. In this case, the budget will serve as a runaway spending budget to catch high-level overspending, so you do not need to apply any scopes.
Generally, it is best to create separate budgets for each workload you run. Budget scopes can help you monitor aspects such as development and testing costs for new instances or services. Scopes are also useful for setting budgets for specific teams in the organization.
You can set up alerts to receive notifications when your costs reach your specified thresholds. It is important to find the right balance—you need to monitor your spending without receiving too many notifications and causing alert fatigue. A good option is to create two alert thresholds, one that sends email notifications when you reach 50% of the budgeted amount and one that notifies you when you reach 75%.
Image Source: AWS
Best Practices for AWS Budgets
Using Managed Policies
AWS Budgets cannot execute configured actions if you do not set up and assign permissions configured for users and AWS Budgets. AWS provides managed policies to help ensure your actions work as intended. Here are the two main policies:
- User policy—ensures the user can pass a role to the Budgets service.
- Budgets policy—enables the Budgets service to execute your action.
AWS recommends using identity and access management (IAM). It helps avoid updating existing IAM policies for AWS Budgets every time new functionality is included. AWS adds new capabilities to your managed policy by default.
Setting Budget Alerts
You can configure the system to send Budget alerts to up to ten email addresses. It is restricted to one Amazon Simple Notification Service (Amazon SNS) topic per alert. It lets you set budgets to alert against actual or forecasted values. Here is how this works:
- Actual alerts—the system sends actual alerts once per budget period when the budget first reaches a certain threshold.
- Forecast-based budget alerts—the system sends these alerts on a per-budget period basis. It may push an alert more than once during a budgeted period when the forecasted values exceed or go below. AWS requires about five weeks of usage data to create budget forecasts.
Controlling Access to AWS Budgets
You can enable IAM users to create budgets in your AWS Billing and Cost Management console by providing IAM users with the following privileges:
- Viewing billing information
- Creating Amazon SNS notifications
- Creating Amazon CloudWatch alarms
AWS lets you create budgets programmatically using the Budgets API. When you configure access to this API, you need to create a unique IAM user for programmatic access. It helps define more precise access controls between the API and roles in the organization with access to the AWS Budgets console. You can give multiple IAM users query access to the API by creating a programmatic access IAM role for each user.
Related content: Read our guide to AWS cost savings
Optimize AWS Costs and Budgets with Spot by NetApp
While AWS offers Savings Plans, RIs and spot instances for reducing EC2 cost, these all have inherent challenges:
- Spot instances can be 90% less expensive than on-demand instances, however, as spare capacity, AWS can reclaim those instances with just a two minute warning, making them less than ideal for production and mission-critical workloads.
- AWS Savings Plans and RIs can deliver up to 72% cost savings, but they do create financial lock-in for 1 or 3 years and if not fully utilized can end up wasting money instead of saving it.
Spot by NetApp addresses these challenges, allowing you to reliably use spot instances for production and mission-critical workloads as well as enjoy the long-term pricing of RIs without the risks of long-term commitment.
Key features of Spot by NetApp’s cloud financial management suite include:
- Predictive rebalancing—identifies spot instance interruptions up to an hour in advance, allowing for graceful draining and workload placement on new instances, whether spot, reserved or on-demand.
- Advanced auto scaling—simplifies the process of defining scaling policies, identifying peak times, automatically scaling to ensure the right capacity in advance.
- Optimized cost and performance—keeps your cluster running at the best possible performance while using the optimal mix of on-demand, spot and reserved capacity.
- Enterprise-grade SLAs—constantly monitors and predicts spot instance behavior, capacity trends, pricing, and interruption rates. Acts in advance to add capacity whenever there is a risk of interruption.
- Serverless containers—allows you to run your Kubernetes and container workloads on fully utilized and highly available compute infrastructure while leveraging spot instances, Savings Plans and RIs for extreme cost savings.
- Intelligent and flexible utilization of AWS Savings Plans and RIs—ensures that whenever there are unused reserved capacity resources, these will be used before spinning up new spot instances, driving maximum cost-efficiency. Additionally, RIs and Savings Plans are fully managed from planning and procurement to offloading unused capacity when no longer needed, so your long-term cloud commitments always generate maximum savings.
- Visibility and recommendations—lets you visualize all your cloud spend with the ability to drill-down based on the broadest range of criteria from tags, accounts, services to namespaces, annotations, labels, and more for containerized workloads as well as receive cost reduction recommendations that can be implemented in a few clicks.
Learn more about Spot by NetApp’s cloud financial management solutions