AWS Pricing 2026: EC2, S3, Lambda, RDS Cost Breakdown
AWS has 200+ services with pricing that ranges from fractions of a penny to thousands of dollars per hour. The complexity is intentional — it makes comparison shopping difficult. This guide cuts through the noise with actual prices for the services most teams use, real cost examples for common architectures, and the hidden fees that surprise first-time AWS users.
AWS Core Services Pricing 2026
| Service | What it does | Starting price | Typical monthly cost |
|---|---|---|---|
| EC2 (compute) | Virtual servers | $0.0104/hr (t3.nano) | $7.50-30/mo for small instances |
| S3 (storage) | Object storage | $0.023/GB/mo | $2.30 per 100GB |
| RDS (database) | Managed SQL databases | $0.017/hr (db.t3.micro) | $12.50/mo for micro |
| Lambda (serverless) | Run code without servers | $0.20/1M requests | $2-10/mo for typical API |
| CloudFront (CDN) | Content delivery network | $0.085/GB transfer | $5-50/mo depending on traffic |
| Route 53 (DNS) | DNS hosting | $0.50/hosted zone/mo | $0.50-5/mo |
EC2 Pricing: The Biggest Cost Driver
EC2 (Elastic Compute Cloud) is usually 40-60% of an AWS bill. Prices vary by instance type, region, and purchasing option:
| Instance | vCPU | RAM | On-demand/hr | Monthly (24/7) | Best for |
|---|---|---|---|---|---|
| t3.nano | 2 | 0.5 GB | $0.0104 | $7.50 | Burst workloads, testing |
| t3.micro | 2 | 1 GB | $0.0104 | $7.50 | Small apps, development |
| t3.small | 2 | 2 GB | $0.0208 | $15 | Small production apps |
| t3.medium | 2 | 4 GB | $0.0416 | $30 | Medium traffic apps |
| t3.large | 2 | 8 GB | $0.0832 | $60 | Production workloads |
| m5.xlarge | 4 | 16 GB | $0.192 | $138 | General purpose production |
| c5.xlarge | 4 | 8 GB | $0.17 | $122 | Compute-intensive |
S3 Pricing: Cheap Storage, Expensive Transfer
S3 (Simple Storage Service) pricing is straightforward for storage but gets complex with requests and data transfer:
| Component | Price | Example cost (100GB) |
|---|---|---|
| Standard storage | $0.023/GB/mo | $2.30/mo |
| Infrequent Access | $0.0125/GB/mo | $1.25/mo |
| Glacier (archive) | $0.004/GB/mo | $0.40/mo |
| PUT/POST requests | $0.005/1,000 | ~$0.05 |
| GET requests | $0.0004/1,000 | ~$0.04 |
| Data transfer out | $0.09/GB | $9.00 per 100GB |
Lambda Pricing: Pay Per Execution
Lambda is truly serverless — you pay only for what you use. Costs scale linearly with traffic:
| Monthly requests | Avg duration | Memory | Estimated cost |
|---|---|---|---|
| 1 million | 100ms | 256MB | $0.20 |
| 10 million | 100ms | 256MB | $2.00 |
| 100 million | 100ms | 256MB | $20.00 |
| 1 billion | 100ms | 256MB | $200.00 |
RDS Pricing: Managed Databases
RDS (Relational Database Service) pricing depends on engine, instance size, and storage:
| Instance | Engine | vCPU | RAM | Price/hr | Monthly |
|---|---|---|---|---|---|
| db.t3.micro | PostgreSQL/MySQL | 2 | 1 GB | $0.017 | $12.50 |
| db.t3.small | PostgreSQL/MySQL | 2 | 2 GB | $0.034 | $25 |
| db.t3.medium | PostgreSQL/MySQL | 2 | 4 GB | $0.068 | $49 |
| db.m5.large | PostgreSQL/MySQL | 2 | 8 GB | $0.171 | $123 |
| db.r5.large | PostgreSQL/MySQL | 2 | 16 GB | $0.24 | $173 |
Additional RDS costs: storage ($0.115/GB/mo for General Purpose SSD), backups (20GB free, then $0.095/GB/mo), and Multi-AZ deployments (double the instance cost for high availability).
AWS Free Tier: What's Actually Free
| Service | Free allowance | Duration |
|---|---|---|
| EC2 | 750 hours/month of t2.micro or t3.micro | 12 months |
| S3 | 5GB storage, 20K GET/2K PUT requests | 12 months |
| RDS | 750 hours/month of db.t3.micro + 20GB storage | 12 months |
| Lambda | 1M requests + 400K GB-seconds | Always free |
| DynamoDB | 25GB storage + 25 WCU/25 RCU | Always free |
| CloudWatch | 10 custom metrics + 10 alarms | Always free |
| CloudFront | 1TB transfer out/month | 12 months |
Real Cost Examples: Common Architectures
Static Website (S3 + CloudFront)
| Component | Usage | Monthly cost |
|---|---|---|
| S3 storage | 1GB | $0.023 |
| CloudFront transfer | 10GB | $0.85 |
| Route 53 | 1 hosted zone | $0.50 |
| Total | $1.37/mo |
Small Web Application (EC2 + RDS)
| Component | Instance | Monthly cost |
|---|---|---|
| EC2 | t3.small (2 vCPU, 2GB) | $15 |
| RDS | db.t3.micro (PostgreSQL) | $12.50 |
| S3 | 50GB storage | $1.15 |
| Data transfer | 100GB out | $9.00 |
| Total | $37.65/mo |
Production API (EC2 + RDS + ElastiCache)
| Component | Instance | Monthly cost |
|---|---|---|
| EC2 | t3.large (2 vCPU, 8GB) | $60 |
| RDS | db.t3.medium (PostgreSQL) | $49 |
| ElastiCache | cache.t3.micro (Redis) | $12.50 |
| S3 | 100GB | $2.30 |
| Data transfer | 500GB out | $45 |
| Total | $168.80/mo |
Hidden Costs That Surprise New AWS Users
1. Data Transfer (Egress)
Data transfer OUT of AWS to the internet costs $0.09/GB after the first 100GB free. Transferring 1TB costs $90. This is often the largest hidden cost — especially for APIs serving images, videos, or large JSON responses.
2. NAT Gateway
If your EC2 instances need internet access from private subnets, you need a NAT Gateway at $0.045/hour (~$32/month) plus $0.045/GB processed. For small applications, this alone can double your infrastructure cost.
3. Elastic IPs
Elastic IPs are free while attached to running instances. But if you stop an instance and keep the Elastic IP allocated, AWS charges $0.005/hour (~$3.60/month) per unused Elastic IP.
4. CloudWatch Logs
CloudWatch Logs ingestion costs $0.50/GB. Verbose logging from applications can quickly add up. A busy application generating 10GB of logs/day costs $150/month just for log ingestion.
5. Secrets Manager
AWS Secrets Manager costs $0.40/secret/month plus $0.05 per 10,000 API calls. For applications with many environment-specific secrets, this adds up. Consider AWS Systems Manager Parameter Store (free for standard parameters) as an alternative.
AWS vs Google Cloud vs Azure: Quick Comparison
| Service | AWS | Google Cloud | Azure |
|---|---|---|---|
| Small VM (2 vCPU, 2GB) | $15/mo (t3.small) | $10/mo (e2-small) | $15/mo (B2s) |
| Object storage (100GB) | $2.30/mo | $2.00/mo | $1.84/mo |
| Serverless (1M requests) | $0.20 | $0.10 (after 2M free) | $0.20 |
| Managed DB (small) | $12.50/mo | $10.95/mo | $12.50/mo |
| Free tier | 12-month + always-free | Always-free (most generous) | 12-month + always-free |
Google Cloud is generally 10-20% cheaper for compute and has a more generous always-free tier. AWS has the broadest service catalog (200+ services) and the most mature ecosystem. Azure is competitive for Microsoft-heavy shops.
See our detailed comparison: AWS vs Google Cloud vs Azure Pricing 2026.
How to Reduce Your AWS Bill
- Use Reserved Instances: For production workloads running 24/7, 1-year reserved instances save 30-40%. 3-year commitments save 50-60%. A t3.small on-demand costs $15/mo; 1-year reserved is ~$10/mo.
- Right-size instances: Use AWS Compute Optimizer to identify underutilized instances. Downsizing from m5.xlarge ($138/mo) to t3.large ($60/mo) saves $936/year if utilization allows.
- Use Spot Instances for batch work: Spot instances cost 60-90% less than on-demand. Use them for batch processing, CI/CD, and non-critical workloads that can handle interruptions.
- Optimize data transfer: Use CloudFront CDN to serve static content. Transfer data between AWS services in the same region (free). Avoid cross-region data transfer when possible.
- Set billing alerts: Use AWS Budgets to set spending alerts. Get notified at 50%, 80%, and 100% of your budget threshold. This prevents surprise bills from misconfigured resources.
- Clean up unused resources: Delete unattached EBS volumes, release unused Elastic IPs, terminate idle EC2 instances, and clean up old S3 versions. These "zombie resources" often cost $50-200/month unnoticed.
Monitor AWS pricing automatically — free
PricePulse tracks AWS and 80+ other cloud services. Get instant email or channel alerts when prices change — so you're never caught off guard.
No credit card · Instant alerts · Cancel anytime