How DynamoDB’s Provisioned Mode Can Be Significantly Cheaper Than On-Demand
When to use provisioned mode vs on-demand mode for your DynamoDB table to save big on costs.
The Misunderstanding Around “Serverless” Databases
Many developers often assume on-demand mode is always the simplest and most cost-efficient choice because it scales automatically, requires no capacity planning, no throttling, and no math required.
But that convenience can come with a hefty price tag.
The truth is that provisioned mode, when used correctly can often be 3–10× cheaper than on-demand.
The key lies in understanding your traffic patterns and leveraging features like auto scaling, burst capacity, and reserved capacity.
Let’s break it down.
DynamoDB Pricing Basics
DynamoDB charges you for:
Read Capacity Units (RCUs): each represents one strongly consistent read per second for items up to 4 KB.
Write Capacity Units (WCUs): each represents one write per second for items up to 1 KB.
How you’re billed depends on the mode you choose:
A Visual Analogy
Imagine your table is a highway:
With on-Demand Mode:
You pay a toll for every single car that drives on it.
Great for occasional traffic, but expensive during rush hour.
With provisioned Mode:
You rent a lane on the highway for a fixed hourly cost.
If you know how busy your road will be, renting is cheaper.
Simple Cost Comparison
When to Use On-Demand Mode
On-Demand mode is ideal in a few main cases:
Unpredictable traffic
When you don’t know your access patterns: for example, an app that might go viral overnight or handle random spikes.
Development and testing
Ideal when you haven’t yet established predictable patterns.
POCs and early MVPs
Once your traffic stabilizes, switching to provisioned mode is usually the right financial move.
When to use Provisioned Mode
Provisioned capacity is ideal when you:
Know your average traffic: e.g., “around 50 req/s every day.”
Have consistent workloads: background jobs, API backends, IoT telemetry, or internal tools.
Can plan for bursts: DynamoDB provides burst capacity to temporarily exceed provisioned throughput using unused capacity credits.
Use Auto Scaling: it automatically adjusts your RCUs/WCUs based on utilization (typically targeting 70–80%).
Need to reduce costs aggressively at any moment in time.
Combined, these features let you pay less while maintaining high reliability.
The Cost Curve Diagram
Here’s a conceptual diagram to visualize the crossover point:
At low request volumes, on-demand is nearly flat and cheap.
As your requests grow, the line for on-demand rises linearly, while provisioned flattens after the break-even point.
Practical Rule of Thumb
As a general rule of thumb, you should keep on-demand for low request counts, say something around 1K requests per day or less.
Then switch to provisioned mode as you start to learn your traffic patterns and they become more predictable and go beyond 1K requests per day.
👋 My name is Uriel Bitton and I’m committed to helping you master Serverless, Cloud Computing, and AWS.
🚀 If you want to learn how to build serverless, scalable, and resilient applications, you can also follow me on Linkedin for valuable daily posts.
Thanks for reading and see you in the next one!



