0Pricing
AWS Solutions Architect · Lesson

Provisioned vs On-Demand Capacity

Choose between provisioned throughput with auto-scaling and on-demand mode based on traffic predictability and cost.

DynamoDB Capacity Units Explained

DynamoDB measures throughput in Read Capacity Units (RCUs) and Write Capacity Units (WCUs). One RCU allows one strongly consistent read per second (or two eventually consistent reads) for items up to 4 KB. One WCU allows one write per second for items up to 1 KB.

For larger items, the cost scales proportionally: a 10 KB write costs 10 WCUs; a 10 KB strongly consistent read costs 3 RCUs (ceil(10/4) = 3). Understanding capacity units is essential for estimating cost and diagnosing ProvisionedThroughputExceededException throttling errors.

Provisioned Capacity Mode

In Provisioned Capacity mode, you specify the exact number of RCUs and WCUs your table should support. DynamoDB reserves that throughput and charges you for it whether or not you use it. If your application exceeds the provisioned capacity, requests are throttled and return a ProvisionedThroughputExceededException.

Provisioned mode is ideal for workloads with predictable, stable traffic. The per-unit cost is lower than On-Demand mode, and you can further reduce cost by purchasing DynamoDB Reserved Capacity (1-year or 3-year commitments at up to 76% discount).

# Create a table with provisioned capacity
aws dynamodb create-table \
  --table-name Products \
  --attribute-definitions AttributeName=ProductId,AttributeType=S \
  --key-schema AttributeName=ProductId,KeyType=HASH \
  --provisioned-throughput ReadCapacityUnits=100,WriteCapacityUnits=50

All lessons in this course

  1. Tables, Items, and Primary Keys
  2. Provisioned vs On-Demand Capacity
  3. Global Secondary Indexes and Local Secondary Indexes
  4. DynamoDB Streams and Global Tables
← Back to AWS Solutions Architect