我遇到了DBs (特别是MongoDB)的问题。
起初,我想把它部署到MongoDB Atlas Cloud上,但是对于像我这样的小项目来说,生产集群(M30和更高版本)非常昂贵。
现在,我正在考虑在Heroku或者AWS实例的某个地方部署MongoDB副本集。
你能不能提出任何适合生产的方法/解决方案,不会花很多钱?
正如我所看到的,AWS为DBs提供了一些免费的层(Amazon RDS、Amazon DynamoDB和其他层),但是它真的是免费的还是一个陷阱?因为我听说AWS的定价政策并不像在定价页面上看到的那样甜蜜(实际上)。
欢迎任何建议或帮助!
发布于 2022-01-04 01:00:01
您用MongoDB进行实验的最便宜的方法仍然提供了一条扩展到更大的东西的途径,那就是获得一个免费的EC2实例,比如t2.micro,然后自己在上面安装MongoDB社区。Linux64bit发行版可以在这里获得:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-5.0.5.tgz。只需在该tarfile上运行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地图集。但到那时,您将对函数(尤其是函数)感到满意。聚合管道、文档模型、驱动程序等等,基本上都是在一个零成本平台上学习的。
性能在这里并不是真正的问题,但是在没有特殊设置的t2.micro实例上使用方便的负载生成器POCDriver (https://github.com/johnlpage/POCDriver),文档大小为0.28Kb,在默认的4个线程和批处理更新删除(-b 1)的情况下,90/10读/插入混合(-b 1),我们在主键_id上得到大约450个插入/秒和4200个读/秒。
java -jar POCDriver.jar --host "mongodb://localhost:27017" -k 90 -i 10 -b 1当然,负载生成器正在与DB引擎本身竞争资源,但是作为第一步,了解独立于网络考虑的性能是很好的。从启动EC2实例到运行测试,包括安装java sudo yum -y install java-1.8.0-openjdk-devel.x86_64,花费了大约5分钟。
https://stackoverflow.com/questions/70570429
复制相似问题