Explanation
Why the waste happens and who it affects.
This often results from conservative initial sizing, decreased workload demand, or failure to review and adjust after deployment. Running oversized RDS instances leads to unnecessary compute and licensing costs without delivering additional value.
Billing model
The pricing dimensions that drive this cost.
RDS instances are billed per DB instance-hour (partial hours are billed in one-second increments with a 10-minute minimum after a billable status change such as creating, starting, or modifying the instance) based on the instance class (vCPU and memory), storage, and any additional features such as Multi-AZ deployments or Provisioned IOPS. Charges accrue continuously while the instance is running, regardless of workload activity or utilization.
How to detect
4 checks to find it in your estate.
- Identify RDS instances with consistently low CPU and memory usage over a representative time window
- Compare observed performance to the instance class's capabilities to assess overprovisioning
- Check if the instance is supporting low-demand, legacy, or test workloads
- Confirm with application owners whether the current instance size is still necessary based on performance requirements
How to fix
How to remove the waste.
Switch to a smaller, more cost-effective instance class that aligns with actual usage patterns. Use performance data to inform rightsizing decisions. For workloads with variable usage, consider migrating to Aurora Serverless v2 or using Aurora Replica auto scaling if appropriate; RDS itself auto-scales storage only, not the instance class. Monitor post-migration performance to ensure service levels are maintained.
Documentation
Vendor references for pricing and configuration.