With on-demand capacity mode, you pay per request for the data reads and writes your application performs on your tables. You do not need to specify how much read and write throughput you expect your application to perform as DynamoDB instantly accommodates your workloads as they ramp up or down. This page details how DynamoDB charges for the core and optional features of DynamoDB. For pricing in AWS China Regions, see the AWS China Regions pricing page.

Key terms

Read request unit: API calls to read data from your table are billed in read request units. DynamoDB read requests can be either strongly consistent, eventually consistent, or transactional. A strongly consistent read request of up to 4 KB requires one read request unit. For items larger than 4 KB, additional read request units are required. For items up to 4 KB in size, an eventually consistent read request requires one-half read request unit, and a transactional read request requires two read request units. For example, a strongly consistent read request of an 8 KB item requires two read request units, an eventually consistent read of an 8 KB item requires one read request unit, and a transactional read of an 8 KB item requires four read request units. See Read Consistency for more details.

Write request unit: API calls to write data to your table are billed in write request units. A standard write request unit can write an item up to 1 KB. For items larger than 1 KB, additional write request units are required. A transactional write requires two write request units. For example, a write request of a 1 KB item requires one write request unit, a write request of a 3 KB item requires three write request units, and a transactional write request of a 3 KB item requires six write request units.

Replicated write request unit: When using DynamoDB global tables, your data is written automatically to multiple AWS Regions of your choice. Each write occurs in the local region as well as the replicated regions. As a best practice, for each write you perform you should plan to use a replicated write request unit in each replicated region, times two. For example, if you have deployed a global table in the US East (Ohio) and EU (Frankfurt) Regions, you should plan to use four replicated write request units per write performed.

Streams read request unit: Each GetRecords API call to DynamoDB Streams is a streams read request unit. Each streams read request unit can return up to 1 MB of data.

Transactional read/write requests: In DynamoDB, a transactional read or write differs from a standard read or write because it guarantees all operations contained in a single transaction set succeed or fail as a set.


DynamoDB features and billing overview

Feature

What it does

Billing unit

Core features

 

Write request

Writes data to your table

Write request unit

 

Read request

Reads data from your table

Read request unit

Optional features

 

Continuous backup

Takes continuous backups for the preceding 35 days

GB-month

 

On-demand backup

Takes snapshot backups at specified points in time

GB-month

 

Restore from backup

Restores a table to a specific snapshot or time

GB

 

Global tables

Replicates data to create a multiregion, multimaster table

Replicated write request unit

 

DynamoDB Accelerator (DAX)

Reduces latency through in-memory cache

Node-hour

 

DynamoDB Streams

Provides a time-ordered sequence of item-level changes on a table

Streams read request unit

 

Data transfer out

Transfers data to other AWS Regions

GB

DynamoDB detailed feature pricing

  • • Read and write requests

    When you select on-demand capacity mode for your DynamoDB table, you pay only for the reads and writes your application performs. You can make API calls as needed without managing throughput capacity on the table. DynamoDB handles the management of hardware resources to accommodate your workload with consistent, low-latency performance. DynamoDB charges one write request unit for each write (up to 1 KB) and two write request units for transactional writes. For reads, DynamoDB charges one read request unit for each strongly consistent read (up to 4 KB), two read request units for each transactional read, and one-half read request unit for each eventually consistent read. See Read Consistency for more details.

  • • Data storage

    You do not need to provision storage: DynamoDB monitors the size of your tables continuously to determine your storage charges. DynamoDB measures the size of your billable data by adding the raw byte size of the data you upload plus a per-item storage overhead of 100 bytes to account for indexing. 

  • • Backup and restore

    DynamoDB offers two methods to back up your table data. Continuous backups with point-in-time recovery (PITR) provide an ongoing backup of your table for the preceding 35 days. You can restore your table to the state of any specified second in the preceding five weeks. On-demand backups create snapshots of your table to archive for extended periods to help you meet corporate and governmental regulatory requirements.

    Continuous backups (PITR)

    DynamoDB charges for PITR based on the size of each DynamoDB table (table data and local secondary indexes) on which it is enabled. DynamoDB monitors the size of your PITR-enabled tables continuously throughout the month to determine your backup charges and continues to bill you until you disable PITR on each table.

    On-demand backup

    DynamoDB charges for on-demand backups based on the storage size of the table (table data and local secondary indexes). The size of each backup is determined at the time of each backup request. The total backup storage size billed each month is the sum of all backups of DynamoDB tables. DynamoDB monitors the size of on-demand backups continuously throughout the month to determine your backup charges.

    Restoring a table

    Restoring a table from on-demand backups or PITR is charged based on the total size of data restored (table data, local secondary indexes, and global secondary indexes) for each request.

  • • Global tables

    When you select on-demand capacity mode for your DynamoDB global tables, you pay only for the resources your application uses on each replica table. Write requests for global tables are measured in replicated write request units instead of standard write request units. Read requests and data storage are billed consistent with non-global tables. For more information about write requests for global tables, see Best Practices and Requirements for Managing Capacity. Cross-region replication also incurs charges for data transfer out. See the "Data transfer" section on this pricing page for details.

  • • DynamoDB Accelerator (DAX)

    DynamoDB charges for DAX capacity by the hour and your DAX instances run with no long-term commitments. Pricing is per node-hour consumed and is dependent on the instance type you select. Each partial node-hour consumed is billed as a full hour. Pricing applies to all individual nodes in the DAX cluster. For example, if you have a three-node DAX cluster, you are billed for each of the separate nodes (three nodes in total) on an hourly basis. 

    There is no charge for data transfer between Amazon EC2 and DAX within the same Availability Zone. Standard Amazon EC2 data transfer charges apply when transferring data between an Amazon EC2 instance and a DAX node in different Availability Zones of the same AWS Region. However, you are charged only for the data transfer into or out of the Amazon EC2 instance. There is no DAX data transfer charge for traffic into or out of the DAX node itself.

  • • DynamoDB Streams

    DynamoDB charges for reading data from DynamoDB Streams in read request units. Each GetRecords API call is billed as a streams read request unit and returns up to 1 MB of data from DynamoDB Streams. Streams read request units are unique from read requests on your DynamoDB table.  

  • • Data transfer

    Data transfer in and out refer to transfer into and out of DynamoDB. DynamoDB does not charge for inbound data transfer, and it does not charge for data transferred between DynamoDB and other AWS services within the same AWS Region (in other words, $0.00 per GB). Data transferred across AWS Regions (such as between DynamoDB in the US East [N. Virginia] Region and Amazon EC2 in the EU [Ireland] Region) is charged on both sides of the transfer. As part of the AWS Free Tier, you receive 1 GB of free data transfer out each month, aggregated across all AWS services except in the AWS GovCloud (US) Region. For more information, see AWS Free Tier. To transfer data exceeding 500 TB per month, contact us.


DynamoDB free tier

The AWS Free Tier enables you to gain free, hands-on experience with AWS services. The following DynamoDB benefits are included as part of the AWS Free Tier. Each benefit is calculated monthly on a per-region, per-payer account basis.

  • 25 GB of data storage
  • 2.5 million stream read requests from DynamoDB Streams
  • 1 GB of data transfer out, aggregated across AWS services

DynamoDB pricing examples

  • • Basic example

    This example demonstrates how DynamoDB charges using on-demand capacity mode.

    Assume you create a new table in the US East (N. Virginia) Region. Because this table is for a new application, you do not know what your traffic patterns will be. For simplicity, assume that each time a user interacts with your application, 1 write of 1 KB and 1 strongly consistent read of 1 KB are performed.

    For a period of 10 days, you receive little traffic to your application, resulting in 10,000 reads and 10,000 writes on your table each day. However, on day 11 your application gains attention on social media, and application traffic spikes to 2,500,000 reads and 2,500,000 writes that day. DynamoDB scales to deliver a seamless experience to your users. Your application then settles into a more regular traffic pattern, averaging 50,000 reads and 50,000 writes each day through the end of the month. The following table summarizes your total usage for the month.

    Timeframe (Day of Month)

    Total Writes

    Total Reads

    1–10

    100,000 writes (10,000 writes x 10 days)

    100,000 reads (10,000 reads x 10 days)

    11

    2,500,000 writes

    2,500,000 reads

    12–30

    950,000 writes (50,000 writes x 19 days)

    950,000 reads (50,000 reads x 19 days)

    Monthly total

    3,550,000 writes

    3,550,000 reads

    Monthly bill

    $4.44 ($1.25 per million writes x 3.55 million writes)

    $0.89 ($0.25 per million reads x 3.55 million reads)

     

    Data storage: Assume your table occupies 25 GB of storage at the beginning of the month and grows to 29 GB by the end of the month, averaging 27 GB based on DynamoDB continuous monitoring. The first 25 GB of storage are included in the AWS Free Tier. The remaining 2 GB of storage are charged at $0.25 per GB, resulting in a table storage cost of $0.50 for the month.

    For the month, your bill will be $5.83, a total that includes $5.33 for reads and writes and $0.50 for data storage.

  • • Detailed example

    This example demonstrates how DynamoDB charges using on-demand capacity mode.

    Assume you create a new table in the US East (N. Virginia) Region. Because this table is for a new application, you do not know what your traffic patterns will be. For simplicity, assume that each time a user interacts with your application, 1 write of 1 KB and 1 strongly consistent read of 1 KB are performed.

    For a period of seven days, you receive little traffic to your application, resulting in 1,000 writes and reads to your table each day. However, on the eighth day your application gains the attention of a prominent influencer in your industry, and application traffic unexpectedly spikes to 10,000,000 writes and reads for the day. Your application then settles into a more regular traffic pattern, averaging 150,000 writes and reads each day for the next two weeks. Traffic then begins to trail off quickly, with transactions dropping to 10,000 writes and reads per day for the next seven days.

    Finally, unexpected attention on social media causes your application to go viral. For the final day of the month, your application performs 30,000,000 writes and reads on your table. The following table summarizes your total usage for the month.

    Timeframe (Day of Month)

    Total Writes

    Total Reads

    1–7

    7,000 writes (1,000 writes x 7 days)

    7,000 reads (1,000 reads x 7 days)

    8

    10,000,000 writes

    10,000,000 reads

    9–22

    2,100,000 writes (150,000 writes x 14 days)

    2,100,000 reads (150,000 reads x 14 days)

    23–29

    70,000 writes (10,000 writes x 7 days)

    70,000 reads (10,000 reads x 7 days)

    30

    30,000,000 writes

    30,000,000 reads

    Monthly total

    42,177,000 writes

    42,177,000 reads

    Monthly bill

    $52.72 ($1.25 per million writes x 42.177 million writes)

    $10.54 ($0.25 per million reads x 42.177 million reads)

    Data storage: Assume your table occupies 25 GB of storage at the beginning of the month and grows to 29 GB by the end of the month, averaging 27 GB based on continuous monitoring of your table size. The first 25 GB of storage are included in the AWS Free Tier. The remaining 2 GB of storage are charged at $0.25 per GB, resulting in a table storage cost of $0.50 for the month.

    Backup and restore: If the sum of all your on-demand backup storage were 60 GB for a 30-day month, the monthly cost of your backups would be ($0.10 x 60 GB) = $6.00/month. However, if you delete 15 GB of your on-demand backup data 10 days into the monthly cycle, you are billed ($0.10 x 60 GB) - ($0.10 x 15 GB x 20/30) = $5.00/month. Now assume that in addition to performing on-demand backups, you use continuous backups. The average size of your table is 27 GB, resulting in a monthly cost of ($0.20 x 27 GB) = $5.40/month. If you need to restore your table at the end of the month, the cost is ($0.15 x 29 GB) = $4.35.

    DynamoDB Accelerator (DAX): You have determined that you need to accelerate the response time of your application and decide to use DynamoDB Accelerator (DAX). You review the available hardware specifications and determine that a three-node cluster of the t2.small instance type will suit your needs. You enable DAX on day 26. DynamoDB charges $0.12 per hour ($0.04 x 3 nodes), totaling $14.40 for the final 5 days in the month ($0.12 x 120 hours).

    Global tables: You also elect to redesign your table as a multiregion, multimaster database with the replica table in the US West (Oregon) Region. Assume that your application traffic from earlier in this example is consistent for your global table. You will consume 168.71 million replicated write request units (42.177 million writes x 2 regions x 2), as described in Best Practices and Requirements for Managing Capacity, resulting in a charge of $316.33. You also store an additional 27 GB of data in your replicated table in the US West (Oregon) Region, adding $6.75 ($0.25 x 27 GB) to your monthly data storage bill.

    DynamoDB Streams: Assume you enable DynamoDB Streams and build your application to perform one read request per second against the streams data. Over the course of a month, this results in 2,592,000 streams read requests, of which the first 2,500,000 read requests are included in the AWS Free Tier. You pay only for the remaining 92,000 read requests, which are $0.02 per 100,000 read request units.

    Data transfer: Because you are transferring data between AWS Regions due to your global tables implementation, DynamoDB charges for data transferred out of the region but not for inbound data transfer. Assuming 42,177,000 writes in the month of 1 KB each, you would generate 40.22 GB in data to transfer between regions. If you have already used your AWS Free Tier data transfer allowance on other AWS services, you will be charged $3.69 ($0.09 x 41 GB) for data transfer.

    In summary, your monthly charges for DynamoDB are:

    • Write traffic: $52.72
    • Read traffic: $10.54
    • Data storage: $0.50
    • On-demand backup: $5.00
    • Continuous (PITR) backup: $5.40
    • Table restore: $4.35
    • DynamoDB Accelerator (DAX): $14.40
    • Global tables write requests: $316.33
    • Global tables data storage: $6.75
    • DynamoDB Streams: $0.02
    • Data transfer: $3.69

    Total charges: $419.70

Additional pricing resources

TCO Calculator

Calculate your total cost of ownership (TCO)

Simple Monthly Calculator

Easily calculator your monthly costs with AWS

Economics Resource Center

Additional resources for switching to AWS

Webpage image
Learn how to get started

Review tutorials and videos, and sign up for training.

Learn more 
Account-signup image
Sign up for a free account

Instantly get access to the AWS Free Tier. 

Sign up 
Toolbox image
Start building on the console

Get started building with Amazon DynamoDB on the AWS Management Console.

Sign in