Let me start by saying that DynamoDB is by far the most aggressively priced cloud service. It charges per throughput (read write) units assigned to a table on an hourly basis which makes it really expensive to use. On the other side, it provides supreme scalability with extremely low latency as the catalogue claims which has been true for most of our production workloads in the last 3 years that we have run with it. DDB is a great columnar store alternative.Their query API Is gradually maturing and is now way more useful to get most job done.
Until recently I was running a 500GB cluster (500 million records of about 1kb each) and it cost me almost a grand a month. But, most of these costs were from the provisioned throughput capacity, not the storage.<p>I never had any scaling problems, availability problems, data corruption or anything like that. It did exactly what it claimed to do.<p>Remember that Dynamo is a database as a service (it's not something you have the option of running on your own servers). So it's not comparable to MongoDB exactly, it's more like a hosted MongoDB service. For me, a comparable MongoDB cluster hosted at compose.io would have cost me 6 grand a month, MongoLab would have cost me about 3 grand a month, so the pricing felt ok.<p>That being said, don't expect MongoDB features, Dynamo is setup more like a simple key-value store (although you could force it to store documents, you won't get the indexing/searching/filtering capabilities of mongo).<p>If you want fault-tolerance and practically unlimited scalability it's a good choice. Just as long as you don't need to get tons of data in and out all time (that's when the provisioned throughput costs go soaring). It's also a complete pain in the ass to export data (it's a whole pipeline-to-mapreduce-to-hive thing).