DynamoDB On-Demand vs Provisioned Auto Scaling for Bursty Reads Under a Cost Ceiling
0 reputation · 28 Mar 2025, 10:10 UTC
0 reputation · 28 Mar 2025, 10:10 UTC
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?
Default to on-demand capacity mode if minimizing throttling risk for bursty reads is the priority and the projected monthly bill fits under your cost ceiling. On-demand has no provisioned capacity to exhaust, so it absorbs sudden spikes without the scale-up lag that affects provisioned tables. Provisioned capacity with Application Auto Scaling can lower costs at steady load, but it does not guarantee burst absorption; reads can still throttle while CloudWatch metrics propagate and new capacity is added.
Confirmed behavior:
Likely cost trade-off:
| Factor | On-Demand | Provisioned + Auto Scaling |
|---|---|---|
| Throttling during sudden burst | None from capacity exhaustion | Possible during scale-up lag |
| Steady-state cost | Higher per request | Lower per request |
| Planning overhead | None | Requires RCU and target utilization tuning |
| Per-partition burst handling | Adaptive capacity still applies | Adaptive capacity still applies |
ReadThrottleEvents, ConsumedReadCapacityUnits, and ProvisionedReadCapacityUnits to separate sustained baseline from peak burst demand.The recommendation flips based on one diagnostic detail: what is your numeric monthly cost ceiling, and what is the ratio of peak to sustained read throughput? If peak reads are only modestly above baseline and the ceiling allows provisioned headroom, auto scaling may be affordable. If bursts are many times the sustained rate, provisioned capacity would need expensive standby headroom to avoid throttling, making on-demand the safer choice under the ceiling.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.