![在负载平衡的服务器之间保持一致的配置](https://linux22.com/image/532229/%E5%9C%A8%E8%B4%9F%E8%BD%BD%E5%B9%B3%E8%A1%A1%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B9%8B%E9%97%B4%E4%BF%9D%E6%8C%81%E4%B8%80%E8%87%B4%E7%9A%84%E9%85%8D%E7%BD%AE.png)
首先——我不是系统管理员,所以我甚至不确定我所做的事情是否正确。
基本上,我有两个 Amazon EC2 网络服务器,它们本质上是彼此的克隆。我创建了一个 Elastic Load Balancer,并将两个实例添加到其中。我同时将生产代码推送到两个服务器,以便内容保持一致。
现在一切正常,但我很难理解配置。如果我最终扩展并启动更多实例并将它们添加到负载平衡器,我如何才能使 Apache 配置在所有实例上保持一致?我讨厌手动通过 SSH 进入每个实例只是为了更新我的 httpd.conf 文件。
是否有针对此的策略?或者我的负载均衡器设置是否正确?
答案1
开玩笑地回答,找一个合格的系统管理员来帮助你。:-)
更有帮助的是,是的,你走在正确的道路上。通过使用亚马逊的 ELB,你基本上拥有一个“正常工作”的黑盒负载均衡器,并且可以通过亚马逊的工具轻松管理。你在部署方面的主要责任是保持 Web 应用服务器的一致性和最新性。有 3 种经典策略:
“凭直觉”,大部分情况下是手动登录到每个应用服务器,然后手动执行安装和/或使用一些脚本来协助完成部分工作。
使用 Amazon AWS 内置的功能。工作流程通常如下:a) 部署生产版本。b) 在单独的 VM 中构建暂存服务器。c) 开发代码,并安装在单独的暂存服务器上。d) 准备发布时,生成X暂存服务器 AMI 的副本。e) 转换 ELB 以使用新的(以前是暂存的)VM 进行生产。f) 将旧的生产 VM 保留几天,以便在需要时方便回滚。
以上较好的选择一般是2)和3)。
你可以阅读“Web 操作:保持数据及时”作者:John Allspaw 和 Jesse Robbins。这本书相当高级,也就是说,它不是给出“把这个脚本粘贴到那里”的建议;它更侧重于“为什么”和“文化”等更高层次的概念。这是一本好书。