All cheat sheets
Databasescheat sheet

ElastiCache Reserved Nodes

Commit to 1 or 3 years of ElastiCache capacity for 30–55% off on-demand on the same Redis/Memcached nodes you already run. Region- and instance-type-locked, no refunds, compute-only — reserve your baseline, never your peak.

Last reviewed: July 14, 2026

TL;DR: ElastiCache Reserved Nodes cut 30–55% off the same Redis or Memcached nodes you already run 24/7, in exchange for a 1- or 3-year commitment. The discount applies automatically to matching nodes — there's no "attach" step — but reservations are region-specific, instance-type-specific, non-refundable, and cover compute only. The discipline, not the math, is the hard part: reserve your baseline, never your peak.

The numbers

  • Payment tiers: All Upfront 50–55% off, Partial Upfront ~40–45%, No Upfront ~30–35% (still beats on-demand).
  • Worked example — 4× cache.r6g.large in us-east-1 running 24/7: on-demand $0.252/hr × 4 × 730 = $735/mo ($8,820/yr); a 1-yr All Upfront reservation ≈ $5,000 up front saves ~$3,820 in year one (43%). Scale to 20 nodes → tens of thousands/yr.
  • Coverage is count-based: reserve 3, run 5 → first 3 at reserved rate, other 2 on-demand; run 2 → you still pay for 3 (no refund for the gap).
  • Field examples: a stable 8-node e-commerce cache locked a 3-yr All Upfront for 50% off, $60,000+ over three years; a fast-pivoting startup correctly stayed on-demand.

Do this

  1. Confirm the workload has been steady 3+ months — pull 90 days from Cost Explorer before committing.
  2. Reserve the baseline, not the peak — steady at 10 shards, spiking to 15 → reserve 10, let the 5 ride on-demand (pair with ElastiCache Auto Scaling).
  3. Match region and instance type exactly — a us-east-1 reservation does nothing for eu-west-1; a cache.r6g.large reservation does nothing for cache.r6g.xlarge.
  4. Pick payment by cash flow — All Upfront for max discount and clean accounting, Partial for balance, No Upfront to flatten the monthly bill without capital.
  5. Blend for less-than-certain workloads — reserve 70–80% of capacity, leave 20–30% on-demand as risk management.
  6. Set a calendar reminder 60 days before term end — reservations don't auto-renew and silently revert to on-demand.

Gotchas

  • You can't resize a reservation — need a bigger node type mid-term and you pay for the old reservation and on-demand for the new nodes; engine and instance type are locked (only AZ-within-region is modifiable).
  • Region-locked with no guardrail — AWS won't stop you buying in the wrong region; you'll pay for the reservation and the on-demand nodes elsewhere.
  • Compute only — data transfer and backup/snapshot storage still bill on-demand; the cache bill never drops to zero.
  • No clean exit — the Reserved Instance Marketplace exists but selling is clunky and usually at a loss.

Skip this if

  • The workload is experimental, bursty, short-term, or the infrastructure is changing fast — on-demand flexibility wins; a 1-year reservation on a 6-month project just burns money.
  • You haven't confirmed a stable baseline yet — reserve nothing until usage has held for at least 3 months, then commit only to the floor. For the variability side, ElastiCache Auto Scaling handles peaks while these cover the baseline.

Run this audit with your AI assistant

Paste this into Claude, ChatGPT, or any agent that can run the AWS CLI with read-only credentials. It audits your account for exactly the waste this sheet describes — and changes nothing.

You are auditing an AWS account's ElastiCache usage for Reserved Node
savings. Use the AWS CLI with READ-ONLY credentials. Do not create,
modify, or delete anything — report findings and recommended (unapplied)
fixes only.

1. Inventory: aws elasticache describe-cache-clusters — group running
   nodes by region + node type (e.g. cache.r6g.large). aws elasticache
   describe-reserved-cache-nodes — existing reservations and end dates.
2. Baseline: pull 90 days of node-hours per (region, node type) from
   Cost Explorer / CloudWatch. The sustained FLOOR (not peak) is the
   reservable count.
3. Coverage gaps: flag steady node types running on-demand with no
   matching reservation (savings left on table) and reservations nearing
   expiry (silent revert to on-demand).
4. Savings math: on-demand $/node-hr × 730 × 12 vs reserved effective
   rate (All Upfront ~50-55% off, Partial ~40-45%, No Upfront ~30-35%).
   Reserve baseline only.

Report a table: region | node type | steady count | current reservation
| recommended reserve (baseline) | term/payment | est. $/mo saved | notes
(compute-only; data transfer + backups still on-demand). Change nothing.
Works with any assistant that can run shell commands.

Want the guided version?

The ElastiCache Reserved Nodes walkthrough covers this topic interactively — it asks about your setup, branches to what’s relevant, and quizzes you on the tricky parts. Free and anonymous.

Start the walkthrough