Skip to content
Cloud Efficiency Hub

Missing DynamoDB Reserved Capacity for Steady Provisioned Throughput

The short version

DynamoDB tables in provisioned capacity mode pay an hourly rate for every read and write capacity unit provisioned.

PointFive Research

Cloud cost research at PointFive

AWS service
AWS DynamoDB
Category
Databases
Reference
CER-0372
Type
Suboptimal Pricing Model

Explanation

Why the waste happens and who it affects.

For tables on the Standard table class, DynamoDB reserved capacity lets you commit to a minimum amount of provisioned throughput for one year, or three years in select Regions, in exchange for a large discount: AWS states savings of up to 54 percent off standard rates for a one-year term and 77 percent for a three-year term. Many organizations that run provisioned tables with a stable baseline never buy it, because it is purchased separately from compute commitments and is easy to overlook.

The opportunity is the steady floor of provisioned RCUs and WCUs that exists in every hour of the month, summed across tables in a Region, since reserved capacity applies Region-wide rather than to one table. It does not apply to on-demand tables, Standard-IA tables or replicated write capacity for global tables, and it cannot be cancelled, sold or moved, so sizing it above the durable floor turns a discount into waste. AWS Trusted Advisor and Cost Optimization Hub both provide DynamoDB reserved capacity purchase recommendations.

Billing model

The pricing dimensions that drive this cost.

Provisioned capacity
RCUs and WCUs billed per hour at standard provisioned rates for Standard table class tables
Reserved capacity
Bought in blocks of 100 RCUs or 100 WCUs with a one-time partial upfront payment plus a discounted hourly rate for the term
Commitment obligation
The entire reserved amount is billed for the full term whether or not it is used, and it cannot be cancelled or transferred
Excess usage
Provisioned capacity above the reserved amount is billed at standard provisioned rates
Database Savings Plans
A one-year spend commitment that also covers DynamoDB but cannot be combined with reserved capacity discounts on the same workload

How to detect

4 checks to find it in your estate.

  • Review the Trusted Advisor check Amazon DynamoDB reserved capacity purchase recommendations and the DynamoDB reserved capacity recommendations in Cost Optimization Hub
  • For each Region, sum ProvisionedReadCapacityUnits and ProvisionedWriteCapacityUnits (AWS/DynamoDB) across Standard table class tables in provisioned mode and find the minimum hourly level sustained over at least 30 days, including the effect of auto scaling
  • Check existing reserved capacity purchases and their expiration dates, and whether Database Savings Plans already cover the same DynamoDB usage
  • Exclude tables that are planned to move to on-demand mode, to Standard-IA, to a different Region or to be retired within the term

How to fix

4 ways to remove the waste.

  • Purchase reserved capacity for the durable Region-wide floor of RCUs and WCUs, in 100-unit blocks, and leave peaks and auto-scaled capacity at standard provisioned rates
  • Choose the one-year term unless the workload's footprint is clearly stable for three years and the Region offers the three-year term
  • Where tables may change capacity mode, table class or database engine during the term, evaluate Database Savings Plans instead, since they are more flexible but cannot be stacked with reserved capacity on the same usage
  • Right-size overprovisioned tables before buying, so the commitment is based on required capacity rather than current excess, and track utilization of purchased reserved capacity monthly

Documentation

Vendor references for pricing and configuration.