DEV Community

Cover image for RDS Reserved Instance Pricing: Every Engine, Every Rule, Real Dollar Savings
Aman Singh
Aman Singh

Posted on

RDS Reserved Instance Pricing: Every Engine, Every Rule, Real Dollar Savings

Every RDS instance running on-demand is paying the highest rate AWS offers. RDS reserved instance pricing cuts that rate by 29% on the lowest 1-year commitment to 69% on a 3-year All Upfront term, depending on engine and instance type. For a db.r8g.xlarge PostgreSQL Multi-AZ, the difference between on-demand and 3-year reserved is roughly $4,800/year on a single instance. Across a fleet of 20, that's $96,000/year in avoidable spend.

The mechanics are more nuanced than EC2. The engine matters as much as the instance type. Size flexibility rules differ by engine. Oracle and SQL Server license model variants produce dramatically different reservation economics. Extended Support charges a significant cost item since March 2026 are specifically excluded from RI discounts, creating a trap for teams that reserve first and then discover their engine version is past end-of-standard-support.

What Are RDS Reserved Instances?

RDS reserved instances are a billing commitment: discounted hourly rate in exchange for a 1-year or 3-year term. You specify the engine, instance class, region, deployment type (Multi-AZ or Single-AZ), and payment option. AWS automatically applies the discount to matching running instances.

You are billed for the entire term regardless of whether the instance is running. Stop an RDS instance and you still pay the reserved rate. Terminate it; the reservation keeps billing until it expires. There are no Convertible RDS reserved instances (unlike EC2), so you cannot change engines or families after purchasing.

Payment Options

Three structures, with one constraint most guides skip: No Upfront is only available on 1-year terms. For 3-year, you must choose Partial or All Upfront.

No Upfront (1-year only): No capital outlay. Pay the reserved hourly rate for every hour of the term. Saves ~29–34% vs on-demand. Cost-positive from hour one.

Partial Upfront (1-year or 3-year): Pay a portion upfront, reduced hourly rate for the remainder. ~33–38% savings on 1-year, ~50–60% on 3-year. Most commonly chosen for 3-year terms.

All Upfront (1-year or 3-year): Full payment at purchase, zero hourly charges. Highest savings: ~34–38% for 1-year, up to 63–69% for 3-year. The difference between All Upfront and No Upfront on the same term is typically 3–10%, which becomes significant on large instance types. For a db.r8g.xlarge Oracle BYOL over 3 years, that spread is approximately $1,500–2,000 total.

Which Engines Support Size Flexibility?

Size flexibility lets your RI discount apply proportionally across instance sizes within the same family, using normalization units.

Engines with size flexibility: MySQL, MariaDB, PostgreSQL, Aurora (MySQL and PostgreSQL), Oracle BYOL.

Engines WITHOUT size flexibility: Microsoft SQL Server (all editions), Oracle License Included.

Normalization units follow the vCPU doubling pattern: micro = 0.5, small = 1, medium = 2, large = 4, xlarge = 8, 2xlarge = 16, 4xlarge = 32, 8xlarge = 64.

A db.r8g.xlarge reservation (8 units) covers two db.r8g.large instances (4 units each). A db.r8g.4xlarge reservation (32 units) fully covers four db.r8g.large instances (16 units) with 16 units remaining.

For SQL Server and Oracle LI, where size flexibility does not apply, you must match your exact instance size at purchase time. Resizing a SQL Server instance voids reservation coverage making right-sizing decisions significantly riskier before committing.

If you want to understand how AWS Savings Plans share across consolidated billing accounts, we covered it in detail here How AWS Savings Plans Share Across Consolidated Billing Accounts

Real Dollar Savings by Scenario

Percentages are less useful than dollar amounts when justifying a reservation to finance. Four realistic production scenarios:

PostgreSQL db.r8g.xlarge Multi-AZ On-demand: $0.960/hr × 8,760 hrs = $8,410/year. 1-year No Upfront: ~$5,974/year, saving $2,436 (29%). 3-year All Upfront amortized: ~$4,117/year, saving $4,293 (51%). Over 3 years on 5 such instances: $64,395 total savings.

MySQL cluster (4× db.r8g.large Single-AZ) On-demand: $8,410/year for all 4. 3-year All Upfront: ~50% savings = ~$4,205/year. 3-year total savings: ~$12,615.

SQL Server Standard (db.r8g.xlarge Multi-AZ, 2 instances) On-demand: ~$42,889/year. 1-year No Upfront: ~25% savings = $10,722/year. 3-year All Upfront: ~41% savings = $17,585/year. 3-year total savings: $52,755. High absolute rates mean even a 25% RI discount generates large absolute dollar savings.

Oracle BYOL vs License Included Oracle LI db.r8g.xlarge Multi-AZ on-demand: $3.124/hr. Oracle BYOL same spec on-demand: $0.960/hr. Migrating from LI to BYOL before reserving saves $18,957/year before any RI discount. After migration to BYOL with 3-year All Upfront: ~$0.470/hr effective rate. Total saving vs Oracle LI on-demand: $23,249/year $69,747 over 3 years. If you own Oracle licenses through an Enterprise Agreement, BYOL plus 3-year reservation is the single highest-impact RI decision in the RDS portfolio.

The Extended Support Cost Trap

Starting March 1, 2026, AWS charges $0.20 per vCPU-hour in US East for RDS Extended Support on MySQL and PostgreSQL instances past their major version end-of-standard-support date.

The critical rule: RDS reserved instance discounts do NOT apply to Extended Support charges. The surcharge is calculated separately on top of your instance rate.

Worked example db.m7g.xlarge (4 vCPUs) running MySQL 8.0 after it reaches EOL:

  • Base compute with 3-year All Upfront reserved: ~$0.140/hr
  • Extended Support surcharge: 4 vCPUs × $0.20/hr = $0.80/hr
  • Effective hourly rate: $0.940/hr
  • Compare to original on-demand without Extended Support: $0.311/hr

A team on a 3-year reserved instance ends up paying 3× the original on-demand rate purely because of the surcharge on an EOL engine.

Engine versions approaching end-of-standard-support: MySQL 8.0 (community EOL April 2026), PostgreSQL 14 (November 2026). Always verify current EOL dates before purchasing multi-year reservations on any engine version.

The right sequence: upgrade your engine version first. Then purchase reserved instances.

For spend-based flexibility as an alternative to per-instance commitments, see how Database Savings Plans compare Understanding Savings Plan Amortized Cost in AWS Cost Explorer

How to Buy RDS Reserved Instances Correctly

  1. Identify stable, long-running instances. Production databases running 24/7, stable in size for 30+ days, expected to continue in the same region for 12+ months. Instances that stop regularly (dev environments, batch jobs) are poor candidates, you pay for every hour of the term.

  2. Verify engine version before committing. Confirm the version has at least 18 months of standard support remaining within your reservation term. If not, the Extended Support surcharge can eliminate RI savings entirely.

  3. Migrate to Graviton before reserving. Graviton3 instances (db.m7g, db.r7g, db.t4g) deliver ~15% better price-performance than equivalent x86 at the same or lower on-demand rate. Migrating from db.m5/db.r5 before reserving reduces the base rate you're committing against, while still delivering the same 29–69% RI discount.

  4. Start with 1-year No Upfront. Saves 29–34% with no capital outlay. After 12 months of confirmed stable usage, evaluate the 3-year term. The incremental savings from extending to 3-year All Upfront; an additional 15–35 percentage points depending on the engine, justify careful analysis before each renewal.

  5. Use size flexibility to right-size without risk. For MySQL, PostgreSQL, MariaDB, Aurora, and Oracle BYOL, buy reservations at the instance family level. A db.r8g family reservation automatically covers size changes up or down within that family, removing the capacity planning rigidity that makes SQL Server and Oracle LI reservations significantly more risky.

Automating RDS RI Management with Usage.ai

Managing RDS reserved instances across a fleet of 20–50 instances requires constant tracking: utilization checks, term expiration alerts, new instance qualification, and engine EOL monitoring.

Usage.ai Flex Reserved Instances refresh RDS utilization analysis every 24 hours, versus AWS Cost Explorer's 72+ hour cycle. At $6–12K/day in uncovered RDS on-demand spend for a mid-size fleet, a 3-day lag means $18–36K in unnecessary charges per review cycle. For Oracle and SQL Server where Database Savings Plans don't apply, Usage.ai Flex Reserved Instances is the only automated optimization path. If a reservation becomes underutilized because an instance is resized or deprecated, Usage.ai provides cashback and credits on the unused portion. The fee is a percentage of realized savings only.

What's been the trickiest part of managing RDS reserved instances at your org sizing SQL Server reservations, catching EOL engine versions before committing, or something else?

For the complete technical breakdown, read the full article here → RDS Reserved Instances: Engine-by-Engine Pricing and Commitment Guide

Top comments (0)