RDS Pricing Optimization: Instance Sizing, Storage, RIs, and Engine Choice
Amazon RDS is the most over-spent database service in the AWS catalogue because the cost model has four moving parts and most teams optimise only one. The combined cost of instance class, storage tier, Multi-AZ posture, engine licence, and reserved coverage typically delivers 30 to 50 percent reduction without touching application code.
RDS pricing has more moving parts than any other AWS database service: instance class, storage tier (gp2 / gp3 / io2), allocated capacity, provisioned IOPS, automated backup storage, snapshot retention, Multi-AZ multiplier, engine licence (License Included versus BYOL for SQL Server and Oracle), and the reserved-instance coverage layer on top of all of it. The interaction effects are large. Our engagements average 32 percent reduction in RDS run-rate with no application changes, and 45+ percent when engine consolidation is on the table.
The RDS cost meters
| Meter | What it bills | Where it leaks |
|---|---|---|
| Instance-hours | Per-hour rate by class, region, engine, single- vs Multi-AZ | Oversized class, Multi-AZ on non-prod, LI when BYOL is available |
| Storage (gp2/gp3/io2) | Per-GB-month allocated | gp2 above 100 GB, over-allocation, no shrink path |
| Provisioned IOPS (io2 / gp3 over baseline) | Per-IOPS-month | io2 default when gp3 would suffice |
| Backup storage | Per-GB-month above 100% of instance storage | Long retention windows, cross-region copies |
| Snapshot export | Per-GB export to S3 | Routine snapshot export without lifecycle |
| Data transfer | Cross-AZ replica traffic, cross-region snapshot copies | Multi-AZ replicas in chatty applications |
Instance class right-sizing
Default instance class selection is the single largest source of RDS waste. The patterns we see most often:
- db.m5.large default when db.t4g.medium would suffice. Burstable T-family classes are appropriate for any workload with sustained CPU under 40 percent. The savings are immediate and substantial.
- db.r5 for memory headroom that never materialises. Memory-optimised classes (r-family) double the instance-hour cost. Justify with measured working-set size, not aspiration.
- No Graviton migration. db.m6g, db.r6g, db.t4g (Graviton) deliver 15 to 20 percent better price-performance than the Intel equivalents for MySQL and PostgreSQL. Migration is a binary change with no application impact.
The discipline: 14-day CloudWatch CPU, memory, and IOPS analysis on every instance above $300/month. Anything sustained under 35 percent CPU drops two classes; anything between 35 and 60 percent drops one class.
Storage tier selection
gp3 separates storage capacity pricing from IOPS pricing. For any volume above roughly 100 GB, gp3 is cheaper than gp2 at the same throughput because the baseline IOPS allocation in gp3 (3,000 IOPS, 125 MB/s) is decoupled from the volume size. You pay extra only for provisioned IOPS or throughput above the baseline.
The decision rules:
- gp3 for almost every workload. Default choice unless you have a specific reason otherwise.
- gp2 only for volumes below 100 GB where gp3 cost flatlines without benefit.
- io2 Block Express only for workloads requiring sustained IOPS above 64,000 or sub-millisecond latency. The cost premium is real.
Storage allocation review is the second discipline: RDS does not let you shrink a volume in place. Over-allocated databases must be migrated via snapshot-and-restore to a smaller allocation. The break-even point: any volume with 40+ percent free space at over $5K annual storage cost is worth migrating.
Multi-AZ rationalisation
Multi-AZ deployments double the instance and storage cost in exchange for synchronous standby in another AZ. The decision tree:
- Production transactional databases. Multi-AZ is usually justified. Failover RTO is roughly 60 to 120 seconds.
- Production read-heavy databases with replica strategy. Read replicas in multiple AZs can deliver equivalent resilience without the synchronous standby cost; evaluate per workload.
- Pre-production / QA / development. Multi-AZ is almost never justified. Audit annually; the savings are often six-figure across a mature estate.
- Analytics / reporting databases. Multi-AZ is rarely required; rebuilds from source data are usually faster than the cost of synchronous standby.
Reserved Instances on RDS
RDS Reserved Instances apply per database engine, instance family, and Multi-AZ posture. There is no equivalent to EC2 Savings Plans for RDS; you must match RI parameters to instance usage.
| Term | Payment | Approximate savings |
|---|---|---|
| 1 year | No upfront | 30 to 35 percent off on-demand |
| 1 year | Partial upfront | 33 to 38 percent |
| 1 year | All upfront | 35 to 40 percent |
| 3 year | No upfront | 50 to 55 percent |
| 3 year | Partial upfront | 57 to 62 percent |
| 3 year | All upfront | 60 to 65 percent |
The coverage target on steady-state RDS spend is 65 to 80 percent depending on workload predictability. Anything below 60 percent on a mature estate is leaving meaningful money on the table; anything above 90 percent risks paying for capacity you will retire.
SQL Server and Oracle licence economics
RDS for SQL Server and Oracle has the highest cost variance of any RDS configuration. The model:
- License Included (LI). AWS bundles the engine licence into the instance-hour rate. Premium of 50 to 200 percent over the equivalent open-source engine class. Easiest to deploy.
- Bring Your Own License (BYOL). Your existing licence portability rules apply. Cuts the AWS instance-hour rate substantially but requires Microsoft or Oracle licence positioning that many enterprises cannot achieve.
- Migration to PostgreSQL. The structural cost cure. AWS DMS and the Babelfish for Aurora PostgreSQL compatibility layer have closed the migration gap for many SQL Server workloads.
For sustained SQL Server LI spend above $500K annual, AWS will negotiate 10 to 30 percent custom discounts on the LI premium under an EDP private pricing agreement. Most buyers never ask.
Backup and snapshot hygiene
RDS includes automated backup storage up to 100 percent of your instance allocated storage at no charge. Beyond that, you pay per-GB-month. Manual snapshots are billed in full. Cross-region snapshot copies bill data transfer plus destination-region storage.
The audit:
- Cap automated backup retention at 7 to 14 days for most workloads; 30 days only where compliance requires.
- Lifecycle manual snapshots to S3 Glacier via snapshot export for long-term retention.
- Audit cross-region snapshot copies; many are inherited from initial DR posture and no longer required.
The EDP overlay
Beyond the line-item optimisations, RDS spend rolls into the EDP private pricing tier conversation. The negotiable elements:
- Standard EDP tier discounts on RDS instance pricing (typically 5 to 20 percent depending on commit level).
- Custom discounts on SQL Server LI premium above $500K annual spend.
- Aurora I/O-Optimized pricing concessions on write-heavy workloads.
- Backup storage tier discounts at multi-PB scale.
Case study: $1.4M RDS estate
A SaaS customer with $1.4M annual RDS spend across 84 instances. Audit findings:
- 22 production databases on db.r5 where db.m5 or db.t4g would suffice. Right-sizing recommended.
- 56 of 84 instances on gp2 storage with average 65 percent free space.
- 11 non-production Multi-AZ deployments.
- RI coverage at 41 percent of steady-state spend.
- 14 SQL Server LI instances totaling $310K annual; PostgreSQL migration feasible on 9 of them.
Interventions and results:
- Right-sizing on 19 instances. $186K annualised saving.
- gp2 to gp3 conversion on 56 volumes. $94K annualised saving.
- Multi-AZ removal on 11 non-prod. $138K annualised saving.
- RI coverage raised to 72 percent over 90 days. $202K annualised saving.
- PostgreSQL migration on 9 SQL Server instances over 18 months. $215K annualised saving once complete.
Combined 18-month run-rate reduction: $835K, a 60 percent cut against baseline.
Action checklist
- Pull a 14-day CloudWatch report on every RDS instance above $300/month. Flag CPU under 35 percent sustained.
- Convert all gp2 volumes above 100 GB to gp3.
- Audit Multi-AZ on every non-production database.
- Bring RI coverage on steady-state spend to 65 to 80 percent.
- Quantify SQL Server / Oracle LI cost; model BYOL or PostgreSQL migration.
- Scope RDS spend into the next EDP negotiation conversation.
- Contact our advisory team for an RDS estate audit benchmarked against $2.4B+ of reviewed AWS spend.
RDS is the AWS service where the gap between default-deployed and well-managed cost is largest. See our AWS database cost strategy guide for how RDS fits the broader database picture.