AWS Builder Center

AWS launched hard spend limits. Here's how they work.

Configure project-level spending restrictions to confidently experiment with new architectures while locking in your price point.

Developer Advocate @ AWS
I spent most of college afraid to start building with AWS.
 
Part of it was just the sheer number of services, but more so, I was scared of the bill. When I was a student learning to use AWS for the first time, I didn't have the intuition to know what services would lead to surprise bills and which ones were free tier friendly. For a student watching every dollar, even when my project was a t3.micro on EC2, that uncertainty kept me from experimenting at all.
 
AWS launched spend limits in September, providing a financial safety net for building on AWS regardless of your use case or level of expertise. I would have absolutely benefited from setting a $20 spend limit in a few clicks when I was learning cloud development. The next best thing is to ensure that others get the experience I wish I had, so I'm sharing this with you all in this article.

What are Spend Limits?

Think of it like buying and attaching a gift card to your Prime account. Rather than purchasing whatever you want and being billed for the cost of the item, it's like using a gift card and buying things until the gift card runs out. Once the "gift card" runs out, Prime wouldn't bill you for something you can't pay for, but would prompt you to add more funds to buy the things you need. Spend Limits work in a similar way -- instead of consistently billing for usage regardless of spend, you can pre-allocate a certain amount of money that AWS is allowed to charge you for your usage, and AWS will freeze your project when your account exceeds your spend limit.
 
That's the part that makes this different from the budgets most people already know. A regular AWS Budget  alert sends you an email when you cross a threshold, whereas a spend limit is more like a gift card with a hard cap.
 
A few things worth knowing up front:
  • Spend limits live at the project level, not the whole account. You can cap one project and leave another running without limits.
  • The limit is a ceiling on your pre-tax costs. It's not a prepayment or a fee, just the line you don't want to cross.
  • Anyone with access to the project can see the limit, but only the project owner can change it.
  • You need to be on a paid plan to set one, and you can apply spend limits to up to 10 projects.
Under the hood, a spend limit is a type of AWS Budget. The difference is what happens when you reach it, which is the whole point.
 
 

Setting the limit: why you can't just type $5

When you set a spend limit, the minimum allowed value is the greater of $20 or a conservative estimate of what you're likely to spend. So you can't cap a busy project at $5 and call it a day.
Hitting a spend limit is disruptive by design, however. If the number were too low, normal week-to-week variation in your usage would trip it constantly, and you'd spend more time reactivating your project than building in it. The minimum exists to make sure the limit only fires when something costs more than expected.
 
The estimate isn't a simple "multiply today's spend by 30" either. AWS looks at your month-to-date spend, the resources you currently have running, and your activity from the prior month. If last month was expensive, that becomes your floor. So if you want to set a lower limit and the recommended minimum looks high, the move is to stop the resources you're not using first, then set the limit.

How to set one

Once you're on a paid plan, it's a few clicks:
  1. Open AWS Settings at https://settings.aws.com` .
  2. In the navigation pane, choose Billing.
  3. Under Cost by project, find Spend limit and choose Set limit for a project.
    1. NOTE: Spend limits are a PAID feature. If your account is on the Free plan, you will have to upgrade to set a spend limit. Don't worry, you'll keep your credits from the free tier offering once you upgrade.
  4. Take the recommended limit, or enter your own custom amount.
  5. Choose Set spend limit.
  6. Optionally turn on the early controls: Receive Warning Notifications, Stop new resource launches, Pause idle resources, or Pause top cost drivers, then save.
 
The limit takes effect immediately. Changing it later is the same path, just hit the pencil icon instead. The full walkthrough lives in the AWS Settings documentation .
 
 

The early controls: three optional guardrails with notifications

The hard limit is your backstop, but AWS gives you three optional controls that kick in before you get there, each one a little more aggressive than the last. You turn them on when you set the limit.
 
Notifications: AWS sends you alerts when your actual costs reach 50%, 75%, and 90% of your limit, and also when you're on track to reach or exceed it within the next 10 days. That last one matters more than it sounds. It's the difference between finding out you have a problem and finding out you're about to have one.
 
Stop new resource launches. About 7 days before you'd hit your limit, new resources stop launching. Everything already running keeps running. AWS does this by applying a service control policy behind the scenes, so in most cases nothing you've built is affected. The one gotcha: if you've got auto-scaling enabled, new instances won't spin up when they otherwise would.
 
Pause idle resources. About 5 days out, AWS pauses resources that aren't doing anything. Your active apps keep running. The "idle" judgment comes from AWS Compute Optimizer, and right now it covers EC2, RDS, and SageMaker endpoints. An EC2 instance gets paused if its peak CPU is under 5% and network traffic is below 5 MB per day over the last two weeks. An RDS database gets paused if it has no connections and low activity over the same window. A SageMaker endpoint gets paused if it had zero invocations in 14 days. These are the resources you forgot about, which, speaking from experience, are usually the ones costing you money.
 
Pause top cost drivers. About 4 days out, AWS pauses your highest-cost active resources, picking from EC2, RDS, Lambda, Bedrock, and SageMaker. This one can genuinely disrupt your app, so it's the heaviest of the three. But if you've ever had a runaway Lambda loop or an unexpected Bedrock spike, this is the control that saves you from the bill.
 
The nice thing about this design is you get to choose how gentle or aggressive you want the ramp to be. Turn on all three and the system eases you down well before the ceiling. Turn on none and you've still got the hard limit as a hard stop.

What happens when you hit the limit

If your usage reaches the limit, AWS pauses the entire project and stops all its resources.
Your data is preserved. To bring the project back, you increase the spend limit in AWS Settings , and the project reactivates. Fair warning: some resources may need a manual restart after that, so it's not always a perfectly clean resume.
 
There's one rule here you really don't want to learn the hard way. If a paused project sits untouched for 90 days, AWS permanently deletes the project data. If you hit your limit and plan to come back to a project later, remember to revisit within 90 days and adjust your spend limit to continue building within that project. AWS will remind you 60, 30, and 2 days prior to project deletion via Email.

Why this matters for people just starting out

I keep coming back to how different this is from the advice we used to give beginners. For years the answer to "how do I not get a surprise bill?" required setting up Budgets, billing alarms, sometimes even a service control policy that blocks new operations when you cross a threshold. Now, all of these have been packaged into a sub-60 second workflow, friendly to beginners and enabling a safe learning environment that's not a sandbox, but something entirely yours. That's the version of the cloud I wish I'd had in college.
 
If you're new to AWS and the bill has been the thing holding you back, go set a spend limit on your next project. Pick a number you're comfortable spending, turn on the early controls, and build without looking over your shoulder.
 
Until next time,
Lucas
 
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article