Explanation
RDS reader nodes are intended to handle read-only workloads, allowing for traffic offloading from the primary (writer) node. However, in many environments, services are misconfigured or hardcoded to send all traffic-including reads-to the writer node. This results in underutilized reader nodes that still incur full hourly charges, while the writer node becomes a performance bottleneck and may require upsizing to handle unnecessary load. This inefficiency reduces cost-effectiveness and resilience, especially in high-throughput or scalable architectures.
Relevant Billing Model
Per-instance hourly cost for each provisioned writer and reader node
Detection
- Review whether the resource has been actively used over a representative time period
- Compare the volume of read traffic across reader nodes vs. the writer node
- Identify services that are hardcoded to target the writer node for both read and write operations
- Evaluate whether the presence of reader nodes is necessary if they are consistently underutilized
- Assess application architectures for abstraction layers or configuration patterns that bypass proper routing to readers
Remediation
- Refactor application logic or database client configurations to route read traffic to reader endpoints
- Introduce or enhance query routing layers (e.g., using database drivers with read/write splitting support)
- Remove reader nodes if there is no realistic path to utilizing them efficiently
- Monitor reader vs. writer utilization continuously to ensure traffic is appropriately distributed