在负载平衡的服务器之间保持一致的配置

在负载平衡的服务器之间保持一致的配置

首先——我不是系统管理员,所以我甚至不确定我所做的事情是否正确。

基本上,我有两个 Amazon EC2 网络服务器,它们本质上是彼此的克隆。我创建了一个 Elastic Load Balancer,并将两个实例添加到其中。我同时将生产代码推送到两个服务器,以便内容保持一致。

现在一切正常,但我很难理解配置。如果我最终扩展并启动更多实例并将它们添加到负载平衡器,我如何才能使 Apache 配置在所有实例上保持一致?我讨厌手动通过 SSH 进入每个实例只是为了更新我的 httpd.conf 文件。

是否有针对此的策略?或者我的负载均衡器设置是否正确?

答案1

开玩笑地回答,找一个合格的系统管理员来帮助你。:-)

更有帮助的是,是的,你走在正确的道路上。通过使用亚马逊的 ELB,你基本上拥有一个“正常工作”的黑盒负载均衡器,并且可以通过亚马逊的工具轻松管理。你在部署方面的主要责任是保持 Web 应用服务器的一致性和最新性。有 3 种经典策略:

  1. “凭直觉”,大部分情况下是手动登录到每个应用服务器,然后手动执行安装和/或使用一些脚本来协助完成部分工作。

  2. 使用声明性工具进行配置管理,例如厨师木偶等等(有很多)来编写一切脚本。

  3. 使用 Amazon AWS 内置的功能。工作流程通常如下:a) 部署生产版本。b) 在单独的 VM 中构建暂存服务器。c) 开发代码,并安装在单独的暂存服务器上。d) 准备发布时,生成X暂存服务器 AMI 的副本。e) 转换 ELB 以使用新的(以前是暂存的)VM 进行生产。f) 将旧的生产 VM 保留几天,以便在需要时方便回滚。

以上较好的选择一般是2)和3)。

你可以阅读“Web 操作:保持数据及时”作者:John Allspaw 和 Jesse Robbins。这本书相当高级,也就是说,它不是给出“把这个脚本粘贴到那里”的建议;它更侧重于“为什么”和“文化”等更高层次的概念。这是一本好书。

相关内容