How much DynamoDB costs and its different pricing models
DynamoDB has two basic types of pricing models, based on capacity modes:
As the name suggest, on-demand will allocate resources as the application needs them, without any pre-provisioning. All costs are charged on a per-usage basis.
In povisioned capacity mode, developers can choose how many resources each database table will receive. They may also choose whether DynamoDB can auto-scale up resources if needed, or whether the database should start throttling requests once the provisioned capacity is reached.
For more details, read our article about the two different capacity modes.
Read Operation: an API call to read data from a DynamoDB table.
Write Operation: an API call to insert, modify or delete an item in a DynamoDB table.
Each Read Operation can read up to 4 KB of data. If the item is larger, DynamoDB will charge multiple Read Operation, rounded to the next multiple of 4 KB. Eventual consistent reads are charged only a half operation. Read operations inside transactions are charged double the normal price.
Each Write Operation can write up to 1 KB of data. For larger items, DynamoDB will charge multiple Write Operations, rounded to the next multiple of 1 KB. Write operations inside transactions cost double the normal price.
Bear in mind that, when using secondary indexes, DynamoDB needs to replicate all changes from the main table in the indexes. One extra Write Operation will be counted for each index associated.
Write operation costs $1.25 per million requests.
Read operation costs $0.25 per million requests.
Capacity usage is charged by units. If the database doesn’t reach a million operations, it’s not rounded up to the nearest million, but charged only for the requests actually used.
It is not possible to buy reserved capacity at discounted prices in On-Demand mode.
Dynamo also charges the amount of data stored at the price of $0.25 per GB-month.
Backups are chaged as per follows:
DynamoDB offers Global Tables, an automated multi-region replication system. It is charged at $1.875 per million write operations replicated.
DynamoDB Streams are charged at $0.02 per 100,000 read operations.
Data requested by requesters outside the AWS region where the DynamoDB table is deployed is charged at $0.09 per GB.
AWS provides a free tier with the following resources:
Write operation is charged at $0.00065 per capacity unit per hour.
Read operation is charged at $0.00013 per capacity unit per hour.
In provisioned mode, DynamoDB will provision the capacity and charge by the time it’s available. Observe that it’s a different model in comparison to On-Demand, which charges per request.
In provisioned mode, the application can issue several Read queries, for example, and get charged only one capacity unit. If all requests are sequential, they consume the same read capacity allocated.
It is possible to reserve capacity in advance with a monthly commitment in chunks of 100 capacity units (Read or Write). The price is as follows:
Reserved capacity can dramatically decrease costs with DynamoDB. If they are not used, though, no credit remains for the next billing cycle.
Global Tables (multi-region replication) is charged at $0.000975 per Read Capacity consumed.
Backup, DynamoDB Streams and data transfer have the same pricing as the On-Demand mode.
AWS provides a free tier with the following resources included:
Save time spent on debugging applications.
Increase development velocity and quality.
Get actionable insights to your infrastructure.