As a note, if you find errors with the math below, please let me know.
This cost comparison only compares cost per I/O operation. It does not discuss storage or transit costs.
- Intel 320 series SSD, 300GB specs: http://www.intel.com/content/www/us/en/solid-state-drives/ssd-320-specification.html
At 4K, IOPS rates are advertised as:
- read: 39500/sec
- write: 23000/sec
Cost of an Intel 320 300GB drive: About $500
Comparing the same IOPS advertised by Intel 320 300GB, but with DynamoDB pricing - Pricing specifics are here: http://aws.amazon.com/dynamodb/#pricing
-
Read units: 39500 * 4 = 158000
-
Read cost: (158000 / 50) * 0.01 (per hour) = $31.60/hour
-
Monthly read cost: $31.60/hour * 24 hours * 30 days = $22752.00/month (every 30 days)
-
Write units: 23000 * 4 = 92000
-
Write cost: (92000 / 10) * 0.01 (per hour) = $92/hour
-
Monthly write cost: $92/hour * 24 hours * 30 days = $66240/month (every 30 days)
Amortizing the cost of hardware over 3 years is fairly common, so I will use that as a frame.
This puts the cost of the Intel SSD at $500 per 3 years.
The same IOPS performance on DynamoDB over 3 years (forgetting leap years) will cost:
- dynamodb total: $3,248,208 per 3 years
- intel total; $500 per 3 years.
separating reads and writes:
- dynamodb read cost: $31.60 * 24 * 365 * 3 = $830448
- dynamodb write cost: $92 * 24 * 365 * 3 = $2417760
I think there's a lot of detail missing in this comparison that makes it seem more sensationalist than factual. The underlying point is valid that DynamoDB is expensive but a fairer comparison would be against say - an on-prem NoSQL database like MongoDB.
Typically, an enterprise would also care about:
These costs add up. I think often the reason why people rack up high costs on DynamoDB is that they're running workloads or queries that are just not suitable for the type of operations it supports efficiently. For example, if you're doing analytical queries turning into full table scans (or even hitting multiple indices), it will increase costs significantly.