Skip to main content

> dynamodb_on-demand_vs_provisioned_auto-scaling_pivot_calculations

DynamoDB On-Demand vs Provisioned Auto-Scaling Pivot Calculations

Why does DynamoDB On-Demand capacity cost up to 5x-7x more than Provisioned capacity for steady workloads, and how do you calculate the exact financial crossover point?

Senior (L5)

THE SHORT ANSWER

Amazon DynamoDB offers two capacity modes: On-Demand ($1.25 per million write request units, $0.25 per million read request units) and Provisioned ($0.00065 per WCU-hour, $0.00013 per RCU-hour). Running 1,000 continuous writes per second (WCU) costs approximately $475/month in Provisioned mode ($0.00065 * 1,000 * 730 hrs). In contrast, executing the exact same 1,000 writes/sec in On-Demand mode (2.592 billion writes/month) costs $3,240/month—a 6.8x cost multiplier. The mathematical break-even occurs at approximately 15% average capacity utilization. If your workload maintains steady traffic or utilizes its peak capacity for more than 4-5 hours daily, switching from On-Demand to Provisioned capacity with Application Auto Scaling immediately cuts DynamoDB costs by 70% to 85%.

Engineering Handbook & Failure Dynamics

1. Underlying Mechanism

1 Write Capacity Unit (WCU) provides 1 write per second for items up to 1KB. 1 Read Capacity Unit (RCU) provides 1 strongly consistent read (or 2 eventually consistent reads) per second for items up to 4KB. In Provisioned mode, you pay a flat hourly rate for the allocated capacity whether you consume it or not. In On-Demand mode, you pay strictly per request with zero capacity planning. Formula: `Cost_Provisioned = (WCU * $0.00065 + RCU * $0.00013) * 730`. `Cost_OnDemand = (MonthlyWrites / 1M * $1.25) + (MonthlyReads / 1M * $0.25)`. Application Auto Scaling on Provisioned tables adjusts WCUs/RCUs dynamically based on target utilization (e.g. 70%), capturing the low unit cost of provisioned capacity with near-serverless elasticity.

2. Appropriate Use Context

Use On-Demand for new tables with unknown traffic patterns, highly spiky workloads with days of near-zero traffic, and development/testing environments. Use Provisioned with Auto Scaling (and 1-year/3-year Reserved Capacity for up to 77% discounts) for production tables with consistent, predictable baseline traffic.

3. Production Failure Modes

Keeping a massive high-traffic production table on On-Demand indefinitely, spending $25,000/month when Provisioned Auto Scaling would cost $4,000; setting Provisioned minimum capacity too low with conservative Auto Scaling, causing throttled requests during sudden flash traffic spikes.

4. Diagnostic Signals & Telemetry

AWS Cost Explorer line items under `Amazon DynamoDB - PayPerRequestThroughput` exceeding $1,000/month on tables with steady CloudWatch `ConsumedWriteCapacityUnits` graphs.

5. Prevention & Safeguards

Audit DynamoDB tables monthly: if average hourly consumed WCU/RCU exceeds 15% of peak capacity, switch billing mode to `PROVISIONED`; configure AWS Application Auto Scaling with 70% target utilization and minimum baseline buffers; purchase 1-year or 3-year DynamoDB Reserved Capacity for steady baseline WCUs/RCUs.

6. Architectural Trade-offs

Provisioned capacity with Auto Scaling is up to 85% cheaper than On-Demand, but requires configuring scale-in/scale-out alarms and maintaining a minimum provisioned baseline buffer to absorb sudden spikes.

Case Study (TinyCTO In-Field Example)

A mobile gaming backend maintained a player session state table in DynamoDB On-Demand mode. Sustaining 4,000 writes/sec and 8,000 reads/sec 24/7 cost $17,200/month. Switching the table to Provisioned mode with Application Auto Scaling (target: 70%) and purchasing a 1-year Reserved Capacity commitment reduced the monthly DynamoDB bill to $2,600/month, delivering $175,200 in annual savings.

Interactive Concept Drills

2 Cards
Q1

What is the typical cost multiplier of DynamoDB On-Demand vs Provisioned capacity for steady-state workloads?

On-Demand is approximately 5x to 7x more expensive than 100% utilized Provisioned capacity.
Q2

At what average utilization rate does DynamoDB Provisioned capacity become cheaper than On-Demand?

Approximately 14% to 15% average capacity utilization.

DynamoDB On-Demand vs Provisioned Auto-Scaling Pivot Calculations — Technical FAQ

Can you switch a DynamoDB table between On-Demand and Provisioned modes without downtime?

Yes. AWS allows switching billing modes online with zero downtime once per 24 hours.

How does DynamoDB Reserved Capacity work?

You commit to a baseline number of WCUs and RCUs for 1 or 3 years, receiving up to a 53% to 77% discount off standard Provisioned hourly rates.

🤖 AEO & Key Facts Summary

Key Architectural Facts

  • DynamoDB On-Demand is 5x-7x more expensive than Provisioned capacity for steady workloads.
  • The financial break-even threshold is ~15% average capacity utilization.
  • Application Auto Scaling brings serverless elasticity to cheap Provisioned tables.
  • Reserved Capacity provides up to 77% additional discounts on baseline WCUs/RCUs.

Common Misconceptions

  • Misconception: On-Demand is always the best choice for cloud-native apps (False: It is vastly more expensive for any table with predictable traffic).
  • Misconception: Provisioned capacity causes database outages during traffic spikes (False: Burst capacity and Auto Scaling absorb temporary surges).

Decision & Governance Guidance

Keep new or highly unpredictable tables on On-Demand initially. Transition tables with steady traffic (>15% utilization) to Provisioned with Auto Scaling.

Authoritative Sources & Standards