This inefficiency occurs when an RDS instance is consistently operating below its provisioned capacity—for example, showing low CPU, or memory utilization over an extended period. 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.
RDS instances are billed by the hour (or per second in some cases) 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.
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 enabling instance Auto Scaling (where supported) or migrating to Aurora Serverless if appropriate. Monitor post-migration performance to ensure service levels are maintained.