DynamoDB On-Demand vs Provisioned Auto Scaling for Bursty Reads Under a Cost Ceiling
0 reputation · 28 Mar 2025, 10:10 UTC
Goal
Select a DynamoDB capacity mode for a table serving bursty read traffic while staying under a fixed monthly cost ceiling.
On-demand mode bills per request and requires no capacity planning, which fits unpredictable spikes. Provisioned mode with Application Auto Scaling sets read capacity units and a target utilization, usually lowering the cost per request at steady load. However, auto scaling responds to CloudWatch metrics and is not instantaneous, so a sudden burst can exceed provisioned capacity before scaling completes and throttle reads. Adaptive capacity can distribute traffic across partitions but does not remove per-partition limits or guarantee burst absorption. A table uses one capacity mode for all operations, so on-demand and provisioned cannot be mixed per request.
Because on-demand can cost significantly more at high steady throughput, the right mode depends on expected request volume and burst shape. Auto scaling target utilization and cooldown behavior are AWS-managed defaults and may change without notice.
Which capacity mode minimizes throttling risk for bursty reads while remaining under the cost ceiling? Should the table default to on-demand to absorb unpredictable spikes, or provisioned capacity with a conservative target utilization to control steady-state cost?