EC2 – 当机器“准备就绪”时,你如何告诉ELB?

我有一个自动调节设置与监控,一切都很好。 代码部署的过程现在已经完成,基本上这样做了。

  1. 创build一个新的launch_config,它定义了要提取的git提交
  2. 使用新的启动configuration更新自动缩放组。
  3. 将服务器的最小尺寸放大到我们所拥有的大小的2倍。
  4. 等他们都上网
  5. 缩小和旧的被淘汰。

我所看到的问题是,在我们“等待他们上网”的同时,他们在“准备好”服务之前正在报告“健康”和“服务中”,因为他们正在更新包裹并拉出相关的源代码。 这个时间差别很大,从2分钟到每个EC2实例大于15分钟。

我正在寻找的是一种手动设置“服务/ healtny”标志的方法,或者是处理这种滞后的更好策略。

我会注意到,当实例触发Nginx自动启动。 这是什么决定了这个例子是否健康? 有这么less的文件(我可以find)在这个启动过程准备 – 任何帮助将不胜感激。

如果有帮助的话,这是ELB的后面。 健康检查启用“/”。 我想知道是不是那么简单

谢谢

Elastic Load Balancer运行状况检查确定ELB是否将stream量发送到任何特定实例。

你想要做的是非常简单的:

在完成启动和configuration之前,不要启动实例上的Web服务器。

您可以轻松设置一个在您的EC2实例上处于活动状态的URI,并设置ELB运行状况检查来调用它。 在该健康检查URI返回200状态码之前,该实例将不会在ELB中被激活以接收stream量。

在大多数情况下,默认情况下只是查询服务器的URI /,但您可以将其更改为任何您想要的。 在我的情况下/将失败,如果它的Web应用程序设置没有准备好stream量。 你也可以把它指向一个CGI或者PHP页面,当系统准备就绪时,它将进行系统检查并返回一个良好的200状态码。