EC2 mostly moved to Savings Plans, but Reserved Instances are still the cheapest commitment for RDS, ElastiCache, Redshift, and OpenSearch — the database and analytics tier where most teams overspend. This page covers Standard vs Convertible, 1-year vs 3-year and the upfront tradeoff, regional vs zonal scope, the RI Marketplace, how to read utilization and coverage, exchanges and modifications, and the one mistake — stranded RIs — that quietly burns the discount you paid for.
If the last time you tuned Reserved Instances was a few years ago, the mental model has flipped. EC2 RIs still technically exist, but for compute the right default in 2026 is a Savings Plan. RIs earn their keep in the database and analytics tier, where they still give the deepest discount on a stable instance.
Reserved Instances were AWS's original commitment discount: promise to run a specific instance type for one or three years, get a large discount versus on-demand. They worked, but they were rigid — a reservation was tied to an instance family, and changing your architecture could strand it. In 2019 AWS launched Savings Plans, which commit to a dollar-per-hour of spend rather than a specific instance, and for EC2/Fargate/Lambda that flexibility usually wins. The practical result by 2026: most teams cover compute with Savings Plans and stop buying EC2 RIs entirely.
For databases the picture changed too. AWS now sells Database Savings Plans: a $/hour commitment over a 1-year term with no upfront payment, up to 35% off, applied across Aurora, RDS, DynamoDB, ElastiCache for Valkey, DocumentDB, Neptune, Keyspaces, Timestream, DMS and OpenSearch regardless of engine, size or Region. Redshift is not on the list. RIs (and Redshift reserved nodes) still give a deeper discount on an instance you are sure will not change, and you cannot stack a Database Savings Plan and an RDS RI on the same workload. So the question in 2026 is: which database spend is stable enough for an RI, and which needs the flexibility of a Database Savings Plan?
This matters because the database tier is where a lot of teams quietly overspend. Compute gets right-sized and Spot-optimized because engineers touch it daily; the RDS Multi-AZ Postgres instance that has been running at the same size for 18 months rarely gets a second look. That stable, always-on, predictable footprint is exactly what a Reserved Instance is built to discount. The boring, steady part of your bill is usually the most reservable part.
A useful framing: think of your bill in two pools. The compute pool (EC2, Fargate, Lambda) is best covered by Compute Savings Plans. The data pool (RDS and Aurora, ElastiCache, Redshift, OpenSearch) is covered by Reserved Instances or nodes for the stable floor, and by Database Savings Plans where engines, sizes or Regions may change. A mature strategy sizes each to the steady-state floor and leaves the spiky top layer on on-demand or Spot. The rest of this guide is mostly about the data pool, because that is where RIs live now.
The single most common misconception is that a Reserved Instance is a reserved server. It is not. An RI is a billing construct — a discount that auto-applies to matching usage. You never "launch into" an RI; you keep running normally and the discount lands on your invoice.
When you buy a Standard RDS RI for, say, a db.r6g.xlarge running PostgreSQL in us-east-1, you are not reserving a machine. You are telling AWS billing: "for the next 12 or 36 months, charge me the reserved rate for one r6g.xlarge-equivalent of PostgreSQL in this region." Each hour, the billing engine looks at your running instances, finds usage that matches the reservation's attributes, and applies the discounted rate to it. If nothing matches that hour, the reservation earns nothing — you still paid for it (or owe the recurring fee), but it discounted nothing.
The attributes that have to match depend on the service, but generally include: the instance/node family and size, the region, the database engine (Postgres vs MySQL vs Aurora, etc.), and sometimes the deployment option (Single-AZ vs Multi-AZ for RDS). For RDS specifically, "size flexibility" within a family means one reservation can cover a different size in the same family by scaling its coverage proportionally — a single db.r6g.2xlarge reservation can cover two db.r6g.xlarge instances, for example. That flexibility is one reason buying at a mid-size and letting it spread is often smarter than buying many small reservations.
Because it is a billing discount, an RI cannot be "turned off" to save money during a quiet period — the commitment is the point. If you All-Upfront a 3-year RDS RI and then migrate that database to Aurora Serverless v2 six months in, the original RI keeps charging (or stays sunk) and now matches nothing. This is the mechanism behind stranded RIs, covered in Section VIII. The discipline an RI demands is forecasting: only reserve the part of your footprint you are confident will still be running, in roughly the same shape, for the length of the term.
The first real decision is Standard vs Convertible. It is a discount-for-flexibility trade. Standard RIs discount more; Convertible RIs let you exchange into different instance families later. Pick based on how confident you are in your architecture over the term.
A Standard RI is the cheaper, more rigid option. It locks you to an instance family and (mostly) the attributes you bought. You can still modify some attributes within limits — change the Availability Zone, change scope from zonal to regional, or split/merge across sizes in the same family — and Standard RIs can be sold on the RI Marketplace (EC2) if you need an exit. What you cannot do with a Standard RI is exchange a db.r6g into a db.m6g or a different engine. If your architecture is settled, Standard captures the deepest discount.
A Convertible RI costs a few discount points more but adds the exchange right: you can trade it for a Convertible RI of a different instance family, OS/engine, or tenancy, as long as the new reservation is of equal or greater value. That makes Convertibles the safer choice when you expect to migrate instance families during the term — for example, an ARM/Graviton migration (r5 → r6g), or a planned move from one engine to another. The cost of that insurance is typically on the order of 3–8 percentage points of discount versus the equivalent Standard RI; treat exact spreads as representative and check current AWS pricing.
In practice the decision tracks your roadmap. If you are reasonably sure the reserved workload will look the same in three years (a stable production Postgres primary, a steady Redis cache), Standard wins on price. If a migration is likely — Graviton, an engine change, a re-platform — Convertible is cheaper than eating an exchange or stranding a Standard RI you can no longer use. A common pattern: Standard for the genuinely stable core, Convertible for the parts of the estate you expect to evolve.
Buy Standard for workloads you are confident survive the full term unchanged (cheapest discount). Buy Convertible when a family/engine migration is plausible — the ~3–8 point premium is far cheaper than a stranded Standard RI earning nothing for two more years.
Two independent dials set how deep the discount goes: the term (1 or 3 years) and how much you pay up front (None, Partial, or All). Longer term and more upfront both push the discount higher — and both reduce your flexibility and tie up cash.
Term is the bigger lever. A 3-year commitment discounts substantially more than a 1-year one — but it is a real three-year bet on the workload still existing in roughly the same form. For an early-stage company whose architecture might be unrecognizable in 18 months, a 1-year term is usually the right call even though it leaves discount on the table; the optionality is worth more than the extra points. For a stable, predictable production database that is not going anywhere, 3-year captures the deepest savings.
Payment option is the second dial. No Upfront spreads the cost across monthly charges and holds zero cash, at the smallest discount. All Upfront pays the entire term at purchase for the deepest discount. Partial Upfront sits in between — roughly half up front, the rest monthly. The spread between No Upfront and All Upfront on the same term is typically only a few percentage points, so the decision is mostly about cash: if capital is tight (and for a startup it usually is), No Upfront captures most of the benefit without locking up cash that is more valuable in the business than in a prepaid reservation.
There is also a credits point. AWS promotional credits do not pay Savings Plans or Reserved Instance upfront fees. (AWS Promotional Credit Terms, checked 2026-10-10.) So if Activate credits cover your monthly bill, an All Upfront or Partial Upfront reservation is still paid in cash. Check the credit terms before you buy. The table in Section VI lays out the four common term and payment combinations side by side with representative discount bands.
Say a production setup runs a steady $4,000/month of RDS that has been stable for over a year and is clearly not changing. On-demand, that is ~$48,000/year. Covering the steady floor with RIs at a representative 3-year All-Upfront discount of ~60% takes the covered portion to roughly $19,000/year — a saving on the order of ~$29,000/year on that slice alone.
The same coverage on a 1-year No-Upfront RI at a representative ~35% discount saves closer to ~$17,000/year — less, but it holds the cash and you are free again in twelve months. Neither is "right" in the abstract: the 3-year deal wins on dollars, the 1-year deal wins on flexibility and cash. The decision is a forecast about how sure you are this workload looks the same in three years. (Treat the percentages as representative; confirm current rates in the AWS pricing pages or Cost Explorer's recommendations.)
Two details that materially change how much of your discount you actually capture: the scope of the reservation (regional vs zonal), and your exit route if you no longer need it (the RI Marketplace, for EC2).
Scope decides how broadly a reservation can match. A regional-scoped RI applies the discount across any Availability Zone in the region and brings instance-size flexibility within the family — so it floats to wherever the matching usage runs. A zonal-scoped RI is pinned to a specific Availability Zone and, in the EC2 case, additionally reserves capacity in that AZ. For almost all cost-optimization purposes you want regional scope: it maximizes the chance the reservation finds matching usage and minimizes the risk of stranding it because a workload moved AZs. Choose zonal only when you specifically need the capacity reservation guarantee in a particular AZ.
The RI Marketplace is the exit valve — for EC2 Standard RIs specifically. If you hold a Standard EC2 RI you no longer need, you can list it for sale to other AWS customers and recover some of the remaining value. It is not a full refund mechanism and it does not cover Convertible RIs or, in general, the database-tier RIs (RDS/ElastiCache/Redshift/OpenSearch) — so do not buy a 3-year database RI assuming you can simply resell it if plans change. For the database tier, your "exit" is really modification (adjusting attributes) or, for Convertibles, exchange — not resale.
The practical takeaway: default to regional scope, and do not treat the Marketplace as a safety net for anything except EC2 Standard RIs. For everything in the data tier, the safety net is buying the right term length and using Convertibles where a change is plausible — because once you own a database RI, you mostly live with it until it expires.
| Configuration | Discount vs on-demand | Cash up front | Flexibility | Best for |
|---|---|---|---|---|
| 1yr · No Upfront | ~30–42% | None | Highest (exits in 12mo) | Early-stage; uncertain roadmap; credit-funded bills |
| 1yr · All Upfront | ~38–48% | Full year | Medium | Stable workload, cash available, 12-month horizon |
| 3yr · No Upfront | ~48–58% | None | Low (3yr lock, no cash) | Confident on workload, want to preserve cash |
| 3yr · All Upfront | ~55–65% | Full 3 years | Lowest | Rock-stable core DB; maximize $ savings |
This is the question that sends people to this page. For compute the answer is usually Savings Plans. For databases it is now a real choice between RIs and Database Savings Plans.
For compute (EC2, Fargate, Lambda): Savings Plans almost always win in 2026. A Compute Savings Plan commits to a dollar/hour of compute spend and floats across instance families, sizes, regions, OS, tenancy, and even between EC2, Fargate, and Lambda — at roughly the same discount an EC2 Convertible RI used to give, with far more flexibility. An EC2 Instance Savings Plan goes a bit deeper on discount in exchange for committing to a specific family in a region. There is very little reason left to buy a new EC2 RI when a Savings Plan covers the same spend more flexibly.
For the data and analytics tier (RDS and Aurora, ElastiCache, Redshift, OpenSearch): Reserved Instances or nodes give the deepest discount on an instance that will not change, and Redshift reserved nodes are the only commitment for Redshift. Database Savings Plans (up to 35%, 1-year, no upfront) fit database spend that may move across engines, sizes or Regions. You cannot use both on the same RDS workload, so split them by workload.
The right portfolio therefore uses both, deliberately: Savings Plans sized to the steady-state floor of your compute spend, and Reserved Instances sized to the steady-state floor of your database/analytics spend. The mistake is treating it as one-or-the-other across the whole bill, or — worse — buying EC2 RIs out of habit when a Savings Plan would cover the same compute with room to change your architecture. The comparison table below frames the two tools head to head.
Use Savings Plans for: EC2, Fargate, Lambda. Prefer Compute Savings Plans for flexibility; EC2 Instance Savings Plans when you want a deeper discount on a stable family and accept less flexibility.
Use Reserved Instances or nodes for: stable RDS and Aurora, ElastiCache and OpenSearch instances you are sure of for the term, and Redshift (reserved nodes). Use Database Savings Plans for: database spend that may change engine, size or Region, including DynamoDB and serverless databases.
Use neither (stay on-demand / Spot) for: spiky, short-lived, or experimental workloads above your committed floor — and interruption-tolerant batch/stateless compute, where Spot beats any commitment discount.
A Reserved Instance only saves money in the hours it matches running usage. The recurring failure mode is the stranded RI: a reservation whose attributes no longer match anything you run, quietly earning a fraction of what you paid for it. Keeping coverage healthy is an ongoing job, not a one-time purchase.
Stranding happens for ordinary reasons. You buy a 3-year RDS RI for a db.r5.xlarge, then migrate to Graviton (db.r6g) for better price-performance — and the old Standard RI, locked to r5, now matches nothing. Or you right-size a database down, or change engines, or move a workload to a region you did not reserve in. The reservation keeps charging (or stays sunk if All-Upfront) while discounting little or nothing. The cruel irony: the cost-optimization work that improves your architecture is often exactly what strands a rigid reservation bought without an exit plan.
AWS gives you two repair tools. Modification changes attributes of an existing RI without buying a new one — adjust the Availability Zone, flip scope from zonal to regional, or split/merge coverage across sizes within the same instance family. Modification does not let you change family or engine. Exchange (Convertible RIs only) lets you trade into a different family/engine/tenancy, provided the new Convertible RI is of equal or greater value. This is the entire reason to pay the Convertible premium up front: when the architecture moves, you exchange instead of strand.
Operationally, the fix is a managed commitment portfolio with three habits. First, ladder your terms — stagger expirations across quarters instead of one giant cliff, so you re-forecast continuously and never face a single huge renewal decision. Second, monitor utilization and coverage as named metrics: utilization is the percentage of each reservation actually being used (you want this near 100%), and coverage is the percentage of eligible usage sitting under a commitment (you tune this to your steady-state floor, not 100% — over-covering a spiky workload strands the reservation on quiet days). Third, run exchanges and modifications as your estate evolves rather than letting reservations drift out of alignment. Cost Explorer's utilization and coverage reports, plus its reservation recommendations, are the built-in starting point.
Watch RI utilization in Cost Explorer. A reservation sitting at, say, 60% utilization means ~40% of what you committed to is discounting nothing — usually a sign the workload moved, shrank, or changed family. Catch it early and you can often modify or exchange your way back to near-100%; ignore it and you pay the premium for the rest of the term for nothing.
For compute, Savings Plans win on flexibility at a comparable discount. For databases, RIs give the deeper discount and Database Savings Plans give the flexibility. Use this to decide what to commit and how.
| Variable | Reserved Instances / Nodes | Savings Plans |
|---|---|---|
| Covers | RDS and Aurora, ElastiCache, Redshift, OpenSearch (and EC2, legacy) | Compute SP: EC2, Fargate, Lambda. Database SP: Aurora, RDS, DynamoDB, ElastiCache for Valkey, OpenSearch and more (not Redshift) |
| Commit to | A specific instance/node family + attributes | A dollar/hour of compute spend |
| Flexibility | Low–medium (Convertible can exchange family) | High (Compute SP floats across family/region/service) |
| Discount vs on-demand | ~30–65% by term and payment | Compute SP up to 66%; EC2 Instance SP up to 72%; Database SP up to 35% |
| Terms | 1yr / 3yr · No / Partial / All Upfront | 1yr / 3yr · No / Partial / All Upfront |
| Exit / change | Modify; exchange (Convertible); resell EC2 Standard on Marketplace | No resale; commitment runs the full term |
| Right default in 2026 | Stable database instances; the only option for Redshift | The default for compute; Database SP for database spend that changes |
You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.
We read your answers and pick one vetted AWS consulting partner that fits the work, the stack and the region. We reply within 24 hours; your matched partner reaches out within 5 business days.
Your matched partner scopes the work with you. Then it checks which partner-filed funding fits: MAP if you are moving to AWS, POC if you want to test something, or incremental workload (IW) funding if you are already on AWS and launching new work.
If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.
CloudRoute is free for startups. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.
AWS Activate credits are separate, and you apply for them yourself. Use Activate Founders if no investor backs you. Use Activate Portfolio with the Org ID or invite from your VC, accelerator, incubator or angel group if it is an Activate Provider. A consulting partner cannot apply for Activate on your behalf.
CloudRoute matches you with a vetted AWS partner who audits your RI utilization, coverage and stranded reservations, builds the right blended RI and Savings Plan portfolio, and does the rework. CloudRoute is free for startups.