1

我已经运行带有自动缩放组的 LBS,它可能会在每次需要时启动一个新实例(例如,在高负载期间)。

截至目前,它仅根据 AMI id 启动新实例,但我想将我们的基础设施木偶化。我不想在每次更改后构建全新的 AMI。因此,我想将 AMI 与干净的操作系统 + 正确配置的 puppet 代理一起使用。

我正在努力寻找的是亚马逊何时(在哪一点)将新实例添加到负载均衡器中?显然我不希望将死机添加到 LB 中。并且在应用整个 puppet 配置之前,机器可能会被认为是死机,这在启动后可能需要一些时间。

LB 只是等到该机器上的端口 80 可用,还是在启动脚本中有任何命令确保所有服务都在运行,然后通过一些 API 通知 AWS 实际将自己添加到 LB 中?

4

1 回答 1

1

你有几个选择。您可以通过 TCP 端口或 ping 目标 URL 对实例设置健康检查。这是在 ELB 本身的运行状况检查部分(在 gui 中)下配置的。

如果您要使用 ping 选项:如果您的实例在端口 80/index.html 上可用,则运行状况检查将失败,直到该页面启动并可用。一旦 index.html 页面可用,它将被列为“服务中”,然后 ELB 会将流量导向它。

如果您选择了 TCP 选项:基本上,只要实例启动并将安全组添加到其中,负载均衡器就会认为该实例“处于服务状态”。

您可能需要为您的特定用例选择 ping 选项

以下是有关该主题的一些其他文档:http: //docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-add-elb-healthcheck.html

于 2013-09-02T23:23:07.423 回答