Skip to main content

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.

✓ AWS / GCP / Azure ✓ Idle resource cleanup ✓ Rightsizing scripts ✓ Monthly review process

Quick Wins Checklist

Action Typical Savings Effort AWS / GCP / Azure
Delete unattached EBS/PD volumes$5–200/monthLowAll
Remove old snapshots (>90 days)$10–500/monthLowAll
Release unassociated Elastic IPs$3.65/IP/monthLowAWS
Downsize over-provisioned instances30–50% computeMediumAll
Stop dev/test on nights & weekends60–70% dev costLowAll
Purchase 1-yr Savings Plan / CUD30–40% computeLowAWS / GCP
Move cold S3/GCS to archive tier70–90% storageLowAll
Delete unused load balancers$16–200/monthLowAll
Use Spot/Preemptible for CI runners60–80% CI costMediumAll
Enable S3 Intelligent-Tiering20–40% S3 costLowAWS

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

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.

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Related Articles

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$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.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →