0

在我的 aws 设置中,我有指向多个应用程序服务器的负载平衡,这些应用程序服务器都使用一个通用 API。应用服务器都有相同的 NGINX 配置(nginx.conf),由于各种原因,我现在需要更新。

有什么办法来处理这个?我是否更新 AMI 并重新启动应用服务器?我必须重新启动服务器吗?有没有办法更新 AMI 并使服务器保持运行?

我正在拼命寻找有关如何处理这种情况的教程/最佳实践。谢谢你。

4

2 回答 2

0

可能ChefPuppet会完成这项工作。或者您可以通过一个简单的 shell 脚本和rsync.

于 2012-11-22T07:34:39.973 回答
0

虽然厨师和木偶是正确的做法,但如果您不想涉足这类事情,只需几个步骤即可完成。

  1. 在制作 AMI 时为您的负载平衡实例之一制作 AMI(请勿选择重新启动)。
  2. 从该 AMI 创建一个实例,在其中进行更改,然后测试该实例,从该实例创建 AMI。

现在的诀窍是让你的实例变坏,让负载均衡器觉得它变坏了并创建一台新机器来替换坏实例;但是为什么要维护一个新实例,除非您向负载均衡器指定它至少应该有多少个实例,否则它不会,现在没有配置可以这样做,因为它不是负载均衡器配置文件的一部分,它的扩展策略。

因此,使自动缩放策略(使用新的 AMI)偏离路线并进行新的启动配置(使用新的 ami 偏离路线),将最小实例数设置为您想要的任何数量,比如说 2(总是尝试保持一对,并且每当扩大/缩小规模时,请保留几个实例)。

现在继续减少 LB 的健康检查,SSH 进入您的一个实例(停止 nginx),LB 会认为它已经坏了并启动配置以保持最小。将启动多个实例,并使用新的 AMI 引入一个新实例。

于 2014-03-11T05:57:55.250 回答