我很高兴Amazon EC2
用户,我在这里和那里跟随了一些教程(主要是this one),并且我成功部署了一个node.js
应用程序。在亚马逊EC2上缩小我的单实例node.js/mongodb应用程序 - 从头开始
我目前有t2.nano
机器,它可以很好地作为我的情侣用户的测试环境。目前我的iOS应用程序已经准备就绪,因此在发布大版本之前,我需要关注可扩展性并为更多用户做好准备。
我乐观地认为我很快就会有1000个用户。我希望准备好整个环境,以便至少能够为这些用户顺利工作。但问题是 - 我不知道我应该如何开始配置一切。
纠正我,如果我错了,但我认为我需要2-3台机器t2.medium
(?)所有这些运行我的node.js
代码,并由Amazon's Load Balancer
处理,但数据库呢?
如果我把事情做好了,我需要在一台机器上(上面提到的那些t2.medium
之一)设置一个mongodb
主实例,并在另外两台机器上创建slave实例?
但是 - 如果我这样做 - 那么在机器之间复制数据呢?另外 - 每个t2.medium
机器上运行的每台node.js
服务器必须与数据库建立连接 - 是否指向主数据库?
我试图找到任何教程 - 类似于我用来部署单个应用程序的教程 - 但我很努力。我发现this youtube video一个家伙描述他如何用5台机器(一台主人,其余的人是奴隶)来设置环境,但我不确定这是否是一个好方向。
请问你们能否帮助我,并在此给我提示?我不知道什么时候开始,现在我真的很感激任何事情。 谢谢!
证明纳米是不够的。使用http://locust.io/或类似工具加载测试您的应用程序。检查瓶颈,并缩小最弱的组件。 –
是的,你说得对,'nano'确实不够。目前我需要扩展环境,所以我想知道我该怎么做 - 我是否需要设置3台'中型'机器在单个负载平衡器后面?如果是的话 - 我如何将它们连接到我的数据库?我曾想过用node.js和3'medium“机器与数据库建立3台'medium'机器 - 其中一台有主设备和两台从设备,但是如何将这些设备连接到一个工作环境?我是否必须将每个node.js服务器指向我的主数据库,并希望 - 在过载的情况下 - 从站自动接管? – randomuser1
从nano开始,您可以享受横向和纵向可扩展性。使用哪一个,以及要扩展的组件取决于负载测试和成本比较的结果。典型的设置使用主要读/写,并使用辅助冗余,但有用户案例直接连接到辅助。当您连接到副本集时,驱动程序的工作是找出哪个节点是主节点,并在选出后立即切换到下一个主节点。你可以继续。这样说,副本集使数据库变得更慢,它与规模无关。 –