亚马逊简单数据库或动态数据库?

3
我们正在使用Rails CMS构建一个移动应用程序。
我们的应用程序是什么样子?
该应用程序的每个管理员用户可以设置一个私有频道,包含极少量的数据 - 大约50个短字符串。
然后,用户可以下载该应用程序,注册几个不同的频道,并从服务器获取数据到其设备中。数据将存储在本地,除非管理员用户更新数据,否则不会再次获取数据(但我们假设这种情况不会经常发生)。每个频道将只提供给不超过500个设备。
用户可以为频道做出贡献,但此数据将存储在S3上而不是数据库中。
两个重要的点:
大多数频道将活跃5个月左右,不会有500名用户左右的活动。但大部分活动将在相同的几天内发生。
每个频道都是针对少量用户(500人),但我们希望 :) 能够吸引成千上万的管理员用户。
通过使用Rails构建CMS时,我们发现使用SimpleDB比使用DynamoDB更加直接。但是,由于我们不是服务器专家,我们看到了SimpleDB的局限性,并且不知道SimpleDB是否能够处理我们将拥有的数据传输量(如果我们的应用程序成功)。另一个重要的问题是,DynamoDb的成本要高得多,而且不受使用情况的影响,而SimpleDb在开始时会便宜得多。
问题是:
1. SimpleDB是否适合我们的需求?
2. 如果我们的服务将来增长,是否可以随后迁移到DynamoDB?
1个回答

3
开始一个新项目时,不清楚使用哪个数据库,我建议您选择SimpleDB。看起来您的负载并不是很高,SimpleDB应该能够轻松处理。DynamoDB真正的优势在于当您有大量负载时才会显现出来。但是您好像不需要这么强大的功能。
如果正确设计应用程序,则在某些时候决定SimpleDB不适用时,简单地在SimpleDB和DynamoDB之间切换应该是容易的任务。我经常在我的软件中进行此类切换。由于两个数据库都是NoSQL,因此在它们之间进行转换不应该有问题。只需确保在DynamoDB中使用的任何功能在SimpleDB中也可用。确保为两个数据库设计兼容的数据库设计,DynamoDB要求使用索引更加严格。
话虽如此,许多人已经在他们的应用程序中使用了SimpleDB,并且我认为除非您的产品真正火爆,否则不会遇到性能问题;届时您可以投资资源来转移到DynamoDB。
除此之外,我们还有价格问题,就像您已经提到的一样。对于您的用例,SimpleDB是明显的解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接