Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

Using AWS for Free: Setting up alerting so you never pay a dime

Want to use AWS's Free Tier offering without getting slammed with an unexpected bill? Here's how to set up alerts so the free tier stays free.

Apr 15, 2024 • 5 Minute Read

Please set an alt value for this image...

We're all friends here, so let's have an honest, heart-to-heart conversation. AWS billing can be difficult and confusing for a majority of people.

Controversial and groundbreaking statement, I know. (sarcasm detected?)

The Problem

Let's set the scene...

You're exploring public cloud vendors so that you can practice upskilling your skill sets. You see a wonderful advertisement of Free Tier usage for some of the most common services that AWS has to offer. This is perfect! You're sold! Let's get to building some apps on the cloud!

Fast forward three months...

You have become an AWS Senpai. You can conquer almost all things cloud. There is nothing that can stump you within your dojo of Amazon Web Services. Until... a hefty surprise bill appears!

You completely forgot to spin down some resources that fell within your Free Tier offering. Maybe you left an Amazon EC2 instance running in a Region you forgot to clean out. Or maybe you have an Amazon RDS instance running that you forgot to take a snapshot of and delete before your limit was reached. All of these are real-world, commonly occuring examples of things that people just simply forget to take care of.

What Can You Do About It?

Well, I am glad you asked! We have some great news for you. This scenario we just walked through is actually avoidable.

Lucky for us, AWS actually provides us several built-in services and features that you can use to monitor and alert on your cloud spend. The best part about it all is that several of them are free! This time we actually mean free for life, by the way.

Some select examples of these services include:

  • AWS Cost Explorer
  • AWS Cost and Usage Reports
  • AWS Budgets

This article is actually going to expand on using that last service, AWS Budgets, to create monitoring and alerting for your AWS accounts. More specifically, how to create a budget and alert anytime that your spend is forecasted to, or already has breached the AWS Free Tier limits.

Creating the Budget

Let's actually work through creating your AWS Budget in order to ensure you do not breach your AWS Free Tier by a surprising amount.

1. Ensure You Have Permissions

The first thing we need to do is ensure that the IAM Role or IAM User actually has the correct IAM permissions to even begin viewing and modifying budgets.

Any IAM entity that is going to leverage this service, at minimum, should have the following IAM permissions attached to them:

  • budgets:CreateBudgetAction
  • budgets:ModifyBudget
  • budgets:UpdateBudgetAction
  • budgets:ViewBudget
  • budgets:DescribeBudgetAction
  • budgets:DescribeBudgetActionsForBudget
  • iam:PassRole (needed for budget actions)

The permissions above allow the person to actually navigate the service, and successfully create their required budget. Be careful to review these when implementing them!

2. Navigate to AWS Budgets

Now, you can get to AWS Budgets in many different ways. Here are two of those methods.

Method One

The first method is via the dropdown menu on the top right of the console view:

From here, on the left-hand side, we can locate and select Budgets from the menu:

Method Two

The other main way to get to the AWS Budgets is to simply search for it, and then select it from the menu:

3. Create Your Budget

Once you get to the AWS Budgets dashboard, you will see a list of existing budgets if you have some; but, I am going to go ahead and guess you don't have any, thus why we are walking through this blog post!

Let's go ahead and find and select Create budget within the dashboard:

Choosing the Budget Type

After you complete that step, we get to the first portion of creating our budget: Choosing the budget type.

Now, you can definitely go ahead and select a template version to simplify things if you wanted to. And, if you do, by all means, feel free to do that really quickly and you are done. But, for those who want to learn a little bit more about how to configure and use this feature, let's go ahead and choose Customize (advanced):

Once here, we can select the actual budget type that we want to monitor. For this use case, we want to use the recommended type, Cost budget:

4. Configure Your Budget Details

Naming Our Budget

After clicking Next, let's go ahead and work on giving our budget an awesome name:

Setting Budget Amount

After naming our budget, we can begin setting the budget amount that we can to actually monitor for. In this case, there are several configuration items we want to disucss:

Period: How often you want the budget to reset the actual and forecasted spend. This can be Daily, Monthly, Quarterly, or Annually. For our use, we can use Monthly.

Budget renewal type: Do you want this to renew? Recurring budgets reset after the budget period. Expiring budgets are a one-time budget that do not reset after the budget period. We will choose recurring.

Start month: A little self-explanatory, but this is the month and year that you actually want this budget to begin monitoring. If you choose an expiring budget, you also choose the end date.

Budgeting method: The way that you want your budget amount to be determined each budget period. There is Fixed, Planned, and Auto-adjusting. We won't dive into this too deep here, so if you are interested, be sure to check out our Cost Control on AWS course to learn more about these options. For this tutorial, let's choose Fixed.

Enter your budgeted amount ($): How much money you want to set as your budget amount for the period selected. For our case, we will put 1.00, which is more than enough to alert us.

Setting Budget Scope

After getting your budget named, and your details set regarding period and budget amount, you can now set a scope.

For this walk-through, we will select All AWS services (Recommended). This will help us monitor every single service within our AWS account, regardless of it being a free tier service or not. We also want to ensure we select Unblended costs under the advanced options section. If you want to learn more about the other cost dataset types, as well as some of the supported charge types, again, our Cost Control on AWS course dives into these a bit deeper. For now, we will continue onward!

5. Setting Your Thresholds

Now that we have our primary details configured and set up, let's work on setting our threshold amounts! Find and select Add an alert threshold:

From there, you can begin to set your desired alerting details. Let's discuss each section as we work through them!

Threshold: This will be the amount that must be reached for you to be notified. You can use either absolute value or a percentage. For us, we want to set an absolute value of 0.01. This allows us to alert on just a single penny (USD) of us going above the free tier offering.

Notification preferences: Here we can choose how we want to send a budget alert. The default, free offering, is to use email notifications. There are other choices, as you can see in the image, however, we are not going to discuss those here. For this, let's use email, and input the desired email address that you want to actually receive the budget alert. Notice you can use up to 10 emails for free.

5. Set Optional Actions

One of the neat features that are offered within AWS Budgets is the ability to add an action item based on the alerts you created. You can use it to automatically stop specific EC2 or RDS instances within different Regions, attach an IAM policy to specific IAM entities to restrict further actions, or even apply an Organzation Service Control Policy to implement a guardrail throughout an organization.

Below is a snippet of one example action where we do the following:

  1. Set our IAM role that can perform the actions
  2. Select the action type
  3. Choose the sub-action based on our action type from the previous step
  4. Choose our AWS Region
  5. Choose the EC2 or RDS instance (based on our selection from above)
  6. Select if we want to automatically run this action
  7. Choose how we want to be alerted when this action runs

For this, we will not add an action, as it is not required.

6. Finish Up

After setting optional actions, we can go ahead and review our budget, and then create it! After you create it, the budget will be listed in the Overview screen under Budgets.

From here you can review, modify, or delete your budget as desired!

Wrapping Up & Next Steps

There you go! You have now created a simple budget using AWS Budgets in order to monmitor and alert on any breach of the AWS Free Tier offering. You should now receive an email notification whenever the forecasted amount breaches that $0.01 threshold amount we set earlier on in the process.

If this sparked your interest into the cost management and billing world of AWS, and you want to learn a little bit more about using some to the other built-in services and features, then be sure to check out the all new Cost Control on AWS course on our platform!

Until next time, keep being awesome!