
Amazon DynamoDB
DynamoDB is a fully managed NoSQL database designed to be highly scalable having a fast and consistent performance. Unlike SimpleDB, DynamoDB has all the common features that you expect in a NoSQL database and can be extensively used in large projects. However, DynamoDB has a flaw for our use case: it is not a serverless database. It requires provisioning of resources, so you can't say that DynamoDB is truly serverless. If you pay for provisioned capacity, you need to worry about the servers because you may end up provisioning more or less than necessary and paying for availability even when no one is using your database.
Fortunately, AWS has a permanent free tier that is very generous. You can serve more than 100 million read/write requests per month for free and this offer is not restricted to new AWS users. Considering this advantage, the low price to grow your user base, the possibility to automate the throughput provisioning, DynamoDB is a good choice for most serverless applications and this is proven by the numerous examples of projects and demos created by the serverless community using DynamoDB. It is very hard to see SimpleDB being used even for small projects, since DynamoDB is free for low usage.
So, even if you have a large project and end up having to pay for provisioned resources that you would not use, DynamoDB requires much less management and can be a cheaper option than running a traditional database solution. For all these reasons, we are going to cover SimpleDB usage in this book, but our sample application will run on DynamoDB.