The Choice Nobody Explains Clearly
AWS gives you two ways to commit to Aurora spend and save money: Reserved Instances and Compute Savings Plans. Both promise 30–60% off on-demand rates. Both require upfront commitment. But they work completely differently, and AWS's documentation explains the mechanics while leaving you to figure out which one fits your situation.
After running this analysis for more than a dozen clients over the past two years, the answer is almost always one of three scenarios: Reserved Instances win, Savings Plans win, or a specific combination wins. Which scenario you're in depends on three variables: engine stability, instance class stability, and region stability.
What Each Commitment Type Actually Is
Aurora Reserved Instances commit to a specific database engine, instance class, and region for 1 or 3 years. You're locking in capacity: db.r6g.2xlarge, Aurora MySQL, us-east-1, for example. If you run that configuration for the duration, you get the Reserved Instance discount. If you change engines, classes, or regions, the RI doesn't apply to the new configuration — you pay on-demand for the new instance and the unused RI keeps billing.
RDS Compute Savings Plans commit to a dollar amount of hourly compute spend across any RDS/Aurora instance in any region. They're engine-agnostic and instance-class-agnostic within the RDS family. The trade-off: Savings Plans discounts are slightly lower than the equivalent Reserved Instance discount for any given configuration, but the flexibility means you never strand commitment.
Savings Plan discount rates (approximate, 1-year, no-upfront):
db.r6g.2xlargeAurora PostgreSQL: ~32% off on-demand- Same instance with Reserved Instance (1-year, no-upfront): ~38% off on-demand
That 6-point gap is the price of flexibility.
Scenario 1: Reserved Instances Win
Your Aurora clusters have been running the same instance class for 12+ months. Your engine is Aurora PostgreSQL. You have no plans to migrate to Aurora MySQL, Aurora Serverless v2, or a different instance family within the commitment period. Your database usage is predictable and growing slowly.
This is the Reserved Instance scenario. Commit to the specific configurations you're running, get the maximum discount, and pocket the 6-point delta over Savings Plans.
The math for a 3-node r6g.2xlarge Aurora PostgreSQL cluster:
| On-Demand | RI 1-Yr No-Upfront | RI 1-Yr All-Upfront | Savings Plan | |
|---|---|---|---|---|
| Monthly cost | $3,240 | $2,011 (~38% off) | $1,890 (~42% off) | $2,203 (~32% off) |
| Annual cost | $38,880 | $24,132 | $22,680 | $26,436 |
| Annual savings vs. on-demand | — | $14,748 | $16,200 | $12,444 |
For stable, well-understood Aurora clusters, Reserved Instances (all-upfront, 1-year) save $3,756/year more than the equivalent Savings Plan commitment on the same cluster. For a 3-year term with all-upfront, the gap widens further.
Scenario 2: Savings Plans Win
You're actively migrating from Aurora MySQL to Aurora PostgreSQL. Or you're planning to move from r5 to r6g instances. Or you have development and staging environments on smaller instance classes that occasionally get resized. Or you're running Aurora in multiple regions and occasionally spin workloads up or down by region.
Any of these patterns will leave your Reserved Instances partially stranded. Savings Plans cover all of these configurations under a single commitment, so the discount applies regardless of which configuration you're running at any point.
The stranded RI scenario: A client migrated their 4-node Aurora MySQL cluster to Aurora PostgreSQL over a 6-month period. They'd purchased Aurora MySQL RIs 8 months earlier. During the migration, they ran the old MySQL cluster and the new PostgreSQL cluster simultaneously — paying on-demand for PostgreSQL while the MySQL RIs ticked down on a cluster they were actively deprecating. Total stranded cost: $11,200 over the 6-month overlap.
A Compute Savings Plan would have applied the discount to both engines throughout the migration.
Scenario 3: Combination Wins
Most mature AWS accounts have a mix of stable clusters (good RI candidates) and dynamic environments (good Savings Plan candidates).
The right approach: calculate your stable baseline — the cluster configurations you're confident will run unchanged for 12+ months — and buy RIs for those. Calculate your flexible spend — dev environments, multi-region clusters, anything engine or size-uncertain — and buy a Savings Plan to cover that commitment.
Example split for a $15,000/month Aurora bill:
- $9,000/month: 2 production Aurora PostgreSQL clusters running stable
r6g.2xlarge→ Buy RIs - $4,000/month: 1 pre-prod cluster getting resized quarterly, 1 development cluster → Buy Savings Plan
- $2,000/month: Keep on-demand (overflow, new workloads not yet committed)
The RI discount on $9,000 = ~$3,780/year saved. The Savings Plan on $4,000 = ~$1,536/year saved. Total: ~$5,316/year vs. putting everything in a Savings Plan ($4,800) or everything in RIs with stranding risk.
The Convertible RI Option Nobody Uses
AWS offers Convertible Reserved Instances for RDS at roughly 31–33% discount (lower than Standard RIs) with the ability to exchange the RI for a different instance type, engine, or scope during the term.
In theory, this is the best of both worlds. In practice, the exchange process is operationally annoying (you must use the AWS console or API, and exchanges must be for equal-or-greater value), and the discount rate is lower than Standard RIs. Most teams are better served by the combination approach above.
How to Calculate Your Right Mix
The inputs you need from your AWS console:
- Cost Explorer → RDS/Aurora spend by instance type — last 3 months. Sort by spend. Identify your top 3–5 configurations.
- For each top configuration: look at the daily usage pattern. Is it running 24/7? 60%+ of hours? That's an RI candidate. Under 60%? On-demand or Savings Plan.
- Check your migration roadmap. Any planned engine changes or instance family changes in the next 12 months? Those are Savings Plan territory.
- Savings Plans recommender in Cost Explorer will calculate your optimal Savings Plan commitment based on your trailing spend pattern — use it as a starting point, not a final answer.
What We Recommend for Most Clients
For a typical mid-market company with 3–8 Aurora clusters, most of them stable production workloads:
- Buy Standard 1-year All-Upfront RIs for your two or three largest, most stable clusters. The all-upfront discount is meaningful and you get the cash accounting done upfront.
- Buy a Compute Savings Plan sized to ~60–70% of your remaining Aurora spend. Leave the rest on-demand.
- Review and renew annually. Your cluster composition will change. Don't auto-renew RIs without confirming the configuration still matches.
Overpaying for Aurora?
We run RI/Savings Plan optimization as part of our cloud cost engagements. If your Aurora bill is above $5K/month and you're still on on-demand rates, there's money on the table.