Service guide
How to reduce AWS DynamoDB costs
DynamoDB’s pricing model is a choice most teams made once, years ago, under different traffic. Capacity mode, indexes and backups all keep billing exactly as configured — whether or not the workload still looks anything like it did.
The free scan compares consumed against provisioned capacity per table, flags cold GSIs and prices the backup accumulation.
Run the free scanThe DynamoDB checklist
- →Provisioned capacity nobody uses. Tables provisioned for launch-day estimates consuming 5% of it since. Consumed-vs-provisioned capacity in CloudWatch tells the story in one graph; autoscaling or a capacity cut follows directly.
- →The wrong capacity mode. Rule of thumb: steady, predictable load is cheaper provisioned; spiky or low traffic is cheaper on-demand. Traffic evolved, the mode didn’t — check both directions, the switch is a setting, not a migration.
- →Unused global secondary indexes. Every GSI duplicates write costs and storage for its projection. Indexes created for features that changed shape keep billing on every write to the table — query metrics show which indexes nothing reads.
- →Backups from another era. On-demand backups do not expire; point-in-time recovery bills continuously per GB. Both accumulate silently on tables whose recovery requirements nobody has restated since setup.
- →Hot tables that need caching. Read-heavy tables hammering the same items pay per read for repetition. Sometimes the answer is DAX or an application cache; sometimes it is just noticing one endpoint does 80% of the reads.
Put numbers on it
Frequently asked questions
Should we use on-demand or provisioned capacity?
Measure a month of consumed capacity: if usage is steady and utilisation of provisioned capacity would exceed roughly 40–50%, provisioned (ideally with autoscaling) is cheaper; below that, or with spiky unpredictable traffic, on-demand wins. Many accounts have tables on both modes set years ago — the audit checks each table against its actual pattern.
How much do unused GSIs really cost?
A GSI can approach the write cost of the table itself, since every table write propagates to it. On a write-heavy table, one dead index can silently add 30–50% to that table’s bill — for query capability nothing uses. They are the classic invisible DynamoDB expense.
£499 fixed. Free scan first. 20%+ found or it’s free.
The scan is read-only — a role you create and delete, no keys shared — and shows your estimated monthly saving before anyone talks about money.