我目前正在使用Amazon SimpleDB。但是,从费用来看,这似乎太贵了,超出了我的承受能力。
有一个m1。小型的Amazon EC2实例,它可以很好地运行前端web服务器。在我的单个SDB域中,我有四个属性(其中两个可以删除,因为它们包含我现在很少需要的数据)和项目名称。我只执行getAttribute查询(没有选择)。基本上,项目名称是我用来查找数据的。
每秒大约发生20次读和8次写。盒子的使用率非常高,这推高了我的成本。
这将是最好的数据库选择,托管在t1上。微实例(因为它是唯一便宜的低级别64位实例,而其他64位实例都太昂贵了)?
Redis/MongoDB/CouchDB还是什么?在如此小的实例上托管一个能够承受我上面提到的负载的数据库服务器是否可能?
由于其他原因,我已经将一些数据库从SimpleDB迁移到MongoDB。
但是,我想继续使用数据库的托管模型。因此,我现在使用的不是Amazon SimpleDB,而是MongoHQ (mongohq.com)和MongoLab (mongolab.com)的组合。
他们也有一个免费的层,不是基于流量,而是基于数据库的大小。您需要根据将要处理的数据量来分析成本。在我看来,如果你只使用2个属性,你应该可以在一段时间内使用免费层(MongoLab.com对免费层有250Mb的限制)
由于这两个托管服务都可以托管在Amazon EC2中,它们离你的前端很近,你不会产生带宽成本,因为它们都在AWS内部,并且由于你将使用高速的内部AWS网络,将有助于提高性能。
在性能方面,我认为每秒20读和8写不是什么大问题,服务器会照顾所有需要的周期来支持你的应用程序。
你可以批处理你所有的写操作,并使用默认的不提供响应,以使写操作更快。
对于你的读取,确保你的集合索引正确,它应该运行良好。