AWSCost

AWS cost · free tier

Why your AWS bill suddenly jumped (the free tier ran out)

You did not change anything, and the bill went from nothing to real money. The usual cause on a young account is the least dramatic one: the free tier ended. AWS free usage was never permanent - it is a trial with a clock on it - and when the clock runs out, the exact same resources you were running for free start billing at full on-demand rates. Nothing broke and nothing was misconfigured. The coverage simply lapsed, and the meter that was always running underneath became visible.

The AWS free tier is time-limited. Accounts created before July 15, 2025 get 12-month trials on EC2, RDS, and S3; newer accounts get up to $200 in credits and a plan that ends after 6 months or when credits run out. When it lapses, previously-free resources bill at full rate. Set a budget alert and decide, on purpose, what to keep running.

What starts charging when the free tier ends?

Whatever you left running that the free tier was quietly covering:

What was freeAfter it lapsesNote
EC2 (750 hrs/mo, legacy)billed per houra t2/t3.micro left running now costs ~$8-9/mo
RDS (750 hrs/mo, legacy)billed per houra db.t3.micro starts charging
Public IPv4 address$0.005/hourthe 750 free hours lapse after 12 months
New-account $200 credits$0 once spent6-month plan, then standard on-demand rates

Why is the jump so sudden?

Because a free resource and a billed one look identical while the free tier lasts. You spin things up to learn, they cost nothing, so you never form the habit of turning them off - there was no reason to. Then the trial period ends on a fixed date, or the credits hit zero, and every one of those resources flips to full price at once. The bill did not creep; a switch flipped. The fix is to see the date coming and decide what stays.

How do I stop it surprising me?

Put a budget alert in place before the free period ends, so the transition arrives as an email rather than a shock. A low threshold is enough - the point is to be told. This creates a simple monthly cost budget from a small JSON file; set the amount to whatever “this is more than I expected” would be for you:

# a $10/month cost budget (edit the account id and amount)
cat > budget.json <<'JSON'
{ "BudgetName": "monthly-cost", "BudgetType": "COST",
  "TimeUnit": "MONTHLY",
  "BudgetLimit": { "Amount": "10", "Unit": "USD" } }
JSON

aws budgets create-budget \
  --account-id 111122223333 \
  --budget file://budget.json

Once you can see the spend, the next step is deciding what to keep - release public IPs you no longer need and make sure you can read the bill by service with cost allocation tags.

Bill jumped and not sure what is driving it? Connect your account read-only and see what it is wasting, in real dollars.

Connect your AWS

The role can only read - Get, Describe, List, nothing else. Read the exact permissions before you deploy it, and delete the stack whenever you want.

Frequently asked questions

Why did my AWS bill suddenly increase?+

The most common reason on a young account is the free tier running out. AWS free usage is time-limited, not permanent. When it lapses, resources that were costing nothing - an EC2 instance, an RDS database, a public IP - start billing at full on-demand rates, so a $0 bill can jump to real money overnight without you changing anything.

How long does the AWS free tier last?+

It depends when you signed up. Accounts created before July 15, 2025 are on the legacy program: 12-month free trials on services like EC2, RDS, and S3, plus some always-free tiers. Accounts created after that get up to $200 in credits with a plan that expires after 6 months or when the credits run out, whichever comes first.

What changed about the AWS free tier in 2025?+

AWS replaced the 12-month model for new customers. As of July 15, 2025, new accounts no longer get a year of free EC2/RDS/S3 - they get $100 on sign-up plus up to $100 more from activities, and a Free Plan that ends after 6 months or once credits are exhausted. Existing accounts keep the legacy 12-month terms.

What starts charging when the free tier ends?+

Whatever you left running that the free tier was covering: EC2 instance-hours, RDS instance-hours, the public IPv4 address, EBS storage above the free allocation, and S3 above 5 GB. None of it stops on its own - the free coverage simply ends and the meter that was always there starts showing up on the bill.

How do I avoid a surprise bill after the free tier?+

Set a budget with an alert before the free period ends, so you hear about spend before it surprises you. Then decide, on purpose, what to keep running - stop or terminate anything that was only alive because it was free, release unused public IPs, and right-size what stays.

How do I set an AWS budget alert?+

Create a budget in AWS Budgets with a monthly cost threshold and an email alert. A low threshold - even a few dollars - turns the silent transition off the free tier into an email you actually notice, which is the whole point. Budgets are free to create for the first couple of budgets.

Related cost breakdowns

More AWS cost breakdowns