Introduction
Amazon DynamoDB is the AWS fully managed NoSQL database service, enabling AWS customers to build NoSQL databases at a global scale without having to provision or manage any servers. It is a proprietary offering that supports document and key-value data structures.
DynamoDB is an excellent solution for apps that need low latency access to data, including the Internet of Things (IoT), mobile, web, and gaming applications.
AWS DynamoDB Pricing Model
The pricing model for DynamoDB is complicated with many variables. To reduce costs, it’s essential to understand the various elements that AWS bills for.
Dynamo DB is available within the AWS Free Tier with up to 25GB of storage and up to 200 million read/write requests per month – anyone with a free tier eligible account can run a completely free proof of concept on DynamoDB.
Beyond the free tier, DynamoDB has two separate pricing models,
- On-Demand Capacity Mode
- Provisioned Capacity Mode
On-Demand Capacity Mode
On-Demand Capacity Mode charges on a per request basis for read and write requests that your application makes on your DynamoDB tables, plus some optional chargeable features. I have summarized all of the different chargeable elements in the table below, together with the pricing in the Europe (London) region* so you can get a feel for what the pricing looks like (*correct at time of publishing, and as with most AWS services, pricing does vary by region)
Dynamo DB Feature |
Billing Unit |
Price in Europe (London) |
Provisioned Write Capacity (Standard Table Class) |
Write Capacity Unit |
$0.000772 per WCU |
Provisioned Read Capacity (Standard Infrequent Access Table Class) |
Read Capacity Unit |
$0.0001544 per RCU |
Provisioned Write Capacity (Standard Infrequent Access Table Class) |
Write Request Unit |
$0.000965 per WCU |
Provisioned Read Capacity (Standard Table Class) |
Read Request Unit |
$0.000193 per RCU |
Data Storage - Standard Table Class |
GB |
First 25 GB stored per month is free using the DynamoDB Standard table class
$0.29715 per GB-month thereafter |
Data Storage - Standard Infrequent Access Table Class |
GB |
$0.11886 per GB-month |
Continuous Backup |
GB-month |
$0.23772 per GB-month |
On-demand Backup |
GB-month |
$0.11886 per GB-month |
Restore from Backup |
GB |
$0.17829 per GB |
Global Tables Standard Table Class |
Replicated write capacity unit |
$0.001158 per rWCU per hour |
Global Tables Standard Infrequent Access Table Class |
Replicated write capacity unit |
$0.0014475 per rWCU per hour |
Change Data Capture for Amazon Kinesis Data Streams |
Change Data Capture Unit |
$0.1188 per million change data capture units |
Change Data Capture for AWS Glue Elastic Views |
Change Data Capture Unit |
$0.10 per million change data capture units |
Data export to Amazon S3 |
GB |
$0.11886 per GB |
DynamoDB Accelerator (DAX) |
Node-hour (18 Node Types available from 2 vCPU 2GB RAM to 64 vCPU 488GB RAM) |
$0.044 - £10.0544288 per hour |
DynamoDB Streams |
Streams Read Request Unit |
Every month, the first 2,500,000 DynamoDB Streams read request units are free
$0.0237 per 100,000 DynamoDB Streams read request units thereafter |
Data Transfer Out |
GB |
$0.05 to $0.09 per GB depending on volume as per standard AWS transfer out fees |
Note
Price can be change as per AWS Region ,please refer AWS Calculator
Definition of Terms used in pricing model,
- Read Request Unit – for API calls to read data from your tables. There are three types of read requests,
- Strongly Consistent Read Request – returns the most up-to-date data with updates from all prior successful write operations – costs one read request unit, which returns up to 4KB of data. Additional read request units are required for larger items, e.g., 8KB data = 2 read request units.
- Eventually Consistent Read Request – the response might not reflect the results of a recently completed write operation – 0.5 read request units required.
- Transactional Read Request – 2 read requests units required (a transactional read or write request guarantees all operations in a transaction set succeed or fail as a set).
- Write Request Unit – standard write request units can write an item of up to 1KB. For larger items, additional per KB units are required. A transactional write request requires two write units.
- Replicated Write Request Unit – when using global tables, replicated write requests are automatically written to multiple AWS regions.
- Streams Read Request Unit – a ‘GetRecords’ API call to Dynamo DB Streams is a streams read request unit which can return up to 1MB of data.
If you want DynamoDB On-Demand pricing, you’ll need to input these variables,
- Data Storage Size in GB
- Average Item Size in KB
- Percentage of Standard vs. Transactional writes
- Total number of writes (either per second, minute, hour, day, month, or million per month)
- Percentage of Eventually Consistent vs. Strongly Consistent vs. Transactional Reads
- Total number of reads (either per second, minute, hour, day, month, ormillion per month)
Provisioned Capacity Mode
If you know the number of reads and writes per second that you need for your application, you can save money using Provisioned Capacity Mode. The table below shows the chargeable elements for DynamoDB Provisioned Capacity Mode, together with the pricing in the Europe-London region at the time of writing. With provisioned capacity mode, you’ll need to commit to RCUs and WCUs over a 1 or 3-year term.
If you want DynamoDB Provisioned capacity pricing, this is a little more complex, and you’ll need to input these variables:
- Data Storage Size in GB
- Average Item Size in KB
- Percentage of Standard vs. Transactional writes
- Baseline Write Rate, in writes per second
- Peak Write Rate, in writes per second
- Duration of Peak Write Activity, in hours per month
- Percentage of baseline writes covered by reserved capacity
- Write reserved capacity term (1 or 3 years)
- Percentage of Eventually Consistent vs. Strongly Consistent vs. Transactional Reads
- Baseline Read Rate, in writes per second
- Peak Read Rate, in writes per second
- Duration of Peak Read Activity, in hours per month
- Percentage of baseline writes covered by reserved capacity
- Read reserved capacity term (1 or 3 years)
Summary
This article helped you to setup DynamoDB as per your requirement with basic terminology with definitions.