MongoDB 适用于流量非常低但有机会快速扩展的小型生产项目

MongoDB for small production project with very low traffic but with opportunity to scale fast

我遇到过数据库问题(特别是 MongoDB)。

起初,我想将它部署到 MongoDB Atlas Cloud,但生产集群(M30 和更高)对于像我这样的小项目来说相当昂贵。

现在我正在考虑将 MongoDB 副本集部署在 Heroku Dyno 或 AWS 实例上的某处。

您不能推荐任何成本不高的生产就绪 way/solution 吗?

正如我所见,AWS 为数据库(Amazon RDSAmazon DynamoDB 等)提供了一些免费套餐,但它真的免费还是一个陷阱?因为我听说 AWS 定价政策并不像定价页面上看起来那么甜蜜(实际上)

欢迎任何建议或帮助!

你试验 MongoDB 的最便宜的方法仍然提供扩展到更大的东西的途径是获得一个像 t2.micro 这样的免费层级 EC2 实例并安装 MongoDB社区就可以了。 Linux 64 位发行版可在此处获得:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-5.0.5.tgz。只需在该 tar 文件上 运行 tar xf 即可提取 mongod 服务器和 mongo CLI 可执行文件。不需要其他配置,几乎可以这样启动它:

$ mkdir -p /path/to/dbfiles
$ mongod --dbpath /path/to/dbfiles --logpath /path/to/dbfiles/mongo.log --replSet "rs0" --fork

不需要副本集来使用聚合、事务等
该解决方案还将向您展示许多重要的事情,例如网络安全、数据库安全、日志管理、驱动程序兼容性、密钥保管库,以及使用 AWS 控制台和 AWS CLI 来操纵环境。您可以升级到更大的机器并稍后创建成员并将其添加到副本集——或者您可以冒险尝试使用 MongoDB Atlas。但到那时你会对函数尤其是函数感到舒服。聚合管道、文档模型、驱动程序等,基本上都是在零成本平台上学习的。

这里的性能并不是真正的问题,而是在 t2.micro 实例上使用方便的负载生成器 POCDriver (https://github.com/johnlpage/POCDriver),没有特殊设置,文档大小为 0.28Kb,90/10 read/insert 混合使用默认的 4 个线程并删除批量更新 (-b 1),我们在主键 _id.[=21 上得到大约 450 inserts/sec 和 4200 reads/sec =]

java -jar POCDriver.jar --host "mongodb://localhost:27017" -k 90 -i 10 -b 1

当然,负载生成器正在与数据库引擎本身竞争资源,但作为第一步,了解独立于网络考虑因素的性能是件好事。 从启动 EC2 实例到 运行 包括安装 java sudo yum -y install java-1.8.0-openjdk-devel.x86_64 在内的测试用了大约 5 分钟。