RDS Right-sizing
CostLens flags over-provisioned RDS instances that could run on a smaller instance class, and can resize them for you.
CostLens flags RDS instances that are over-provisioned — running on a larger instance class than their actual workload needs. Unlike an idle database (zero connections), these are in use but sit at low CPU with no spikes, so they can move to the next smaller class in the same family and keep headroom.
Resizing reboots the database
Changing an RDS instance class reboots the instance — a brief failover (~60–120s) for Multi-AZ, or a short outage (~1–3 min) for Single-AZ. Your data and storage are untouched. Apply during a maintenance window and confirm your application reconnects cleanly.
How it works
CloudWatch CPU is analysed
CostLens reads 14 days of CPUUtilization for each available database and requires at least 7 days of data (a full weekly cycle) before making a call.
Over-provisioning is detected
A database is flagged when its average CPU sits between 1% and 25% and its peak daily-average stays under 50% (spiky databases that occasionally need the headroom are skipped). Read replicas and Aurora are excluded.
A smaller class is recommended
CostLens recommends the next smaller class in the same family (e.g. db.m5.2xlarge → db.m5.xlarge). Savings are the difference between the two classes' monthly rates.
Confidence: CPU-only
RDS does not expose a memory-utilisation metric without an in-guest agent, so this recommendation is based on CPU alone. Confidence is therefore capped at Medium — confirm the database has memory headroom (buffer cache, connections) before applying.
What to do
- Review the recommendation — the current class, the recommended class, and the observed average/peak CPU.
- On Apply, choose either the CostLens-recommended class or a different class from the size picker (each option shows its monthly cost and savings). You keep full control over the final size.
- Apply during a maintenance window; the change is applied immediately with a reboot.
- CostLens can roll the change back within 24 hours if needed.
Required IAM permissions
rds:DescribeDBInstances
cloudwatch:GetMetricStatistics
rds:ModifyDBInstance
Limitations
- CPU-only signal — validate memory headroom yourself before applying.
- Multi-AZ savings are estimated from single-AZ list prices (conservative — actual savings are typically higher).
- Aurora and read replicas are not covered in this version.