AWS DynamoDB Overview

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,

  1. On-Demand Capacity Mode
  2. 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.


Similar Articles