Amazon SimpleDB or DynamoDB

We are creating a mobile app with CMS rails to manage it.

What does our application look like?

Each application administrator can set up one private channel with very little data - About 50 short lines.

Users can then download the app and register several different channels and get data from the server to their devices. The data will be stored locally and will not be retrieved again unless the admin user updates the data (but we assume this will not happen very often). Each channel will be available on no more than 500 devices.

Users can contribute to the channel, but this data will be stored on S3 and not in the database.

2 important points:

  • Most of the channels will be active for 5 months, not for 500 + - users. But most of the activity will take place over a few days.
  • Each channel is intended for small users (500). But we hope to gain access to hundreds of thousands of admin users.

Building a CMS with Rails we've seen that using SimpleDB is more robust than using DynamoDB. But since we are not experts on the server, we saw the limitations of SimpleDB, and we don't know if SimpleDB can handle the amount of data transfer we will have (if our application is successful). Another important point is that DynamoDb costs are much higher and not dependent on usage, while SimpleDb will be much cheaper in the beginning.


  • Does simpleDB help our needs?
  • Can we migrate to dynamoDB later if our service grows in the future?

source to share

1 answer

Starting with a new project and not knowing what to expect from use, I would say the best option is to go with SimpleDB. It doesn't look like your usage is going to be very high. SimpleDB should be able to handle this without issue. The real power of dynamoDB comes when you have a really heavy load. You don't fall into this category, it seems.

If you are developing your application correctly, switching between SimpleDB and DynamoDB should be an easy task if you decide at some point that SimlpeDB is not working. I use these switches all the time with other components of my software. Since both databases are NoSQL, you should have no problem converting between them. Just make sure any functionality you use in SimpleDB is available in DynamoDB. Make sure you design your database as DynamoDB has more stringent requirements, using indexes make sure they are compatible.

It is said. A lot of people use SimpleDB for their applications, and I don't expect you to see performance issues unless your product really takes off, at which time you can invest in resources to move to DynamoDB.

Apart from all this, we have prices, as you already mentioned. SimpleDB is the obvious solution for your use case.



All Articles