优化应用部署与负载均衡:从单一实例到多实例架构
1. 应用部署与数据库连接恢复
首先,从导航菜单中选择“Stack”,然后在右上角点击“Run Command”。将命令更改为“Configure”,接着点击右下角的按钮。之后,导航到“Apps”,点击“Photoalbums”旁边的“deploy”,再点击右下角的“Deploy”,让部署运行。此时,我们就重新连接到了原始数据库,如果愿意,还可以删除故障转移。
2. 引入弹性负载均衡(ELB)的必要性
目前,我们的应用仅在单个EC2实例上运行。虽然可以将实例扩展到更大的规模,但这可能不足以处理应用的传入流量。而且,更改EC2实例的大小可能会导致服务中断,这是我们想要避免的。另外,在使用Node.js时,许多服务器端错误可能会导致应用崩溃,尽管OpsWorks会自动重启应用,但单个错误导致整个应用离线,哪怕只有几秒钟,也是不理想的。
解决这两个问题的方法是在多个实例上运行应用,这可以通过负载均衡器(在AWS中称为弹性负载均衡,即ELB)来实现。ELB可以自动在多个EC2实例和多个可用区之间重定向流量。如果某个实例崩溃或处于不健康状态,ELB会停止向该实例路由流量,直到它恢复正常。
以下是ELB的工作流程:
graph LR
A[客户端请求] --> B[ELB]
B --> C1[EC2实例1]
B --> C2[EC2实例2]
B --> C3[EC2实例3]
C1 --> B
C2 --> B
C3 -->