Please fix the AWS Free Tier before somebody gets hurt
Let engineers learn cloud without jeopardizing their personal well-being.
Read what the community is saying about this post: Hacker News, r/aws, r/programming
Read news coverage spawned by this post: InfoQ, The Register
I try not to write this newsletter in rant mode. And I’m trying not to rant right now.
After all, the AWS Free Tier has been broken for 10+ years. How urgent of a problem can it be?
But I’ve been shaken all day by this message that appeared in the A Cloud Guru Discord server:
Before anybody worries: this student is fine, they have lots of support now, AWS is on the case.
But all I can think of is that horrible story that appeared during the worst of the pandemic, about the young man who died believing he’d lost hundreds of thousands of dollars on the stock trading app Robinhood.
And I keep thinking: what if this student hadn’t reached out to a developer community? What if AWS Support hadn’t been nudged on Twitter, and had taken a few days to get back? What if the costs (and the panic) had kept spiraling?
Am I being melodramatic? I can hear the objections now.
“It’s the student’s responsibility to know what they’re deploying.”
With all due respect, get out of here with that. Even highly experienced engineers struggle with “bills heard round the world”, but at least they’re usually doing it on company credit cards. Students trying to break into the cloud have no financial buffer, and shouldn’t be penalized for learning. I’m not saying learning should be free! Just that it shouldn’t be a game of resource whack-a-mole.
“It was ‘just’ $200, that’s not the end of the world.”
Sure - this time. What if the student had, say, accidentally written a Lambda function that PUTs and GETs the same object to S3 in an infinite loop? How would they have known? They could easily rack up tens of thousands in costs before the billing console even refreshed.
“AWS Support is great about refunding these types of claims, there’s no reason to be alarmed.”
You know that. I know that. The 20-year-old student staring at an unexpected $200 charge didn’t know that. How could they? It’s not a documented resolution path.
Anyway, credit to the student who wrote that message in Discord - despite their panic, they’ve laid out exactly the two worst problems with AWS’s current “free/not free/just kidding/good luck” approach to free accounts:
Unexpected charges
Inability to find what’s causing the charges
AWS is the only cloud provider that creates these problems. Azure, GCP, even Oracle all give you ways to set billing limits and/or delete a project and feel sure that it’s totally deleted.
On the other hand, I’ve personally got a dormant AWS account that’s charging me cents every month, and I bet you do too. I’m not at all confident that I could figure out where those charges are coming from, and I’m an “AWS Hero”. It would be easier just to destroy the account.
And, come on, if the only sure solution to closing out the tab on your AWS project is “cancel your credit card and nuke the account”, that’s not a great way to keep customers, is it?
Is there a solution here?
Corey Quinn, your first and last stop for any question that touches AWS billing, has called for an updated free tier that treats “personal learning” AWS accounts differently from “new corporate” accounts, and sets hard billing limits that you can’t exceed.
We could also consider time-limited sandbox accounts that automatically shut themselves down after a period of time; this is the solution A Cloud Guru/Linux Academy has used, with success, for their popular Cloud Playgrounds. But as an ACG employee I’m happy to tell you that feature should be in the AWS console; ACG shouldn’t have had to build it.
Updated 10 PM ET 3/4 - Some have pointed out the existence of AWS Educate Starter Accounts, which give no-credit-card access to a limited but useful subset of AWS services. The problem is that you can only get access to these accounts through student affiliation with a participating educational institution like a high school or university.
It might be more feasible to expand this program, say to any applicant who demonstrates some reasonable threshold of non-bot-ness, than to re-engineer the normal free tier.
In the meantime, if none of this is feasible - AWS, the least you can do is stop talking about training 29 million new engineers on your platform by the year 2025. Until those people have a safe way to learn without jeopardizing their personal well-being, that promise isn’t merely unachievable; it’s irresponsible.
THIS is exactly why I stopped early with AWS. Too confusing as to what you could and couldn't get yourself into, and my sense was they wanted it that way. No thanks.
I had an incident when I was a junior developer where I accidentally pushed my free aws account credentials on github. We had a 15k$ billing no more than 24 hours later. We stopped everything, shut down everything the bad guy put to keep using it. I screamed and cried for God knows how long thinking my mistake will be the downfall of the little company of 3 people I adore that accepted to give me an internship there.
I called AWS knowing they had the future of our startup in their hand. The power balance was so strongly in their favor and me being in this position and so young and unexperienced, it was an awful experience. We didn't pay a penny in the end, but it was a traumatic experience and I would have prefer them to prevent someone from putting ourselves in this position in the first place.