The free tier, and where it bites
AWS's free tier has two different shapes, and confusing them causes real bills:
- 12-month tier: for new accounts, e.g. 750 hours/month of a t3.micro. It expires on your account's first birthday, silently.
- Always-free tier: permanent, e.g. 1 million Lambda requests and 25 GB stored in DynamoDB (AWS's serverless NoSQL database, which lesson 9-3 introduces properly) per month.
The classic traps, each a true story many times over:
- The forgotten instance. 750 free hours ≈ one instance always-on. Two instances = 1,460 hours, and hour 751 starts billing. "I stopped using it" ≠ "I stopped it".
- Year 13. The 12 months end, the tutorial leftovers keep running, the first real bill arrives.
- The NAT gateway (lesson 5-2): ~$32/month plus per-GB processing, never free, famously hiding in "basic" VPC tutorials.
- Data transfer out (lesson 8-1): only the first 100 GB/month is free.
The defense is one setting: a billing alarm that emails you when the forecast crosses a few dollars. Set it before you create anything else.
Code exercise · bash
Free tiers are a subtraction with a floor at zero. Your serverless API (lesson 7-1) served 100,000 requests this month against Lambda's always-free 1,000,000. Run the billing logic.
Code exercise · bash
Your turn: the estimate every engineer should be able to do on a napkin. A hobby app past its free-tier year runs one t3.micro (759 cents/month, lesson 8-1), its 8 GB EBS disk (64), the smallest single-AZ RDS Postgres (1314), and 1 GB in S3 (23). The starter only sums the first two: add rds and s3 variables, include them in the total, and match the expected output.
Problem
Estimation drill, nearest dollar. A hobby project runs one t3.micro 24/7 for a month (730 hours at $0.0104/hour) on an account past its free-tier year. Ignoring the disk, what is the monthly EC2 charge in dollars, rounded to the nearest dollar? (Digits only.)
Quiz
Which of these is genuinely $0.00 on an account that is 3 years old?