Pay only for what you use. There is no minimum fee. Estimate your monthly bill using the Simple Monthly Calculator.
As part of AWS’s Free Tier, AWS customers can get started with Amazon DynamoDB for free. DynamoDB customers get 25 GB of free storage, as well as up to 25 write capacity units and 25 read capacity units of ongoing throughput capacity (enough throughput to handle up to 200 million requests per month) and 2.5 million read requests from DynamoDB Streams for free.
Amazon DynamoDB lets you specify the request throughput you want your table to be able to achieve (your table’s “throughput capacity”). Behind the scenes, the service handles the provisioning of resources to achieve the requested throughput rate. Rather than asking you to think about instances, hardware, memory, and other factors that could affect your throughput rate, we simply ask you to provision the throughput level you want to achieve and we handle the rest.
When you create or update your Amazon DynamoDB table, you specify how much capacity you wish to reserve for reads and writes. Amazon DynamoDB will reserve the necessary machine resources to meet your throughput needs with consistent, low-latency performance.
You pay a flat, hourly rate based on the capacity you provision:
* For small items, one unit of capacity can handle one request per second (or two requests per second in the case of eventually consistent reads). Larger items may require more units of capacity to handle the same request rate. For more information, see our FAQ: “What is a read/write capacity unit?”
Amazon DynamoDB is an indexed datastore, and the amount of disk space your data consumes will exceed the raw size of the data you have uploaded. Amazon DynamoDB measures the size of your billable data by adding up the raw byte size of the data you upload, plus a per-item storage overhead of 100 bytes to account for indexing. You do not need to “provision” storage with Amazon DynamoDB. You are simply billed for what you use, as described above.
Amazon DynamoDB Streams is a time-ordered sequence of item-level changes on an Amazon DynamoDB table. DynamoDB Streams can be enabled on a per table basis. There is no charge for enabling DynamoDB Streams. You only pay for reading data from DynamoDB Streams. Reads are measured as read request units. Each “GetRecords” API call is billed as a DynamoDB Streams read request unit and returns up to 1MB of data from DynamoDB Streams. Pricing Details are below.
Let’s assume that your application needs to perform 1 million writes and 1 million reads per day on a DynamoDB table, 50K read requests to DynamoDB Streams per day, while storing 1 GB of data.
For simplicity, let’s assume that your workload is relatively constant throughout the day and your items are less than 1 KB in size. (You can easily scale up and down to deal with variable workloads and adjust for larger items, but for this example we’ll keep it simple).
First, you need to calculate how many writes and reads per second you need. 1 million evenly spread writes per day is equivalent to 1,000,000 (writes) / 24 (hours) / 60 (minutes) / 60 (seconds) = 11.6 writes per second. A DynamoDB Write Capacity Unit can handle 1 write per second, so you need 12 Write Capacity Units. Similarly, to handle 1 million strongly consistent reads per day, you need 12 Read Capacity Units.
Using provisioned throughput pricing in the US East (N. Virginia) Region, 12 Write Capacity Units would cost $0.1872 per day and 12 Read Capacity Units would cost $0.0374 per day. So your total cost of provisioned throughput capacity is $0.1872 + $0.0374 = $0.2246 per day. 50K read requests per day from DynamoDB Streams will cost you 50K/100K x $0.02 = $0.01. Storage costs $0.25 per GB per month. Assuming a 30-day month, your 1 GB would cost 1 x $0.25 / 30 = $0.0083 per day. Combining these numbers, the total DynamoDB cost (provisioned throughput capacity + Streams read requests + storage) would be $0.2246 (for provisioned throughput capacity) + $0.01 (for Streams read requests) + $0.0083 (for storage) = $0.2429 per day.
For a little less than $0.25/day ($7.50/month), you could support an application that performs 1 million writes and reads per day, 100K read requests from Streams, and stores 1 GB of data.
If you haven’t used up your free tier allotment (25 write capacity units, 25 read capacity units, 2.5 million Streams read requests, 25 GB of storage), you can run this application for free on DynamoDB.
With DynamoDB Triggers, you only pay for the number of requests for your AWS Lambda function and the duration for which your AWS Lambda function executes. Learn more about AWS Lambda pricing here. You are not charged for the reads that your AWS Lambda function makes to the stream (via DynamoDB Streams) associated with the table.
DynamoDB Cross-region Replication is enabled by a new application which you can launch using the provided AWS CloudFormation Stack. While there is no additional charge for the cross-region replication application, you pay the usual prices for the following resources used by the application. You will be billed for:
- Provisioned throughput (Writes and Reads) and storage for the replica tables.
- Data Transfer across regions.
- Reading data from DynamoDB Streams to keep the tables in sync.
- The EC2 instances provisioned to host the replication application. The cost of the instances will depend on the instance type you choose and the region hosting the instances.
- The SQS queue that queues control commands from the application.
Reserved Capacity pricing offers significant savings over the normal price of DynamoDB provisioned throughput capacity. When you buy Reserved Capacity, you pay a one-time upfront fee and commit to paying for a minimum usage level, at the hourly rates indicated above, for the duration of the Reserved Capacity term. Using Reserved Capacity pricing, you can save up to 53% with a 1-year term and up to 76% with a 3-year term. To purchase Reserved Capacity, go to the AWS Management Console, go to the DynamoDB console page, then click on "Purchase Reserved Capacity". To learn more about Reserved Capacity, please read our FAQs.
Data transfer “in” and “out” refers to transfer into and out of Amazon DynamoDB. There is no additional charge for data transferred between Amazon DynamoDB and other Amazon Web Services within the same Region (i.e. $0.00 per GB). Data transferred across Regions (e.g. between Amazon DynamoDB in the US East (Northern Virginia) Region and Amazon EC2 in the EU (Ireland) Region), will be charged at Internet Data Transfer rates on both sides of the transfer.
* Your free usage is calculated each month and automatically applied to your bill – free usage does not accumulate.
** As part of AWS’s Free Usage Tier, AWS customers will receive free 15 GB of data transfer out each month aggregated across all AWS services for one year.
*** Data transfer out rate tiers aggregate outbound data transfer across Amazon EC2, Amazon EBS, Amazon S3, Amazon Glacier, Amazon RDS, Amazon SimpleDB, Amazon DynamoDB, Amazon SQS, Amazon SNS, AWS Storage Gateway, and Amazon VPC.