policy billing ai_generated true

AWS bill for hundreds of dollars after 'free tier' usage due to hidden limits or expiration

ID: policy/aws-free-tier-surprise-billing

Also available as: JSON · Markdown
82%Fix Rate
85%Confidence
3Evidence
2023-01-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
any active

Root Cause

AWS free tier has three types: 12-month free (expires), always free (with limits), and trials. EC2 t2.micro is 12-month only. Leaving resources running after 12 months = full price. Some services have hidden data transfer costs. EBS volumes are not free.

generic

Workarounds

  1. 95% success Set up AWS Budgets with alerts at $1, $5, $10 thresholds
    AWS Console -> Budgets -> Create budget -> $5/month threshold -> Email alert
  2. 90% success Use AWS Cost Explorer daily and tag all resources
    Tag everything with project/owner. Use Cost Explorer to spot unexpected charges within 24 hours.
  3. 82% success Enable AWS Organizations SCPs to restrict resource creation in free tier accounts
    Prevent creation of expensive resource types (GPU instances, large RDS) via Service Control Policies

Dead Ends

Common approaches that don't work:

  1. Assume all AWS free tier services are perpetually free 90% fail

    12-month free tier services (EC2, RDS, S3) switch to full pricing after 12 months with no warning. You must actively track your free tier anniversary.

  2. Spin up resources and forget about them since they're free 85% fail

    Free tier has strict limits (750 hrs/month for EC2). Running 2 t2.micro instances exceeds the limit and incurs charges immediately.

  3. Only check EC2 costs, ignore other services 82% fail

    Data transfer, EBS volumes, Elastic IPs (when not attached), CloudWatch, and Route 53 queries all have separate costs that add up.