Skip to main content
AWS Free Tier 2026: What You Get Free, Limits, and Hidden Costs

AWS Free Tier 2026: What You Get Free, Limits, and Hidden Costs

Key Takeaway

Complete AWS Free Tier guide for 2026. See all free services (EC2, S3, Lambda, RDS), usage limits, 12-month vs always-free tiers

Table of Contents

Introduction

AWS Free Tier gives you access to 100+ cloud services at no cost. Whether you’re learning Terraform, testing a startup idea, or studying for AWS certifications, the Free Tier lets you use real AWS infrastructure without a credit card charge — as long as you stay within the limits.

This guide covers every Free Tier category, the most useful services with their exact limits, and how to avoid surprise bills.

Three Types of Free Tier

AWS organizes free offerings into three categories:

TypeDurationWho Qualifies
Always FreeNever expiresAll AWS accounts
12 Months FreeFirst 12 months after signupNew accounts only
Free TrialsVaries per service (30-365 days)First use of the service

Always Free Services (Never Expire)

These stay free forever, regardless of when you created your account:

Compute

ServiceFree Limit
AWS Lambda1M requests/month + 400,000 GB-seconds compute
AWS Step Functions4,000 state transitions/month

Storage

ServiceFree Limit
Amazon DynamoDB25 GB storage, 25 read/write capacity units
Amazon S3Not always-free (see 12-month below)

Networking & CDN

ServiceFree Limit
Amazon CloudFront1 TB data transfer out/month
Amazon API Gateway1M REST API calls/month

Monitoring & Management

ServiceFree Limit
Amazon CloudWatch10 custom metrics, 10 alarms, 1M API requests
AWS CloudTrail1 management trail (90-day event history)
AWS Trusted Advisor7 core checks

Developer Tools

ServiceFree Limit
AWS CodeBuild100 build minutes/month
AWS CodeCommit5 active users, 50 GB storage, 10,000 Git requests
AWS CodePipeline1 active pipeline

AI & Machine Learning

ServiceFree Limit
Amazon SageMaker250 hours/month of ml.t3.medium notebooks
Amazon Comprehend50K units of text/month
Amazon Translate2M characters/month

12 Months Free (New Accounts Only)

Available for 12 months after account creation:

ServiceFree LimitWhat You Can Build
Amazon EC2750 hours/month of t2.micro (or t3.micro in regions that support it)Web servers, dev environments
Amazon S35 GB storage, 20K GET, 2K PUT requestsStatic websites, backups
Amazon RDS750 hours/month of db.t2.micro/db.t3.micro, 20 GB storageMySQL, PostgreSQL databases
Amazon ElastiCache750 hours of cache.t2.micro/cache.t3.microRedis/Memcached caching
Amazon CloudFront50 GB data transfer (separate from always-free)CDN for websites
Elastic Load Balancing750 hours of Classic/ALB + 15 GB dataLoad balancing
Amazon EBS30 GB of General Purpose SSDBlock storage for EC2
Amazon SNS1M publishes, 100K HTTP deliveriesPush notifications
Amazon SQS1M requestsMessage queuing

EC2 Free Tier Details

The most popular Free Tier service. Key details:

  • 750 hours/month = enough to run 1 instance 24/7, or multiple instances that total 750 hours
  • t2.micro or t3.micro (depending on region) — 1 vCPU, 1 GB RAM
  • Linux or Windows (Windows counts the same hours)
  • 30 GB EBS storage included (General Purpose SSD)
  • Applies to On-Demand instances only (not Spot or Reserved)
# Terraform example: Free Tier EC2 instance
resource "aws_instance" "free_tier" {
  ami           = "ami-0c55b159cbfafe1f0"  # Amazon Linux 2
  instance_type = "t2.micro"               # Free Tier eligible

  tags = {
    Name = "free-tier-instance"
  }
}

RDS Free Tier Details

  • 750 hours/month of db.t2.micro or db.t3.micro
  • 20 GB General Purpose SSD storage
  • 20 GB automated backup storage
  • Supports MySQL, PostgreSQL, MariaDB, Oracle BYOL, SQL Server Express
# Terraform example: Free Tier RDS
resource "aws_db_instance" "free_tier" {
  engine               = "mysql"
  engine_version       = "8.0"
  instance_class       = "db.t3.micro"
  allocated_storage    = 20
  storage_type         = "gp2"
  db_name              = "mydb"
  username             = "admin"
  password             = var.db_password
  skip_final_snapshot  = true
}

Free Trials (Limited Duration)

Short-term trials for specific services. The timer starts when you first use the service:

ServiceFree TrialDuration
Amazon SageMaker Studio250 hours of ml.t3.medium2 months
Amazon Redshift750 hours of dc2.large2 months
Amazon GuardDutyFull features30 days
Amazon InspectorFull features15 days
Amazon Macie1 GB/month data classification30 days
AWS Security HubFull features30 days

How to Avoid Surprise Bills

1. Set Up Billing Alerts

# Terraform: Create a billing alarm
resource "aws_cloudwatch_metric_alarm" "billing" {
  alarm_name          = "billing-alarm-10-dollars"
  comparison_operator = "GreaterThanThreshold"
  evaluation_periods  = 1
  metric_name         = "EstimatedCharges"
  namespace           = "AWS/Billing"
  period              = 21600  # 6 hours
  statistic           = "Maximum"
  threshold           = 10
  alarm_description   = "Alert when charges exceed $10"

  alarm_actions = [aws_sns_topic.billing.arn]

  dimensions = {
    Currency = "USD"
  }
}

2. Use AWS Budgets

Go to AWS Billing → Budgets → Create Budget and set a monthly budget of $0 or $1. AWS will email you when you approach the limit.

3. Common Gotchas

  • Elastic IPs: Free only when attached to a running instance. Idle EIPs cost $0.005/hour ($3.60/month)
  • EBS Snapshots: Not included in Free Tier. Charged at $0.05/GB-month
  • Data Transfer: Outbound data beyond free allowances is charged
  • Multi-AZ RDS: Not eligible for Free Tier (doubles the hours)
  • NAT Gateway: Not in Free Tier ($0.045/hour = $32/month)
  • Forgetting to terminate: Running instances after your 12 months expire

4. Monitor Your Usage

Check the Free Tier Usage Dashboard at: https://console.aws.amazon.com/billing/home#/freetier

This shows percentage used for each Free Tier service.

Using AWS Free Tier with Terraform

Terraform is the best way to manage Free Tier resources — you can create, track, and destroy everything with code:

# Complete Free Tier stack
provider "aws" {
  region = "us-east-1"
}

# VPC (free)
resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  tags       = { Name = "free-tier-vpc" }
}

# Subnet (free)
resource "aws_subnet" "public" {
  vpc_id     = aws_vpc.main.id
  cidr_block = "10.0.1.0/24"
  tags       = { Name = "free-tier-subnet" }
}

# EC2 (750 hours/month free)
resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  subnet_id     = aws_subnet.public.id
  tags          = { Name = "free-tier-web" }
}

# S3 Bucket (5 GB free)
resource "aws_s3_bucket" "data" {
  bucket = "my-free-tier-bucket-unique-name"
  tags   = { Name = "free-tier-bucket" }
}

# Destroy everything when done:
# terraform destroy

Pro tip: Always run terraform destroy when you’re done experimenting. Forgotten resources are the #1 cause of unexpected AWS bills.

Hands-On Courses

Learn by doing with interactive courses on CopyPasteLearn:

Conclusion

The AWS Free Tier is the best way to learn cloud computing and Terraform hands-on without spending money. Use the Always Free tier for Lambda, DynamoDB, and CloudWatch. Use the 12-month tier for EC2, S3, and RDS. Set up billing alerts on day one, and always terraform destroy your test infrastructure when you’re done. The Free Tier gives you enough to build real applications — just stay within the limits.

🚀

Level Up Your Terraform Skills

Hands-on courses, books, and resources from Luca Berton

Luca Berton
Written by

Luca Berton

DevOps Engineer, AWS Partner, Terraform expert, and author. Creator of Ansible Pilot, Terraform Pilot, and CopyPasteLearn.