Cloud Cost Analyzer flags unattached volumes, gp2 volumes that should be gp3, old and orphaned snapshots, and magnetic or io1 volumes worth migrating, each priced so you can see the monthly saving before you touch anything.
$ cca scan --provider awsRead-only, runs in about 5 minutes. Free tier, no credit card.
Read the deep dive: Cut your EBS bill ~20% by migrating gp2 to gp3 →
Yes. An EBS volume is billed per GB per hour for as long as it exists, whether or not it is attached to an instance. An unattached 500 GB gp3 volume costs about $40 per month indefinitely until you delete it.
Yes. gp3 is a live modify-volume operation with no downtime and no data migration. gp3 is about 20 percent cheaper than gp2 and provides a higher baseline of throughput and IOPS.
Delete snapshots older than your recovery requirement, and any whose source volume no longer exists. A lifecycle policy automates this. Keep only what your restore and compliance needs actually require.
Idle gateways and avoidable data-processing charges, one per AZ.
Over-provisioned classes, non-Graviton, and Multi-AZ on non-prod.
ALBs and NLBs with no targets or near-zero traffic, still billing.
Cold data sitting in Standard with no lifecycle policy.
Idle and oversized instances, previous-gen types, 24/7 dev boxes.
Oversized instances, Serverless v1, and I/O-Optimized breakevens.
Idle cache clusters and oversized, non-Graviton nodes.
Idle distributions and price classes wider than your audience.
On-demand billing on steady workloads, and unused indexes.
Over-provisioned memory and x86 functions that could be arm64.