- Amazon DynamoDB
- Pricing
Amazon DynamoDB pricing
DynamoDB charges for reading, writing, and storing data in tables, along with any optional features you choose to enable.
With two pricing options (on-demand and provisioned) for reads and writes and two pricing options for storage (Standard and Standard - Infrequent Access), you can choose the best pricing option for your workload. Learn more about the different modes and storage classes in the DynamoDB developer guide.
-
On-demand capacity
-
Provisioned capacity
-
On-demand capacity
-
DynamoDB on-demand mode is a serverless option with pay-per-request pricing and automatic scaling, without the need to plan, provision, or manage capacity. You are billed per read or write request consumed, making it easy to balance costs and performance.
On-demand mode is recommended in most scenarios including if you:
- Have new or existing workloads and you do not want to manage capacity
- Want a serverless database that automatically scales
- Prefer the ease of paying for only what you use
-
Provisioned capacity
-
With provisioned capacity, you must specify the number of reads and writes per second you want to provision for your application. You’ll be charged based on the hourly read and write capacity provisioned, and not how much your application has consumed.
Provisioned capacity may be better if you:
- Have existing applications with steady and predictable throughput patterns
- Can forecast capacity requirements
Reserved provisioned capacity
With DynamoDB reserved provisioned capacity, you can reduce costs of provisioned capacity by committing to a specified level of read and write capacity for a defined period. Reserved provisioned capacity is best suited for workloads with predictable, steady throughput requirements where long-term usage commitments can provide significant savings.
For more information regarding on-demand and provisioned capacity modes, see "How throughput pricing works".
For billing related questions, see FAQs. For assistance, request AWS Sales Support or use the Ask AWS chatbot at the bottom of this page and type "Contact AWS Rep".
* Cold backup storage is supported for on-demand backups that are managed by AWS Backup only. You can opt-in to use AWS Backup from the AWS Management Console.
Backups that are transitioned to Cold Storage have a minimum 90 days of storage, and backups deleted before 90 days incur a pro-rated charge equal to the storage charge for the remaining days.
Savings options
Save costs by committing to at least one year of usage.
| Database Savings Plans | Reserved provisioned capacity | |
| Cost savings |
Up to 18% cost savings on on-demand throughput Up to 12% cost savings on provisioned throughput |
Up to 77% cost savings for 3 year term Up to 54% cost savings for 1 year term |
|
Flexibility |
Flexibility of consuming committed spend across AWS Database services and Regions |
Available only for provisioned capacity, single-Region, and Standard table class |
| Commitment term | 1 year | 1 year or 3 years |
| More information | Database Savings Plans | View pricing by selecting the provisioned capacity mode tab at the top of this page |
Try DynamoDB free tier
The DynamoDB free tier is enough for about 200M requests/month (depending on item size) and can be used for personal apps, prototypes, or learning/certification needs. It uses provisioned capacity and the DynamoDB Standard table class. The DynamoDB free tier offers the following benefits each month on a per Region, per-payer account basis:
- 25 WCUs, 25 RCUs
- 25 rWCUs for global tables, deployed across two AWS Regions
- 25 GB of data storage
- 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
In addition to the DynamoDB free tier, you can get up to $200 USD in credits with the AWS Free Tier to experience the full set of DynamoDB features for up to 6 months. Access your DynamoDB free tier.
Note that for the same workload, you may not combine discounts from Database Savings Plans and reserved provisioned capacity. If you have both, reserved provisioned capacity is applied first, after which any remaining provisioned capacity is eligible for Database Savings Plans coverage.
How DynamoDB pricing works
-
How pricing for table classes works
DynamoDB offers two table classes, with different pricing for data storage, reads, and writes. Both table classes offer similar performance but allow you to optimize costs based on your access patterns. The DynamoDB Standard table class is the default and recommended for most workloads. The DynamoDB Standard-Infrequent Access (Standard-IA) table class is best suited for data that is accessed infrequently and storage is the dominant cost. Learn more about DynamoDB table classes.
-
How pricing works for on-demand capacity
Read request unit (RRU): API calls to read data from your table are billed in read request units. RRUs are consumed in 4 KB increments. DynamoDB reads can be eventually consistent, strongly consistent, or transactional.
Eventually consistent reads require one-half RRUs per 4 KB or part thereof.
Strongly consistent reads consume one RRU per 4 KB or part thereof.
Transactional reads requires two RRUs per 4 KB or part thereof.
For example, an eventually consistent read of a 10 KB item requires 1.5 RRUs (half RRU x 3). For the same 10 KB item, a strongly consistent read requires 3 RRUs (1 RRU x 3) and a transactional read require 6 RRUs (2 RRU x 3). See Read Consistency for more details.Write request unit (WRU): API calls to write data to your table are billed in write request units. WRUs are consumed in 1 KB increments.
Standard writes require 1 WRU per 1 KB or part thereof.
Transactional writes require 2 WRUs per 1 KB or part thereof.
For example, a write request of a 10 KB item requires 10 WRUs, and a transactional write request of a 10 KB item requires 20 WRUs. -
How pricing works for provisioned capacity
Read capacity unit (RCU): API calls to read data from your table, or 'reads', are billed in read capacity units (RCUs). RCUs are consumed in 4 KB increments, per second. Reads can be eventually consistent, strongly consistent, or transactional.
Eventually consistent reads consume one-half RCUs per 4 KB (or part thereof).
Strongly consistent reads consume one RCU per 4 KB (or part thereof).
Transactional reads consume two RCUs per 4 KB (or part thereof).
For example, an eventually consistent read of a 10 KB item would require 1.5 RCUs (0.5 x 3). A strongly consistent read of that item would require 3 RCUs (1 x 3). A transactional read of that item requires 6 RCUs (2 x 3). See Read Consistency for more details.Write capacity unit (WCU): API calls to write data to your table, or 'writes', are billed in write capacity units (WCUs). WCUs are consumed in 1 KB increments, per second.
Standard writes of 1 KB (or part thereof) per second consume 1 WCU.
Transactional writes of 1 KB (or part thereof) per second consume 2 WCUs.
For example, standard writes of a 10 KB item every second would consume 10 WCUs while transactional writes would consume 20 WCUs. -
How pricing works for data storage, backups, and recovery
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 your data plus a per-item storage overhead that depends on the features you have enabled. See the DynamoDB User Guide to learn more. The price for data storage depends on your table class.
Point in time recovery (PITR) backups. When PITR is enabled, DynamoDB takes continuous backups for the preceding 1 to 35 days. DynamoDB charges for PITR based on the size of each DynamoDB table, including table data and local secondary indexes. Reducing the retention period (for example, from 35 days to 1 day) doesn't lower PITR costs. To determine your backup charges, DynamoDB continuously monitors the size of the tables that have PITR enabled. You're billed for PITR usage until you disable PITR for each table. When you delete a table that has point-in-time recovery enabled, DynamoDB automatically creates a backup snapshot called a system backup and retains it for up to 35 days (at no additional cost). To learn more, see Point-in-time backups for DynamoDB.
On-demand backups. 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.
You can use DynamoDB or AWS Backup to create and manage on-demand backups. You can use the DynamoDB on-demand backup capability to create full backups of your tables for long-term retention and archival for regulatory compliance needs. With AWS Backup you can centralize and automate data protection across AWS services. AWS Backup also offers advanced features such cross-account and cross-Region on-demand backup copying, low-cost storage tier, backup tagging, and backup encryption that is independent from its source data to help meet your business continuity requirements and optimize backup costs. Additional charges apply for cross-Region data transfer.For more pricing information about backups using DynamoDB and AWS Backup, see Understanding Amazon DynamoDB billing for backups and AWS Backup pricing.
-
How pricing works for global tables
When using 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 (rWRU) for on-demand capacity and replicated write capacity units (rWCUs) for provisioned capacity.
Billing for read requests and data storage billing is consistent with single-Region tables and pricing depends on your table class. If you add a table replica to create or extend a global table in new Regions, DynamoDB charges for a table restore in the added Regions per gigabytes of data restored. Cross-Region replication and adding replicas to tables that contain data also incur charges for data transfer out. To understand how this works, see the "How pricing works for data movement" section of this page. For more information about billing for global tables, see Understanding Amazon DynamoDB billing for global tables.
-
How pricing works for data movement (Streams, CDC, imports/exports to S3, data in/out)
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. You are not charged for GetRecords API calls invoked through DynamoDB triggers on AWS Lambda, unless the functions are running on Lambda Managed Instances, in which case standard Streams charges will apply. Also, you are not charged for GetRecords API calls invoked by DynamoDB global tables.
Change Data Capture (CDC) for Amazon Kinesis Data Streams (KDS). DynamoDB charges for CDC for Amazon Kinesis Data Streams in CDC units. DynamoDB charges one CDC unit for each write (up to 1 KB). You pay only for the writes your application performs without having to manage throughput capacity on the table. Kinesis Data Streams charges still apply when you replicate DynamoDB changes to a Kinesis data stream. For more information, see Amazon Kinesis Data Streams pricing.
CDC with AWS Glue. DynamoDB charges for CDC for AWS Glue in CDC units. DynamoDB charges one CDC unit for each write (up to 1 KB). You pay only for the writes your application performs without having to manage throughput capacity on your table. AWS Glue charges still apply when you replicate DynamoDB changes to an AWS Glue target database. For more information, see AWS Glue pricing.
Data export to Amazon Simple Storage Service (S3). Use this feature to export data from your DynamoDB tables to S3. The supported output data formats are DynamoDB JSON and Amazon Ion. You can analyze the exported data by using AWS services such as Amazon Athena, Amazon SageMaker, and AWS Lake Formation. You can choose between a full export and an incremental export. Full exports are charged based on the size of each DynamoDB table (table data and local secondary indexes) in the export. Incremental exports are charged based on the size of data processed from PITR backups to generate the incremental export output. Additional charges apply for storing exported data in S3 and for PUT requests made against your S3 bucket. For more information about these charges, see Amazon S3 pricing.
Data import from S3. DynamoDB data import provides a simple and efficient way to move data between S3 and DynamoDB tables without writing any code. You can copy tables between AWS Regions and accounts to help migrate data and build new applications, facilitate data sharing and collaboration between teams, and help simplify disaster recovery and business continuity planning. Data import pricing is based on the uncompressed file size in S3. See Import from S3 for more details. The supported input data formats are CSV, DynamoDB JSON, and Amazon Ion. S3 charges also apply for storing your source data and for GET requests made against your S3 bucket. For more information about S3 charges, see Amazon S3 pricing.
Data transfer in and out. 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, AWS customers receive 100 GB of free data transfer out to the internet free each month, aggregated across all AWS Services and Regions (except China and GovCloud). For more information, see the AWS Free Tier page. To transfer data exceeding 500 TB per month, contact us.
-
How pricing works for warm throughput
Warm throughput refers to the number of read and write operations your DynamoDB table can instantaneously support. Warm throughput values are available by default for all tables and secondary indexes at no cost. These values automatically adjust as you increase your provisioned throughput or on-demand consumption at no extra charge.
Charges apply for pre-warming tables. If you proactively increase default warm throughput values to pre-warm the tables, you will be charged for those requests. These charges are based on the difference between the new values and the current warm throughput that the table or index can support. You will incur a one-time fee at the regional rate of one read capacity unit (RCU) for every unit increase in read warm throughput and one write capacity unit (WCU) for every unit increase in write warm throughput. These charges apply to both DynamoDB Standard and Standard-Infrequent Access table classes. If you prewarm a global table replica for reads, writes, or both, all replicas will be prewarmed to match the same warm throughput values. You will be charged in each AWS Region that is part of the global table configuration. To learn more, see Understanding DynamoDB warm throughput.
-
How pricing for reserved provisioned capacity works and how to purchase it
Reserved provisioned capacity can offer significant savings over the regular price of DynamoDB provisioned throughput capacity. By reserving provisioned capacity, you can save up to 54% (one-year term) or up to 77% (three-year term) over the regular hourly rates.
When should you purchase reserved provisioned capacity
Reserved provisioned capacity is a great option to reduce DynamoDB costs for workloads with steady usage or workloads where you can forecast growing capacity requirements over a longer term. To more accurately assess whether reserved provisioned capacity fits your needs, you can compare provisioned hourly rates and the effective hourly rate of reserved provisioned capacity. In order to calculate an effective hourly rate, amortize the one-time fee over the term and add the hourly usage rate. For example, the hourly amortized cost for 100 WCUs in the US East (N. Virginia) Region can be calculated as $150.00 / 365 days / 24 hours = $0.0171 per WCU hour.
How to purchased reserved provisioned capacity
You can purchase up to a combined one million reserved provisioned capacity units for write capacity units (WCUs) and read capacity units (RCUs) by submitting a request through the AWS Management Console. Reserved provisioned capacity is purchased in blocks of 100 WCUs or 100 RCUs. You cannot purchase reserved provisioned capacity for replicated WCUs (rWCUs). When you purchase reserved provisioned capacity, you must designate an AWS Region, quantity, and term.
If you want to purchase more than 1,000,000 provisioned capacity units in a single purchase, or have active reserved provisioned capacity and want to purchase additional reserved provisioned capacity that would result in more than 1,000,000 active provisioned capacity units, complete the service limit increase form and provide additional information regarding your use case. Steps:
- Sign in to the AWS Management Console, select DynamoDB under Databases.
- Ensure you’ve selected the Region where you want to make your reserved provisioned capacity purchases.
- Select "Reserved Capacity" in the navigation pane and choose "Purchase Reserved Capacity".
- Select the offering type and the term length you want.
- Adjust the quantity of reserved provisioned capacity to purchase.
- Select Purchase reserve capacity, verify the purchase information, and confirm.
What you should know before purchasing
Discounted pricing mechanism. A reserved provisioned capacity purchase is an agreement to pay for a minimum amount of provisioned throughput capacity, for the duration of the term of the agreement, in exchange for discounted pricing. If you use less than your reserved provisioned capacity, you will still be charged each month for that minimum amount of provisioned throughput capacity.
Applicability. Reserved provisioned capacity is available for single-Region, provisioned read and write capacity units (RCU and WCU) on DynamoDB tables including global and local secondary indexes. You cannot purchase reserved provisioned capacity for replicated WCUs (rWCUs) or for DynamoDB Standard-Infrequent Access (DynamoDB Standard-IA) table class.
Purchasable in increments of 100 read/write capacity units. Reserved provisioned capacity is purchased in allocations of 100 WCUs or 100 RCUs. The smallest reserved provisioned capacity offering is 100 capacity units (reads or writes). Any throughput you provision in excess of your reserved provisioned capacity is billed at standard rates for provisioned throughput. For example, if you buy 100 reserved WCUs and your actual usage is 100 WCUs or less, you will be charged for the reserved capacity rate for 100 WCUs.
Partial upfront payments. Partial upfront payment option provides the best effective hourly price and balances the reserved provisioned capacity payments between upfront and hourly. You can make a partial upfront payment for reserved provisioned capacity for one- or three-year terms.
Restrictions. Region, quantity, and term length must be chosen at purchase and cannot be changed later. Reserved provisioned capacity cannot be transferred to another Region or account, sold, or cancelled and the one-time fee is non-refundable. One-year reserved provisioned capacity is available in all Regions, and three-year is available in limited Regions.
Billing. You will be charged (1) a one-time upfront fee, and (2) an hourly fee for each hour during the term based on the amount of DynamoDB reserved provisioned capacity you purchase. Reserved provisioned capacity is billed at a discounted hourly rate. During billing, capacity usage is first compared to your active reserved capacity to minimize costs. Each hour, if the amount of capacity used is less than or equal to the total reserved provisioned capacity you’ve purchased, all capacity will be charged at the reserved capacity rate. DynamoDB reserved provisioned capacity is also subject to all storage, data transfer, and other fees applicable under the AWS Customer Agreement or other agreement with us governing your use of our services.
Reserved provisioned capacity billed first. Reserved provisioned capacity doesn’t require any changes to how you use DynamoDB. When computing your bill, the AWS billing system automatically applies reserved provisioned capacity rates first to minimize your costs. Reserved provisioned capacity will first be applied to the account that purchased it and then any unused capacity will be applied to other linked accounts. If you have multiple accounts linked with consolidated billing, reserved provisioned capacity units purchased either at the payer account level or linked account level are shared with all accounts connected to the payer account.
Monitoring. You can monitor your reserved provisioned capacity ownership from the AWS Management Console.
DynamoDB pricing examples
-
On-demand pricing: Simple example
This example demonstrates how DynamoDB charges using on-demand capacity.
Assume you create a new DynamoDB Standard 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
$2.22 ($0.6250 per million writes x 3.55 million writes)
$0.44 ($0.125 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. Since your table class is set to DynamoDB Standard, 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 $3.16, a total that includes $2.66 for reads and writes and $0.50 for data storage.
-
On-demand pricing: Example with optional features
This example demonstrates how DynamoDB charges using on-demand capacity.
Assume you create a new DynamoDB Standard 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 $26.36 (0.6250 per million writes x 42.177 million writes) $5.27 ($0.125 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. Since your table class is set to DynamoDB Standard, 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 PITR 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.
CDC with Kinesis Data Streams: Now assume you enable streaming to a Kinesis data stream to process your data changes using Amazon Kinesis services. DynamoDB charges one CDC unit for each write of 1 KB it captures to the Kinesis data stream. Assuming your application write traffic from earlier in this example is consistent for your Kinesis data stream, this results in 42,177,000 CDC units over the course of the month. Your monthly cost will be ($0.10 x 42,177,000/1,000,000) = $4.22.
Data export to Amazon S3: Let’s say you want to export table backups to Amazon S3 for analysis. If the size of your table at the specified point in time is 29 GB, the resulting export costs are: ($0.10 x 29 GB) = $2.90.
Integration with DynamoDB Accelerator (DAX): DAX is a DynamoDB-compatible caching service. Say you need to accelerate the response time of your application and decide to use the 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). Note that DAX costs are partially offset with fewer reads required from your DynamoDB tables. For instance, if your cache hit ratio is 85%, you will require 85% less table reads.
Global tables: Now assume you choose to create a disaster recovery replica table in the US West (Oregon) Region. Assume that you add the replica in the US West (Oregon) Region when your table is 25 GB in size, resulting in $3.75 ($0.15 x 25 GB) of table restore charges. Adding this replica also generates 25 GB of data transfer, as detailed under the "Data transfer" section below. Also assume that your application traffic from earlier in this example is consistent for your global table. You will consume 84.35 million replicated write request units (42,177,000 writes x 2 Regions), as described in Best Practices and Requirements for Managing Global Tables, resulting in a charge of $52.72 (84.35 million replicated write request units x $0.6250 per million). You also store an additional 27 GB of data in your replicated table in the US West (Oregon) Region. The first 25 GB of storage are included in the AWS Free Tier in each AWS Region for tables using the DynamoDB Standard table class. The remaining 2 GB of storage are charged at $0.25 per GB, resulting in additional table storage cost of $0.50 for the month.
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. Streams read request unit cost $0.02 per 100,000. Since you pay only for the remaining 92,000 read requests, you would pay less than 2 cents ($0.0184) for the month.
Data transfer: Because you are transferring data between AWS Regions for your global tables implementation, DynamoDB charges for data transferred out of the Region but not for inbound data transfer. Assuming 42,177,000 writes of 1 KB each in the month, you would generate 40.22 GB in data to transfer between Regions. Adding the replica in the US West (Oregon) Region generates an additional 25 GB of data transfer. You will be charged $5.94 ($0.09 x [41 + 25]) GB) for inter-region data transfer.
In summary, your total monthly charges for a single-Region DynamoDB table are:
Write traffic: $26.36
Read traffic: $5.27
Data storage: $0.50
On-demand backup: $5.00
Continuous (PITR) backup: $5.40
Table restore: $4.35
CDC for Kinesis Data Streams: $4.22
Data export to Amazon S3: $2.90
Integration with DynamoDB Accelerator (DAX), a DynamoDB-compatible caching service: $14.40
DynamoDB Streams: $0.02
Total charges: $68.42Your total monthly DynamoDB charges after adding the US West (Oregon) Region are:
Read traffic: $5.27
Data storage in US East (N. Virginia): $0.50
On-demand backup: $5.00
Continuous (PITR) backup: $5.40
Table restore in US East (N. Virginia): $4.35
CDC for Kinesis Data Streams: $4.22
Data export to Amazon S3: $2.90
Integration with DynamoDB Accelerator (DAX), a DynamoDB-compatible caching service: $14.40
DynamoDB Streams: $0.02
Global tables table restore in US West (Oregon): $3.75
Global tables replicated write requests: $52.72
Global tables data storage in US West (Oregon): $0.50
Data transfer: $5.94
Total charges: $104.97 -
On-demand pricing: Example with Standard-IA table class
In this example, we will demonstrate how you can reduce your table’s monthly charges by choosing the DynamoDB table class that best suits your table’s storage and data access patterns.
Assume you have a table in the US East (N. Virginia) Region. Your table already occupies 1 TB of historical data. The data is not frequently accessed but needs to be immediately available to your users when needed. Now, assume your data storage grows to 1.4 TB by the end of the month, averaging 1.2 TB based on continuous monitoring of your table size. Your table has a traffic pattern within the month that results in a total of 42.5 million writes and 42.5 million reads. 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.
We will start by estimating your table’s monthly charges using the DynamoDB Standard table class.Monthly charges using DynamoDB Standard table class
Setting your table class to DynamoDB Standard, you will be billed as follows.
Data Storage: Using the DynamoDB Standard table class, the first 25 GB of storage are included in the AWS Free Tier. The remaining 1.175 TB of storage are charged at $0.25 per GB, resulting in a table storage cost of $293.75 for the month.
Reads and writes: You will be charged for
42.5 million writes x $0.625 per million writes = $26.56 for write requests,
42.5 million reads x $0.125 per million reads = $5.31 for read requests.
In summary, your total monthly charges using DynamoDB Standard table class are:
Write traffic: $26.56
Read traffic: $5.31
Data storage: $293.75
Your total monthly charges using the DynamoDB Standard table class are $325.62.Monthly charges using DynamoDB Standard-IA table class
In the scenario above (with Standard table class), the cost for data storage is a significant (> 50 percent) portion of total monthly costs. Say you want to optimize costs by switching to the DynamoDB Standard-IA table class. You would be billed as follows.
Data storage: The 1.2 TB of storage are charged at $0.10 per GB, resulting in a table storage cost of $120.00 for the month.
Reads and writes: You will be charged for
42.5 million writes x $0.780 per million writes = $33.15 for write requests,
42.5 million reads x $0.155 per million reads = $6.59 for read requests.
In summary, your total monthly charges using DynamoDB Standard-IA table class are:
Write traffic: $33.15
Read traffic: $6.59
Data storage: $120.00
Total charges using DynamoDB Standard-IA table class: $159.74.
Using DynamoDB Standard-IA for your table reduces your table’s total monthly charges by 50.9%, or $165.88. -
Provisioned pricing: Simple example
This example demonstrates how pricing is calculated for an auto scaling–enabled table with provisioned capacity. 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 DynamoDB Standard 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 for tables using the DynamoDB Standard table class, 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. Since your table class is set to DynamoDB Standard, 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.
-
Provisioned pricing: Example with autoscaling and optional features
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.1154 ($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 for tables using the DynamoDB Standard table class, 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. Since your table class is set to DynamoDB Standard, 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 PITR 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.
CDC for Kinesis Data Streams: Now assume you enable streaming to a Kinesis data stream to process your data changes using Amazon Kinesis services. Also assume that your write throughput is consistent with the previous example. Your application performs 80 writes of 1 KB per second. DynamoDB charges one CDC unit for each write of 1 KB it captures to the Kinesis data stream. Over the course of a month, this results in (80 x 3,600 x 24 x 30) = 207,360,000 CDC units. Your monthly cost will be ($0.10 x 207,360,000/1,000,000) = $20.74.
Data export to Amazon S3: Let’s say you want to export table backups to Amazon S3 for analysis. If the size of your table at the specified point in time is 29 GB, the resulting export costs are: ($0.10 x 29 GB) = $2.90.
Integration with DynamoDB Accelerator (DAX): DAX is a DynamoDB-compatible caching service. You have determined that you need to accelerate the response time of your application and decide to use the DynamoDB Accelerator (DAX) service. 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: Now assume you create a disaster recovery replica table in the US West (Oregon) Region. Assume that you add the replica in the US West (Oregon) Region when your table is 25 GB in size, resulting in $3.75 ($0.15 x 25 GB) of table restore charges. Adding this replica also generates 25 GB of data transfer, as detailed under the "Data transfer" section below. Also 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 it 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. 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 160 rWCUs (80 rWCUs in N. Virginia + 80 rWCUs in Oregon = 160 rWCUs). Auto scaling provisions 229 rWCUs (160 rWCUs/70%) to maintain actual utilization at 70 percent of provisioned capacity. For more information, see Best Practices and Requirements for Managing Global Tables. Your first 25 provisioned rWCUs provisioned each hour in each Region are included in the AWS Free Tier for tables using the DynamoDB Standard table class, resulting in an hourly charge of $0.11635, or $83.77 in a 30-day month. You also store an additional 27 GB of data in your replicated table in the US West (Oregon) Region. The first 25 GB of storage are included in the AWS Free Tier in each AWS Region for tables using the DynamoDB Standard table class. The remaining 2 GB of storage are charged at $0.25 per GB, resulting in additional table storage cost of $0.50 for the month.
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: Because you are now transferring data between AWS Regions for 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 (80 KB per second x 2,592,000 seconds in a 30-day month) of cross-Region data transfer per month. Adding the replica in the US West (Oregon) Region generates an additional 25 GB of data transfer. If you have already used your AWS Free Tier data transfer allowance on other AWS services, you will be charged $20.07 ($0.09 x [198 GB + 25 GB]) for data transfer.
In summary, your total monthly charges for a single-Region DynamoDB table are:
- Provisioned capacity: $50.00
- Data storage: $0.50
- On-demand backup: $5.00
- Continuous (PITR) backup: $5.80
- Table restore: $4.35
- CDC for Kinesis Data Streams: $20.74
- Data export to Amazon S3: $2.90
- Integration with DynamoDB Accelerator (DAX), a DynamoDB-compatible caching service: $14.40
- DynamoDB Streams: $0.02
Total charges: $103.71
Your total monthly DynamoDB charges after adding the US West (Oregon) Region are:
- Provisioned read capacity: $10.68
- Data storage (N. Virginia): $0.50
- On-demand backup: $5.00
- Continuous (PITR) backup: $5.80
- Table restore (N. Virginia): $4.35
- CDC for Kinesis Data Streams: $20.74
- Data export to Amazon S3: $2.90
- Integration with DynamoDB Accelerator (DAX), a DynamoDB-compatible caching service: $14.40
- DynamoDB Streams: $0.02
- Global tables table restore (Oregon): $3.75
- Global tables replicated write capacity: $83.77
- Global tables data storage (Oregon): $0.50
- Data transfer: $20.07
Total charges: $172.48
-
Provisioned pricing: Example with Standard-IA table classes
When storage is the dominant cost (greater than 50 percent of provisioned capacity cost) using DynamoDB Standard table class, you can optimize costs by switching to the DynamoDB Standard-IA table class. In this example, we will demonstrate how you can reduce your table’s monthly charges by choosing the DynamoDB table class that best suits your table’s storage and data access patterns.
Assume you have a table in the US East (N. Virginia) Region. Your table already occupies 1 TB of historical data. The data is not frequently accessed but needs to be immediately available to your users when needed. Now, assume your data storage grows to 1.4 TB by the end of the month, averaging 1.2 TB based on continuous monitoring of your table size. Your table has a steady predictable traffic pattern. You hence provisioned it to 160 WCUs and 160 RCUs knowing that the utilization will not exceed 70 percent of the provisioned capacity within the month.
We will start by estimating your table’s monthly charges using the DynamoDB Standard table class.
Monthly charges using DynamoDB Standard table class
Setting your table class to DynamoDB Standard, you will be billed as follows.
Data Storage: Using the DynamoDB Standard table class, the first 25 GB of storage are included in the AWS Free Tier. The remaining 1.175 TB of storage are charged at $0.25 per GB, resulting in a table storage cost of $293.75 for the month.
Provisioned capacity: The AWS Free Tier includes 25 WCUs and 25 RCUs for tables using the DynamoDB Standard table class. You will be charged for:
135 WCUs x $0.00065 per hour x 24 hours x 30 days = $63.18 for the provisioned write capacity,
135 RCUs x $0.00013 per hour x 24 hours x 30 days = $12.63 for the provisioned read capacity.
In summary, your total monthly charges using DynamoDB Standard table class are:
- Provisioned capacity: $75.82
- Data storage: $293.75
Your total monthly charges using the DynamoDB Standard table class are $369.57.
Monthly charges using DynamoDB Standard-IA table class
As shown previously, when using the DynamoDB Standard table class, the storage cost is greater than 50 percent of the provisioned capacity cost. Given the same workload, now assume that you switched the table class to DynamoDB Standard-IA at the beginning of the next month. You will be billed as follows.
Data storage: The 1.2 TB of storage are charged at $0.10 per GB, resulting in a table storage cost of $120.00 for the month.
Provisioned capacity: You will be charged for
160 WCUs x $0.00081 per hour x 24 hours x 10 days = $92.16 for the provisioned write capacity,
160 RCUs x $0.00016 per hour x 24 hours x 10 days = $18.43 for the provisioned read capacity.In summary, your total monthly charges using DynamoDB Standard-IA table class are:
- Provisioned capacity: $110.59
- Data storage: $120.00
Your total monthly charges using DynamoDB Standard-IA table class are $230.59. Switching your table to DynamoDB Standard-IA reduced your table’s total monthly charges by 37.6%, or $138.97.
-
Example with warm throughput
Assume you have a DynamoDB Standard table in the US East (N. Virginia) region with a current warm throughput of 12,000 read units per second and 4,000 write units per second. For an upcoming peak event, you expect the table to need 100,000 read units per second, so you set this as the new read warm throughput value. You will incur a one-time fee for the additional 88,000 read units (the difference between 100,000 and 12,000) at the rate of $11.44 (88,000 units × $0.00013 per RCU).
This billing structure applies whether you prewarm your table or index for reads or writes, in either the DynamoDB Standard or Standard-Infrequent Access table class. If this table is part of a global table setup with replicas in three regions, including US East (N. Virginia), all three replicas will be prewarmed to support a warm throughput of 100,000 read units per second. In addition to the charge in US East (N. Virginia), you will also be billed at the respective rates in each region that is part of the global table configuration.
Estimate your DynamoDB costs
Estimate your monthly costs based on throughput and optional features.
DynamoDB pricing calculatorDid you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages