Cloud Cost Analyzer evaluates every RDS and Aurora instance against rules for under-utilization, over-sizing, non-Graviton classes, non-prod Multi-AZ, storage generation, backup retention, and idle read replicas, each with an estimated monthly saving and the specific change to make.
$ cca scan --provider awsRead-only, runs in about 5 minutes. Free tier, no credit card.
The highest-impact moves are right-sizing over-provisioned instances, migrating to Graviton instance classes (typically 10 to 20 percent cheaper), disabling Multi-AZ on non-production databases, moving gp2 storage to gp3, and buying Reserved Instances for steady-state workloads.
For most engines it is a modify-instance-class change with a short failover, not a data migration. Test in a non-production copy first. The pricing benefit is usually 10 to 20 percent for equivalent performance.
Usually not. Multi-AZ roughly doubles the instance cost to provide automatic failover, which dev, test, and staging environments rarely need. Reserve it for production databases with an availability requirement.
Idle gateways and avoidable data-processing charges, one per AZ.
Orphaned volumes, old snapshots, and gp2 you never moved to gp3.
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.