I have recently explored AWS DynamoDB and was reading about Read/Write Capacity Units. I understood that they are as under:
- WCU: A write capacity unit represents one write per second, for
an item up to 1 KB in size. - RCU: A read capacity unit represents
one strongly consistent read per second, or two eventually consistent
reads per second, for an item up to 4 KB in size.
So, my table has 1 WCU and 1 RCU. This means I would be charged for every read and every write I do to my table. Good so far. Plus I would be charged additionally for data storage.
However, when I look at this link (scroll down to DynamoDB detailed feature pricing/Read and Write Requests), it shows me WCU and RCU in Price per hour which is $0.00065 per WCU or $0.00013 per RCU.
What is the meaning or Price per hour?
Would I be wrong to assume $0.00065 per WCU or $0.00013 per RCU and ignore the hour part completely? Meaning, per write would cost me $0.00065 and per read would cost me $0.00013.
2
Answers
There are two pricing models for DynamoDB: Provisioned and On-Demand.
Provisioned capacity means that you will be charged each hour for the provisioned unit whether you consume it or not — and your requests will be throttled if you go over provisioned capacity in a given second. This model allows for considerable savings when you have stable demand and you have a method within your solution to deal with throttles gracefully.
If you are in the dev mode, or your application has unpredictable peaks, you should consider On-Demand mode where you will be billed a flat rate per request irrespectively of the rate of requests.
Hope this helps.
Yes, for this configuration you would be charged as follows:
Writes
$0.00065 * 730 = $0.4745 per month
Reads
$0.00013 * 730 = $0.0949 per month
In provisioned mode you pay for the capacity regardless of how many requests you make. Having 1WCU and 1RCU will allow you to write 1 * 1KB items per second and read 1 * 4KB per second. Moreover, DynamoDB free tier allows you 25WCU and 25RCU per region per month. You can apply this capacity to a single table or multiple tables as you wish. This is enough capacity to provide 200M requests per month.
In contrast, On-demand mode allows you to pay per request, however it’s not as cost effective as provisioned mode. It simplifies using DynamoDB without needing to think about setting capacity or auto-scaling. It does not have a free tier.
DynamoDB free tier also provides 25GB of storage per month per region.
Have a look over the Docs… it’s filled with valuable information to help you understand the difference in capacity modes.