AWS Cost Optimization Checklist · For Startups
AWS Cost Optimization Checklist: 30 Fixes for 30–60% Savings
A prioritized checklist of the most impactful AWS cost optimizations for Series A–C startups - ranked by savings potential and implementation effort. Each item links to a detailed implementation guide.
⚡Compute (EC2, Lambda, Fargate)
Right-size EC2 instances using AWS Compute Optimizer recommendations
Purchase Compute Savings Plans for baseline workloads (1-year minimum)
Switch eligible workloads to EC2 Spot instances
Migrate EC2 and Lambda to Graviton2/arm64
Right-size Lambda memory allocation using Power Tuning tool
Switch Lambda functions to arm64 (Graviton2) runtime
Stop non-production EC2 instances outside working hours
Delete unattached EBS volumes and old snapshots
💾Storage (S3, EBS, EFS)
Add S3 lifecycle policies to transition data to lower-cost storage classes
Enable S3 Intelligent-Tiering for buckets with mixed access patterns
Delete incomplete S3 multipart uploads (add 7-day abort rule)
Expire noncurrent S3 object versions (add versioning lifecycle rule)
Migrate EBS gp2 volumes to gp3 (same performance, 20% cheaper)
Delete unattached EBS volumes
Clean up old EBS snapshots (>90 days old, no associated AMI)
🌐Networking
Create S3 and DynamoDB Gateway VPC Endpoints (free, eliminates NAT charges)
Enable Interface Endpoints for ECR, CloudWatch, Secrets Manager
Audit cross-AZ data transfer (prefer same-AZ communication)
Enable CloudFront in front of S3 static content (reduce origin fetches)
Replace dev/staging NAT Gateways with NAT instances
🗄️Databases (RDS, DynamoDB, ElastiCache)
Right-size RDS instances using CloudWatch metrics (CPU, connections, memory)
Purchase RDS Reserved Instances for production databases (1-year)
Switch DynamoDB tables from on-demand to provisioned with auto scaling
Purchase DynamoDB Reserved Capacity for provisioned tables
Delete unused DynamoDB GSIs (each GSI multiplies write costs)
Migrate ElastiCache Redis to Valkey engine (20–33% cheaper)
Stop RDS instances in dev/staging environments when not in use
📊Observability and Monitoring
Set CloudWatch log group retention (default is never - costs grow forever)
Disable detailed monitoring on low-priority EC2 instances
Set up AWS Cost Anomaly Detection to catch unexpected spend spikes
Enable AWS Tagging for cost allocation (tag all resources by team/service)
Frequently Asked Questions
Where should I start with AWS cost optimization?
Start with the highest-ROI, lowest-effort items: S3 Gateway VPC Endpoints (free, saves hundreds/month), CloudWatch log retention (5 minutes, stops unbounded growth), gp2 to gp3 EBS migration (20% savings, no performance impact), and right-sizing EC2 via Compute Optimizer. These can be done in a day and collectively save 20–30% on most bills.
How much can I realistically save on AWS?
Most Series A–C startups find 30–40% savings potential in a thorough audit. Common wins: 20–40% on compute from rightsizing and Savings Plans, 40–95% on S3 from lifecycle policies, 50–75% on DynamoDB from capacity mode changes, and 70–80% on NAT Gateway from VPC endpoints.
Do AWS cost optimizations require downtime?
Most don’t. S3 lifecycle rules, CloudWatch retention, VPC endpoints, Savings Plans purchases, and DynamoDB Reserved Capacity are all zero-downtime changes. EC2 rightsizing typically requires an instance stop-start. RDS rightsizing requires a maintenance window reboot.
What is the fastest AWS cost optimization to implement?
S3 Gateway VPC Endpoint: free, zero performance impact, takes 5 minutes, and often saves $500–3,000/month for teams that route EC2/ECS traffic to S3 through NAT Gateway. Second fastest: CloudWatch log group retention - set all groups to 30 or 90 days instead of never.
Should I use AWS Cost Optimization Hub?
Cost Optimization Hub (and Compute Optimizer) provides rightsizing recommendations, but only covers EC2, Lambda, EBS, and ECS - not networking, S3 storage classes, DynamoDB pricing modes, or database right-sizing. A human audit catches what automated tools miss, particularly architectural cost drivers.