5

以一个 100gb 的数据库为例:

Azure 存储成本:6.05 英镑/平方米 AWS 上的 MongoLab 1 个节点成本:153.18 英镑/平方米

我错过了什么吗?计算错误?有人可以在这里为我解决问题吗?我更喜欢使用 MongoLab,因为我真的很喜欢 node/mongoDB。但与表存储一起使用似乎是一种更具成本效益的解决方案。

我知道键/值和文档存储之间的区别,我更喜欢后者。

4

1 回答 1

12

您需要考虑 Azure 表存储 (ATS) 是存储即服务。您无需设置任何服务器来管理存储和相关的 CRUD 操作。这由 Azure 为您处理,因为 ATS 是一个庞大的多租户系统。您只需请求一个帐户,接收一个端点(加上主密钥和辅助密钥),然后离开,每 GB 支付大约 7 美分(每 100K 交易一美分,这相当微不足道)。

使用 MongoDB,您需要部署自己的服务器,无论是在 AWS 还是在 Azure(或本地或其他任何地方),以及配置存储。开箱即用,今天的云提供商没有原生的 MongoDB 即服务产品。您的成本基础现在比 ATS 高得多,并且您负责备份/快照、MongoDB 维护等。即使是简单的 MongoDB 部署也将花费您至少两个虚拟机实例(不建议在生产中使用独立服务器由于定期停机)。最小的 Azure 实例为 0.02 美元/小时或约 14 美元/月 x 2,最低占用空间约为 30 美元/月(这是一个内存不足 1GB 的低端虚拟机;它不会为您提供高性能 MongoDB,但可能非常适合仅用于访问量很少的存在点网站或博客)。

现在,你提到了 MongoLab。他们确实拥有 MongoDB 即服务,并构建了多租户托管解决方案,并且他们的服务可在包括 Azure 在内的多个云上使用。他们收取的价格考虑了他们在虚拟机实例、存储和带宽以及服务器维护、备份策略、支持、高可用性、监控等方面的投资。

我不会太关注存储成本是您唯一的决定因素。如果您需要使用 ATS 执行任何类型的复杂查询,例如需要多个索引字段,您将需要构建额外的表来提供这些索引(或者您最终会进行分区扫描或表扫描以查找您想要的内容需要)。MongoDB 有一个非常强大的搜索和聚合引擎。如果您的应用程序需要这个,您可能会在开发人员时间工程和维护额外的表存储复杂性上花费更多的钱,而不是使用 MongoDB 并让您的应用程序“今天”运行。另一方面,如果您的数据非常适合表存储,其中分区 + 行键涵盖了绝大多数搜索情况,并且您可以利用实体​​组事务进行原子更新,

我希望这有帮助...

于 2013-02-07T18:55:30.020 回答