AWS Free Tier in 2026: What Changed, What's Still Free, and What Will Surprise You

For years, the deal was simple: sign up for AWS, get twelve months of access to a curated set of services at no charge, and figure out what you're doing before the meter starts running. Developers built side projects on it. Bootcamp students used it to learn. Startups tested infrastructure without burning runway. It wasn't perfect, but it was predictable.

That deal is gone for anyone who signed up after July 15, 2025.

In the past year alone, I've seen more developers blindsided by AWS billing than at any other point in my career, and the confusion almost always traces back to one thing: they thought they understood how the free tier worked, and they didn't, because AWS changed it and didn't exactly shout about it. This article is my attempt to lay out exactly what the current structure looks like, what's actually free, and where the charges are hiding.

What the Free Tier Looks Like Now

If you create a new AWS account today, you're not getting twelve months of free usage on EC2, RDS, or S3. You're getting credits, and those credits have a hard expiration.

Here's the current structure for accounts created on or after July 15, 2025. When you sign up, AWS prompts you to choose between a Free Plan and a Paid Plan. The Free Plan gives you $100 in credits automatically, the moment your account is created. You can earn an additional $100 by completing five onboarding tasks: launching and terminating an EC2 instance, configuring an RDS database, deploying a Lambda function, testing a prompt in Amazon Bedrock, and setting up a cost budget in AWS Budgets. Each task pays out $20. Do all five and you've got $200 total.

Those credits apply to any eligible service, which is actually an improvement over the old model in one narrow sense: you're not locked into a fixed per-service allowance. If you want to spend most of your credits on EC2, you can. If you want to experiment with Bedrock, your credits work there too.

What's not flexible is the timeline. The Free Plan expires after six months, or when your credits run out, whichever happens first. On the Free Plan, you won't be charged if you exceed your credits during that window. AWS will simply shut the account down. If you're on the Paid Plan and your credits are exhausted, billing starts at standard on-demand rates immediately.

One more thing worth knowing: if you upgrade from Free Plan to Paid Plan at any point, your remaining credits stay valid for up to twelve months from your original signup date. Upgrading doesn't mean losing what you've earned.

Accounts created before July 15, 2025 are still on the legacy model and get the full twelve-month service-specific trial. That doesn't change retroactively. But if you helped a colleague sign up recently and told them it works the same way it did when you signed up, you may have set them up for a surprise.

What Is Actually Always Free

Here's the part of the free tier that doesn't get enough attention, and honestly the part that matters most for developers building lightweight apps or learning the platform. There's a set of services with no expiration, no credit dependency, and no time limit. They're free as long as you stay within the monthly caps, and they stay free after your six-month plan or twelve-month legacy trial ends.

Service Always Free Limit Notes
AWS Lambda 1M requests/month + 400K GB-seconds compute Resets monthly. Enough for most side projects indefinitely.
Amazon DynamoDB 25 GB storage + 200M requests/month No expiry. The always-free database for serverless stacks.
Amazon S3 5 GB Standard + 20K GET + 2K PUT/month Egress is NOT free. Reduced Redundancy Storage is NOT included.
Amazon CloudFront 1 TB data out/month + 10M HTTP/S requests/month Best way to serve S3 content without triggering egress fees.
Amazon API Gateway 1M REST API calls/month REST APIs are always free. HTTP APIs have a separate 12-month offer.
Amazon SNS 1M publishes/month + 1K email notifications/month No expiry.
Amazon SQS 1M requests/month No expiry.
Amazon CloudWatch 10 custom metrics + 10 alarms + basic monitoring Log ingestion and storage beyond the free amounts bills quickly.
Amazon Cognito 50,000 MAUs/month Plenty of headroom for auth in small apps.

The Lambda plus DynamoDB plus API Gateway combination is powerful on the always-free tier. You can run a meaningful API backend indefinitely without paying a cent, provided your traffic stays moderate. I've seen developers run production hobby apps on this stack for years at zero cost. That's not marketing. That's just how the limits work out at small scale.

The limits reset on the first of each month. They don't carry over. They don't accumulate. Use them or lose them.

// free tool
See what AWS actually costs vs the alternatives
Includes bandwidth and storage, not just instance prices.
Open Calculator →

The Credit Cliff: What Happens When It Runs Out

This is where I want to be very direct, because AWS's own documentation on this point is easy to misread.

For Free Plan accounts, when your six months are up or your $200 in credits are exhausted, your account closes automatically. It doesn't warn you with a final invoice. It doesn't let you run a few more days while you sort things out. The account closes, your running resources are shut down, and you have ninety days to upgrade to a Paid Plan and recover your data before it's deleted permanently. Credits that weren't used are forfeited.

AWS does send notifications as you approach the edge. You'll get emails at 50%, 25%, and 10% of credits remaining, and again at fifteen days, seven days, and two days before the six-month period ends. That's reasonable warning if you're paying attention to your inbox. A lot of developers aren't, especially if the account was created months ago for a side project that got shelved.

Here's the part that catches people: the six-month clock runs regardless of how many credits you have left. If you earned all $200, used $30 of it, and hit the six-month mark, the account still closes and the remaining $170 disappears. Credits don't buy you more time on the Free Plan.

For legacy twelve-month accounts, the expiration is less dramatic, but in some ways more dangerous. When the twelve months end, billing starts automatically at on-demand rates. AWS doesn't stop your instances. It doesn't send a prominent warning that billing is about to begin. The free trial just ends, and whatever is running starts accruing charges at the next hourly tick. I've seen developers wake up to a week of EC2 and RDS charges because they forgot their account birthday.

The Gotchas: What Bills Even During the Free Period

This section is the reason I wrote this article. The free tier, in any form, does not protect you from every AWS charge. There are services and configurations that bill from day one, free plan or not, and they're responsible for the bulk of the surprise bills I see.

NAT Gateway $0.045/hr + $0.045/GB processed
~$33/mo minimum just for the gateway existing. Traffic adds $0.045/GB on top of egress fees, so internet-bound data costs ~$0.135/GB total. If you followed a tutorial that told you to set up a VPC with private subnets, you probably created one. Go check. Fix: use VPC Gateway Endpoints for S3 and DynamoDB. They're free and bypass the NAT entirely.
Elastic IPs and Public IPv4 Addresses $0.005/hr (~$3.60/mo) per address
Since February 2024, every public IPv4 address costs $0.005/hr whether attached to a running instance or sitting idle. A test environment with eight or ten IPs across EC2, load balancers, and RDS adds up fast. Release anything you're not actively using.
Egress Fees $0.09/GB after the first 100 GB/month
AWS now includes 100 GB/month free outbound transfer, up from 1 GB in the old model. Once past that, you're paying $0.09/GB. Serving files directly from S3 or EC2 without CloudFront will hit that ceiling fast. Put CloudFront in front of anything user-facing.
Cross-AZ Data Transfer ~$0.01/GB in each direction
Traffic between Availability Zones within the same region is not free. Invisible in single-instance setups but adds up if your services span AZs or your EC2 and RDS instances are in different zones. Separate from internet egress, doesn't count against the 100 GB free allowance.
RDS No always-free tier
Legacy accounts get 750 hours/month of a db.t2.micro or db.t3.micro for 12 months, plus 20 GB storage. New accounts draw from the $200 credit pool. Multi-AZ doubles your instance-hours. The 750-hour monthly budget is global across all regions, so two small instances in different regions consume it twice as fast.
CloudWatch Logs Without Retention Policies $0.50/GB ingested + $0.03/GB stored/mo
Default retention is forever. Lambda, ECS, and other services create log groups automatically. A verbose application with no retention policy set will accumulate charges silently. Set a retention policy on every log group you create, even if it's just 30 days.
GuardDuty, Inspector, Security Hub, Macie Trial starts on enable, not on account creation
These services each have 15 to 30-day free trials that begin the moment you first enable them. AWS does not notify you when they expire. Set a calendar reminder when you turn any of these on, or they'll quietly bill in the background after the trial ends.

How to Protect Yourself

The good news is that AWS gives you the tools to catch problems early. The bad news is that none of them are turned on by default, and finding them requires navigating the billing console. Here's what to set up on day one.

Enable Free Tier Usage Alerts. In the Billing and Cost Management console, under Billing Preferences, there's a checkbox to email you when you're approaching the limits on any free tier service. Enable it. There's no reason not to.

Create a $1 budget in AWS Budgets. The goal isn't to limit spending. It's to know immediately if anything starts billing that shouldn't be. If you're a new account, completing this task also earns you $20 in credits, so you're being paid to do the responsible thing.

Enable Cost Anomaly Detection. It's free, it works well, and it flags unusual spending patterns the same day they start. No configuration required beyond enabling it.

Do a resource audit before you stop working each day. Check EC2 > Volumes for unattached EBS volumes. Check EC2 > Elastic IPs for unassociated addresses. Check VPC > NAT Gateways for anything you don't need. Check CloudWatch > Log Groups and set retention on every group without one. These are five-minute checks that can prevent a multi-hundred-dollar surprise at the end of the month.

Understand the difference between stopping and terminating an EC2 instance. A stopped instance doesn't bill for compute, but its EBS volume does. Termination deletes the instance and, by default, the root EBS volume. If you're done with a test instance, terminate it. Don't stop it and walk away.

// free tool
Model your real AWS costs before you commit
Compare AWS against DigitalOcean, Vultr, and Linode, including bandwidth.
Open Calculator →

Know Your Real Costs Before You Commit

The AWS free tier, in its current form, is still a legitimate way to learn the platform and build small projects. The always-free services are generous at small scale. The $200 credit pool for new accounts gives you real flexibility. But the billing model rewards people who understand it and quietly penalizes those who don't, and AWS has never been in a hurry to change that.

Before you architect anything beyond a simple serverless stack, it's worth modeling what you'll actually pay once the credits are gone. InfraTally's Cloud Hosting Cost Calculator and Object Storage Calculator let you map out real AWS costs for common infrastructure patterns before you're committed to them. Understanding the monthly number before you build is the difference between a side project that stays free and one that becomes an uncomfortable line item.

The free tier is a starting point. Knowing where it ends is how you stay in control of what comes next.

Information in this article reflects the AWS free tier structure as of April 2026 for accounts created on or after July 15, 2025. Legacy account holders (pre-July 15, 2025) remain on the original 12-month model. Always verify current details on the AWS Free Tier page.