用于可扩展读取应用程序的mongoDB体系结构(常量写入)

时间:2017-05-26 21:12:31

标签: mongodb amazon-web-services scalability

我的应用运行每日作业,收集数据并将其提供给mongoDB。处理此数据,然后通过rest API公开。

需要在AWS中设置mongodb群集,要求:

  • 每天数据大小将增长大约(大约50M记录),因此写入吞吐量不需要扩展。写入将在某个小时由cron触发。对象是不可变的(它们不会增长)
  • 读取吞吐量将取决于用户/流量的数量,因此它应该是可扩展的。一开始交通不会很重。
  • 数据主要是简单的JSON,需要围绕某些字段的几个索引进行快速查询/过滤。

我应该在副本集,分片等方面使用哪种架构?

我应该为此架构使用哪种存储卷? (EBS,NVMe)? 是首选使用更多实例还是使用RAID设置。吗

我希望每月花费约500美元。

提前致谢

1 个答案:

答案 0 :(得分:1)

要在AWS中设置MongoDB集群,我建议为MongoDB引用最新的AWS quick start,它将涵盖体系结构方面,并提供CloudFormation模板。

对于存储卷,您需要使用支持EBS而非NVMe存储的EC2实例类型,因为NVMe只是一个实例存储。如果停止并启动EC2,则NVMe中的数据将丢失。

同样对于存储卷吞吐量,您可以从具有合理存储大小的通用IOPS开始,如果您发现任何限制,则只考虑预配置IOPS。

为了实现高可用性和容错,CloudFormation将在MongoDB集群中创建多个实例(节点)。