All cheat sheets
Databasescheat sheet

DynamoDB Reserved Capacity

Pre-commit to a baseline of provisioned DynamoDB throughput for 1 or 3 years and cut capacity rates up to 77%. Regional (not per-table), Provisioned-mode only, non-refundable — reserve your floor, never your peak.

Last reviewed: July 14, 2026

TL;DR: DynamoDB Reserved Capacity is bulk-buying reads and writes: commit to a baseline of Provisioned throughput for 1 or 3 years and get up to 77% off provisioned rates. It's a real, non-refundable commitment applied regionally (any provisioned table in the region benefits automatically). The golden rule is to reserve your traffic floor, never your peak — the discount covers steady usage while spikes bill at standard rates.

The numbers

  • Standard provisioned WCU ~$0.00065/hr vs 3-yr all-upfront ~$0.00015/hr — a 76% discount.
  • 1,000 WCUs 24/7 in us-east-1: standard ~$5,700/yr → 1-yr reserved ~$2,500/yr → 3-yr reserved ~$1,300/yr (saves ~$4,400/yr, ~$13,200 over the term — per table's worth of throughput).
  • Provisioned mode only — On-Demand (PAY_PER_REQUEST) tables don't qualify.
  • Payment options: All Upfront (biggest discount), Partial Upfront, No Upfront (smallest, still beats standard).
  • Field example: a fitness-app backend with 18 months of rock-solid 2,000 WCU / 5,000 RCU throughput went from ~$42,000/yr to $10,500/yr on a 3-yr reservation — $94,500 saved over the term.

Do this

  1. Find your floor, not your average — the sustained minimum throughput you always use (CloudWatch consumed capacity over 30–90 days).
  2. Reserve the baseline, let Auto Scaling absorb spikes — the canonical cost-optimized pattern: reserved rates on steady usage, standard rates on surges.
  3. Pick a term to match confidence — 3-yr for max savings on stable workloads; 1-yr or partial-baseline coverage as a hedge when the roadmap is uncertain.
  4. Choose payment by cash flow — All Upfront if budget allows (biggest discount), otherwise Partial/No Upfront.
  5. Set a calendar reminder ~1 month before each term ends — reservations auto-renew unless cancelled, and teams have kept paying for apps shut down months ago.

Gotchas

  • Under-reserving is the safe mistake; over-reserving is the expensive one — reserve 500 WCUs but use 300, you still pay for 500. Excess above the reservation just bills at standard rates.
  • Regional, not per-table — you can't pick which table benefits; AWS applies the discount across all provisioned tables in the region.
  • Non-refundable, non-transferable, locked-in — can't sell it, move it between accounts, or get money back; if AWS drops prices mid-term you're still committed. Start with 1-yr or partial coverage if nervous.

Skip this if

  • The workload is experimental, seasonal, or might pivot within the term — stay on standard provisioned or DynamoDB On-Demand until it settles.
  • Your tables run in On-Demand mode and you value its zero-config simplicity — you'd have to switch to Provisioned first; weigh that against the discount.
  • Your bill is dominated by cold storage, not throughput — reach for DynamoDB Standard-IA; the two stack cleanly (reserve hot throughput, tier cold storage).

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 DynamoDB tables for Reserved Capacity
savings. Use the AWS CLI with READ-ONLY credentials. Do not create,
modify, or delete anything — report findings and recommended (unapplied)
fixes only.

1. Capacity mode: aws dynamodb list-tables + describe-table — separate
   PROVISIONED tables (RC-eligible) from PAY_PER_REQUEST (not eligible).
   Sum provisioned RCUs/WCUs per region (RC is regional, applied
   automatically across tables).
2. Baseline throughput: for each provisioned table pull CloudWatch
   ConsumedReadCapacityUnits / ConsumedWriteCapacityUnits (and
   Provisioned*, plus Auto Scaling min) over 30-90 days. The FLOOR
   (sustained minimum), not the average, is the reservable amount.
3. Existing coverage: aws dynamodb describe-reserved-capacity (or Cost
   Explorer RI reports) — note current reservations and their end dates
   (auto-renew traps for shut-down apps).
4. Savings math: standard provisioned WCU ~$0.00065/hr vs 3yr all-upfront
   ~$0.00015/hr (~76%). Value = reservable units × (standard - reserved)
   × 730 × 12.

Report a table: region | provisioned RCU/WCU floor | current reservation
| recommended reserve (baseline only) | term/payment suggestion | est.
$/mo saved. Flag over-provisioned tables and near-expiry reservations.
Change nothing.
Works with any assistant that can run shell commands.

Want the guided version?

The DynamoDB Reserved Capacity 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