Cloud Cost Optimization Checklist
A practical multi-cloud cost reduction checklist covering idle resource cleanup, compute rightsizing, commitment discounts, and storage tier optimization for AWS, GCP, and Azure.
Quick Wins Checklist
| Action | Typical Savings | Effort | AWS / GCP / Azure |
|---|---|---|---|
| Delete unattached EBS/PD volumes | $5–200/month | Low | All |
| Remove old snapshots (>90 days) | $10–500/month | Low | All |
| Release unassociated Elastic IPs | $3.65/IP/month | Low | AWS |
| Downsize over-provisioned instances | 30–50% compute | Medium | All |
| Stop dev/test on nights & weekends | 60–70% dev cost | Low | All |
| Purchase 1-yr Savings Plan / CUD | 30–40% compute | Low | AWS / GCP |
| Move cold S3/GCS to archive tier | 70–90% storage | Low | All |
| Delete unused load balancers | $16–200/month | Low | All |
| Use Spot/Preemptible for CI runners | 60–80% CI cost | Medium | All |
| Enable S3 Intelligent-Tiering | 20–40% S3 cost | Low | AWS |
AWS — Find Idle Resources
# Find unattached EBS volumes
aws ec2 describe-volumes \
--filters Name=status,Values=available \
--query 'Volumes[*].{ID:VolumeId,Size:Size,Region:AvailabilityZone}' \
--output table
# Find snapshots older than 90 days (your account only)
aws ec2 describe-snapshots \
--owner-ids self \
--query "Snapshots[?StartTime<='2025-12-01'].{ID:SnapshotId,Size:VolumeSize,Date:StartTime}" \
--output table
# Find stopped instances
aws ec2 describe-instances \
--filters Name=instance-state-name,Values=stopped \
--query 'Reservations[*].Instances[*].{ID:InstanceId,Type:InstanceType,Name:Tags[?Key==`Name`]|[0].Value}' \
--output table
# Find unassociated Elastic IPs
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==null].{IP:PublicIp,AllocationId:AllocationId}' \
--output table GCP — Find Idle Resources
# List unattached persistent disks gcloud compute disks list --filter="NOT users:*" \ --format="table(name, sizeGb, zone, status)" # List unused static external IPs gcloud compute addresses list --filter="status=RESERVED" \ --format="table(name, address, region, status)" # Get rightsizing recommendations gcloud recommender recommendations list \ --recommender=google.compute.instance.MachineTypeRecommender \ --location=us-central1 \ --format="table(name, description, primaryImpact.costProjection.cost)" # Find stopped instances gcloud compute instances list --filter="status=TERMINATED" \ --format="table(name, machineType, zone)"
Storage Tier Migration
# AWS S3 — Enable Intelligent-Tiering on a bucket
aws s3api put-bucket-intelligent-tiering-configuration \
--bucket my-data-bucket \
--id archive-config \
--intelligent-tiering-configuration '{
"Id": "archive-config",
"Status": "Enabled",
"Tierings": [
{"Days": 90, "AccessTier": "ARCHIVE_ACCESS"},
{"Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS"}
]
}'
# Create S3 lifecycle policy for old objects
aws s3api put-bucket-lifecycle-configuration \
--bucket my-logs-bucket \
--lifecycle-configuration '{
"Rules": [{
"ID": "move-to-glacier",
"Status": "Enabled",
"Filter": {"Prefix": "logs/"},
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER"}
],
"Expiration": {"Days": 365}
}]
}' Monthly Review Process
- Week 1: Pull cost report by service — flag >10% MoM increases
- Week 1: Review anomaly alerts from prior 30 days
- Week 2: Run rightsizing recommendations — action top 5
- Week 2: Execute idle resource cleanup script
- Week 3: Review Savings Plan / CUD utilization rate
- Week 3: Check storage tier distribution — move cold data
- Week 4: Update cost forecast for next month
- Week 4: Review cost by team/project tag — share with leads
Frequently Asked Questions
What are the biggest quick wins for reducing cloud costs?▼
The highest-ROI actions in order: (1) Delete idle resources — snapshots, unattached EBS volumes, stopped EC2 instances, unused Elastic IPs cost money with zero value. Run a monthly cleanup script. (2) Right-size compute — most EC2/GCE instances run at 10-30% average CPU. Downsize to the next smaller instance type and save 30-50% immediately. (3) Purchase Savings Plans or Committed Use Discounts — for any workload running more than 60% of the month, 1-year no-upfront saves 30-40%. (4) Move cold data to cheaper storage tiers — S3 Intelligent-Tiering or Glacier for data not accessed in 90+ days. These four alone typically cut bills by 30-50%.
How do I find idle and zombie resources automatically?▼
Use cloud-native tools: AWS Trusted Advisor (idle EC2, underutilized RDS, unassociated EIPs), AWS Compute Optimizer (rightsizing recommendations), and AWS Cost Explorer's rightsizing recommendations. For GCP, use the Recommender API (gcloud recommender recommendations list). For Azure, use Advisor. Automate cleanup: use AWS Instance Scheduler to stop dev/test instances on weekends. Use Lambda triggered by CloudWatch to terminate instances with the tag AutoShutdown=true after business hours. A monthly cron job that finds and reports unattached volumes and old snapshots saves significant money passively.
What's the difference between rightsizing and Spot/Preemptible instances?▼
Rightsizing means choosing the correct instance size for your workload — matching CPU and memory to actual usage patterns. It applies to all workloads. Spot/Preemptible instances are surplus cloud capacity sold at 60-90% discount, but can be reclaimed with 2-minute notice (AWS) or 30-second notice (GCP). Use rightsizing for all production workloads first. Use Spot for stateless, fault-tolerant, or batch workloads — CI/CD runners, machine learning training, data processing, rendering. Mixing Spot (60%) with On-Demand (40%) in an Auto Scaling Group gives most of the savings with resilience.
How should I structure a monthly cloud cost review?▼
A monthly cost review should take 30-60 minutes and follow this structure: (1) Check total spend vs prior month and vs budget — is growth justified? (2) Review top 5 services by cost — any unexpected spikes? (3) Check Cost Anomaly Detection or equivalent alerts. (4) Run rightsizing recommendations and pick 3-5 to action immediately. (5) Review Savings Plan / Reserved Instance utilization — under 80% means you over-committed. (6) Check the waste items checklist: unattached volumes, old snapshots, idle load balancers, underused NAT gateways. (7) Update forecast for next month. Track these metrics in a shared spreadsheet or Grafana dashboard over time.
Related Products
on GumroadPremium Workflow Pack
Production-grade workflows, architecture guides, and deployment scripts for teams that ship. 10 advanced CI/CD workflows (blue-green, canary, E2E, security), 5 architecture deep-dives, code review checklist, PR process guide, and 5 battle-tested Bash deployment scripts.
Buy on Gumroad →GitHub Actions CI/CD Templates Pack
12 production-ready GitHub Actions workflow templates covering Node.js, Python, Docker, multi-environment deployments, security scanning, and auto-changelog. Copy, paste, ship.
Buy on Gumroad →Developer Productivity Bundle
Stop rebuilding the same setup every project. 51 VSCode snippets, 40 Git aliases, 5 Docker Compose stacks, 5 GitHub Actions workflows, 5 README templates, and a dotfiles kit. Set up a professional dev environment in under an hour.
Buy on Gumroad →You Might Also Need
AWS CDK Infrastructure as Code Guide
Complete AWS CDK guide for TypeScript/Python IaC. Learn constructs (L1/L2/L3), stacks, CDK Pipelines, diff/deploy workflow, and comparison with Terraform and CloudFormation.
Open free tool →
GCP Service Account Key Checker
Validate GCP service account key JSON files. Checks required fields, client_email format, private key format, and security best practices. 100% local.
Open free tool →
AWS Cost Estimator
Estimate monthly AWS costs for EC2, RDS, S3, CloudFront, and Load Balancers. Interactive calculator with itemized breakdown.
Open free tool →
More Free Tools
Related Articles
Cloud Cost Optimization in 2026: Strategies, Tools, and Real-World Savings
Cut your cloud bill without cutting performance. This practical guide covers FinOps practices, cost allocation, resource optimization, reserved capacity strategies, and the tools that help engineering teams understand and reduce cloud spend.
FinOps Engineering: A Developer's Guide to Cloud Cost Optimization in 2026
A practical guide to FinOps for engineers: AWS, GCP, and Azure cost tools, Infracost for Terraform, right-sizing, spot instances, reserved capacity, auto-scaling, and the FinOps maturity model. With code examples for CI/CD cost gates.
Cloud Deployment Tools in 2026: From Containers to Serverless
A practical guide to cloud deployment tools in 2026. Compare deployment strategies, container platforms, serverless frameworks, and GitOps workflows that enterprise teams use to ship software reliably.
FinOps for Kubernetes: Cut Cloud Costs by 40% Without Slowing Engineering
Practical FinOps strategies for Kubernetes in 2026. Use Kubecost, KEDA, spot instances, and right-sizing to reduce cloud bills by 40% while maintaining performance.
AWS CDK with TypeScript: Build Cloud Infrastructure as Code
Learn AWS CDK with TypeScript from scratch. Understand constructs, stacks, L1/L2/L3 levels, testing, and deployment patterns for production-grade cloud infrastructure.
Enjoying this tool? Get more like it.
Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.
Unlock AI-Powered Dev Tools
- ⚡ AI Code Review, Doc Generator & SQL Builder
- ⚡ All premium templates & early access
- ⚡ Member discounts on Gumroad products
$9/mo after trial · Cancel anytime
Want the full toolkit?
Get DevPlaybook Pro
Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.
MIT licensed · Instant download · No subscription
See what's included → Browse all deals →