With provisioned capacity mode, you specify the number of data reads and writes per second that you require for your application. You can use auto scaling to automatically adjust your table’s capacity based on the specified utilization rate to ensure application performance while reducing costs. This pricing 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 capacity unit (RCU): Each API call to read data from your table is a read request. Read requests can be strongly consistent, eventually consistent, or transactional. For items up to 4 KB in size, one RCU can perform one strongly consistent read request per second. Items larger than 4 KB require additional RCUs. For items up to 4 KB in size, one RCU can perform two eventually consistent read requests per second. Transactional read requests require two RCUs to perform one read per second for items up to 4 KB. For example, a strongly consistent read of an 8 KB item would require two RCUs, an eventually consistent read of an 8 KB item would require one RCU, and a transactional read of an 8 KB item would require four RCUs. See Read Consistency for more details.

Write capacity unit (WCU): Each API call to write data to your table is a write request. For items up to 1 KB in size, one WCU can perform one standard write request per second. Items larger than 1 KB require additional WCUs. Transactional write requests require two WCUs to perform one write per second for items up to 1 KB. For example, a standard write request of a 1 KB item would require one WCU, a standard write request of a 3 KB item would require three WCUs, and a transactional write request of a 3 KB item would require six WCUs.

Replicated write capacity unit (rWCU): 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, you should provision for an rWCU in each replicated region, times two. For example, if you have deployed a global table in US East (Ohio) and EU (Frankfurt) and you perform 5 writes per second to your global table, you should provision at least 20 rWCUs (5 writes x 2 regions x 2).

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 that 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

 

Provisioned write capacity

Writes data to your table

WCU

 

Provisioned read capacity

Reads data from your table

RCU

 

Data storage

Stores data, including index values

GB-month

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

rWCU

 

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

    Provisioned capacity

    When you select provisioned capacity mode, you specify the read and write capacity that you expect your application to require. You can use auto scaling to automatically adjust your table’s capacity based on the specified utilization rate to ensure application performance while reducing costs. DynamoDB charges one WCU for each write per second (up to 1 KB) and two WCUs for each transactional write per second. For reads, DynamoDB charges one RCU for each strongly consistent read per second, two RCUs for each transactional read per second, and one-half of an RCU for each eventually consistent read per second (up to 4 KB).

    Reserved capacity

    Reserved capacity offers significant savings over the standard price of DynamoDB provisioned capacity. You pay a one-time upfront fee and commit to paying the hourly rate for a minimum throughput level for the duration of the reserved capacity term. Any capacity that you provision in excess of your reserved capacity is billed at standard provisioned capacity rates. Reserved capacity is purchased in blocks of 100 WCUs or 100 RCUS. If you have multiple accounts linked with consolidated billing, reserved capacity units purchased either at the payer account level or linked account level are shared with all accounts connected to the payer account. Reserved capacity is applied first to the account that purchased it and then any unused capacity is applied to other linked accounts.

  • • 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

    DynamoDB charges for global tables usage based on the resources used on each replica table. Write requests for global tables are measured in replicated WCUs instead of standard WCUs. Read requests and data storage are billed consistent with standard 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 WCUs and 25 RCUs of provisioned capacity
  • 25 GB of data storage
  • 25 rWCUs for global tables deployed in two AWS Regions
  • 2.5 million stream read requests from DynamoDB Streams
  • 1 GB of data transfer out (15 GB for your first 12 months), aggregated across AWS services

DynamoDB pricing examples

  • • Basic example

    This example demonstrates how pricing is calculated for an auto scaling–enabled table with the provisioned capacity mode. Auto scaling continuously sets provisioned capacity in response to actual consumed capacity so that actual utilization stays near target utilization.

    Assume that you create a new table in the US East (N. Virginia) Region with target utilization set to the default value of 70 percent, minimum capacity units at 100 RCUs and 100 WCUs, and maximum capacity set to 400 RCUs and 400 WCUs (see Limits in DynamoDB). For simplicity, assume that each time a user interacts with your application, one write of 1 KB and one strongly consistent read of 1 KB are performed.

    For the first 10 days, assume that the consumed RCUs and WCUs vary between 1 and 70. Auto scaling does not trigger any scaling activities and your bill per hour is $0.078 ($0.065 for the 100 WCUs provisioned [$0.00065 * 100] and $0.013 for the 100 RCUs [$0.00013 * 100]).

    Now assume that on day 11 the consumed capacity increases to 100 RCUs and 100 WCUs. Auto scaling starts triggering scale-up activities to increase the provisioned capacity to 143 WCUs and 143 RCUS (100 consumed ÷ 143 provisioned = 69.9 percent). The per-hour bill is $0.11109 ($0.0925 for 143 WCUs and $0.01859 for 143 RCUs).

    On day 21, assume the consumed capacity decreases to 80 RCUs and 80 WCUs. Auto scaling starts triggering scale-down activities to decrease provisioned capacity to 114 WCUs and 114 RCUs (80 consumed ÷ 114 provisioned = 70.2 percent). The per-hour bill is $0.08952 ($0.0741 for 114 WCUs and $0.01482 for 114 RCUs).

    For the month, you will be charged $66.86 as follows:

    Days 1 – 10: $18.72 ($0.078 per hour x 24 hours x 10 days)

    Days 11 – 20: $26.66 ($0.11109 per hour x 24 hours x 10 days)

    Days 21 – 30: $21.48 ($0.08952 per hour x 24 hours x 10 days)

    The AWS Free Tier includes 25 WCUs and 25 RCUs, reducing your monthly bill by $14.04

    25 WCU x $0.00065 per hour x 24 hours x 30 days = $11.70

    25 RCU x $0.00013 per hour x 24 hours x 30 days = $2.34

    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 the 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.

    For the month, your total bill will be $53.32, a total that includes $52.82 for read and write capacity and $0.50 for data storage.

  • • Detailed example

    This example demonstrates how pricing is calculated for an auto scaling–enabled table with provisioned capacity mode. Auto scaling continuously sets provisioned capacity in response to actual consumed capacity so that actual utilization stays near target utilization.

    Assume you create a new table in the US East (N. Virginia) Region with target utilization set to the default value of 70 percent, minimum capacity units at 100 RCUs and 100 WCUs, and maximum capacity set to 400 RCUs and 400 WCUs (see Limits in DynamoDB). Auto scaling operates with these limits, not scaling down provisioned capacity below the minimum or scaling up provisioned capacity above the maximum. When the table is created, auto scaling starts by provisioning the minimum capacity units. 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.

    In the first hour after table creation, assume that the consumed RCUs and WCUs vary between 1 and 70. The actual utilization correspondingly varies between 1 percent (1 consumed ÷ 100 provisioned) and 70 percent (70 consumed ÷ 100 provisioned), within the target utilization of 70 percent. Auto scaling does not trigger any scaling activities and your bill for the hour is $0.078 ($0.065 for the 100 WCUs provisioned [$0.00065 * 100] and $0.013 for the 100 RCUs [$0.00013 * 100]).

    During the second hour, assume the consumed capacity increases to 100 RCUs and 100 WCUs, which results in an actual utilization increase to 100 percent (100 consumed ÷ 100 provisioned), well above the target utilization of 70 percent. Auto scaling starts triggering scale-up activities to increase the provisioned capacity to bring actual utilization closer to the target of 70 percent. The result is a provisioned capacity of 143 WCUs and 143 RCUs (100 consumed ÷ 143 provisioned = 69.9 percent). The bill for this second hour is $0.11154 ($0.09295 for 143 WCUs and $0.01859 for 143 RCUs).

    During the third hour, assume the consumed capacity decreases to 80 RCUs and 80 WCUs, which results in an actual utilization decrease to 56 percent (80 consumed ÷ 143 provisioned), well below the target utilization of 70 percent. Auto scaling starts triggering scale-down activities to decrease provisioned capacity to bring actual utilization closer to the target of 70 percent, resulting in provisioned capacity of 114 WCUs and 114 RCUs (80 consumed ÷ 114 provisioned = 70.2 percent). The bill for this third hour is $0.08892 ($0.0741 for 114 WCUs and $0.01482 for 114 RCUs).

    For simplicity, assume that your consumed capacity remains constant at 80 RCUs and 80 WCUs. Your table also remains provisioned for 114 WCUs and 114 RCUs, with a daily charge of $2.1341, broken out as:

    114 WCUs x $0.00065 per hour x 24 hours = $1.7784

    114 RCUs x $0.00013 per hour x 24 hours = $0.3557

    For the month, you are charged $64.04:

    Day 1 total: $2.14578 per day

    Hour 1: $0.078 per hour

    Hour 2: $0.1154 per hour

    Hours 3-24: $0.08892 per hour

    Days 2-30: $2.1341 per day

    The AWS Free Tier includes 25 WCUs and 25 RCUs, reducing your monthly bill by $14.04:

    25 WCUs x $0.00065 per hour x 24 hours x 30 days = $11.70

    25 RCUs x $0.00013 per hour x 24 hours x 30 days = $2.34

    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 the 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 is 60 GB for a 30-day month, the monthly cost of your backups is ($0.10 x 60 GB) = $6.00/month. However, if you then 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 size of your table is 29 GB, resulting in a monthly cost of ($0.20 x 29 GB) = $5.80/month.

    If you need to restore your 29 GB table once during the month, that restore costs ($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 suits 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 capacity needs are consistent with the previous example. Auto scaling continues to provision 114 WCUs and 114 RCUs for your application's throughput needs, but now must also provision rWCUs for writing to both of your replica tables. Provisioned rWCUs equal the total number of rWCUs needed for application writes in both regions, multiplied by two. In this scenario, you now perform 80 writes per second to both the US East (N. Virginia) Region and the US West (Oregon) Region, resulting in a minimum provisioned capacity of 320 rWCUs (80 rWCUs in N. Virginia + 80 rWCUs in Oregon = 160 rWCUs x 2 = 320 rWCUs). Auto scaling provisions 458 rWCUs to maintain actual utilization at 70% of provisioned capacity. Your first 25 rWCUs are included in the AWS Free Tier, resulting in an hourly charge of $0.422175, or $303.97 in a 30-day month. You also store an additional 27 GB of data in your replicated table in the US West (Oregon) Region, adding $6.75 to your monthly data storage bill.

    DynamoDB Streams: Now 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: Given that you are now transferring data between AWS Regions due to your global tables implementation, DynamoDB charges for data transferred out of the region, but it does not charge for inbound data transfer. Assuming a constant 80 writes per second of 1 KB each, you generate 80 KB per second in data transfer between regions, resulting in 198 GB of cross-region data transfer per month. If you have already used your AWS Free Tier data transfer allowance on other AWS services, you will be charged $17.82 ($0.09 x 198 GB) for data transfer.

    In summary, your monthly charges for DynamoDB are:

    • Provisioned capacity: $50.00
    • Data storage: $0.50
    • On-demand backup: $5.00
    • Continuous (PITR) backup: $5.80
    • Table restore: $4.35
    • DynamoDB Accelerator (DAX): $14.40
    • Global tables write capacity: $303.97
    • Global tables data storage: $6.75
    • DynamoDB Streams: $0.02
    • Global tables data transfer: $17.82

    Total charges: $408.61

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