我有一个Node.js应用程序和一个运行在AWS上的MongoDB数据库。我目前所得到的设置由两个ELB和两个实例组成,每个实例运行一个Docker容器并分配其服务(节点/mongo):
Elastic Load Balancer -> Dockerized Node -> Elastic Load Balancer -> Dockerized MongoDB我正在为MongoDB运行正式的Docker映像,在这里可以找到:https://registry.hub.docker.com/_/蒙戈/
任何关于如何使用Docker和ECS为MongoDB部署MongoDB的指针,每个副本都运行在不同的实例上。
发布于 2017-04-26 22:58:44
不要篡改数据库。码头集装箱意味着是短暂的,而不是保存数据。这对数据库是不合适的。
特别是,不要尝试对MongoDB集群进行篡改。副本集的设置是非常有状态和复杂的。您必须按顺序运行许多命令,并且只运行一次。如果您错过了任何命令,或者节点发生故障,整个集群可能会死锁,您将被迫重新启动。
Docker对于应用程序应该如何运行有自己的想法。要在码头内完成这项工作是非常困难的。
如果您想要一个带有3个副本的集群,您应该获得3个AWS实例并在实例上设置MongoDB。搜索谷歌上的mongodb setting up a replica set on <OS>,这将给你一个最新的教程。
发布于 2017-08-29 18:25:14
是FireCamp干的。FireCamp可以非常容易地在AWS上部署MongoDB ReplicaSet。1)使用cloudformation部署ECS集群,2)通过一个命令部署MongoDB ReplicaSet。有关详细信息,请查看FireCamp安装wiki。
为了安全起见,最好在另一个ECS集群中运行Node.js应用程序。运行EC2的MongoDB实例不应公开给外部世界。
Node.js应用程序访问MongoDB ReplicaSet并不需要弹性负载均衡器。每个副本都有一个唯一的dns名称。Node.js应用程序只需使用dns名称即可访问MongoDB。
https://serverfault.com/questions/708189
复制相似问题