2014-04-23 35 views
1

我有2个Amazon ELB实例使用相同的自动缩放组。亚马逊使用相同的多个ELB实例自动缩放组

我的健康检查类型设置为自动缩放组的ELB。

在ASG的每个EC2实例上,我有2个Web应用程序(它们托管在IIS中,但我认为它并不相关)。

将所有东西都启动并运行后,我关闭了其中一个实例上的IIS,以便两个ELB的运行状况检查都无法针对特定的EC2实例进行检查。 (ASG仍看到健康,但ELB将其视为停止服务)。

我ASG具有

Desired instances: 2 
Min: 2 
Max: 4 

我期待的EC2实例被终止和ASG创建一个新的,但这种情况不会发生。

任何想法? 谢谢

PS:它适用于1个ELB实例和1个ASG,只有一个Web应用程序在IIS下工作。

+0

看起来像一个角落的情况。你有两个Web应用程序在同一台服务器上的原因吗? – Rico

回答

1

documentation

如果有与您的自动缩放组相关联的多个负载均衡,自动缩放将通过使健康检查调用每个负载平衡器检查您的EC2实例的健康状态。对于每次调用,如果Elastic Load Balancing操作返回除InService之外的任何其他状态,则该实例将被标记为不健康。在Auto Scaling将实例标记为不健康后,即使其他负载均衡器的后续调用为同一实例返回InService状态,它仍将保持该状态。

他们不提终止行动spesificaly,但是从我的理解,它失败的运行状况检查,这将设置实例在spesific ELB不健康 - 但由于其他ELB被标记为在职,有没有理由终止。

当然,这是AWS,您可以随时使用API​​编写一些代码来检测此问题,并终止(设置不健康)有问题的实例,该实例适用于一个ELB,而不是另一个。

或者一个更清洁的方法是将其拆分为每个具有一个ELB的单独的ASG。

+0

感谢您的回答。我已经在自动缩放组上设置了ELB运行状况检查,如果我仅使用1个ELB实例使用该ASG,则工作正常。但是,如果我在每个EC2实例上使用2个ELB实例和2个独立的Web应用程序,则ASG不会终止对健康检查无响应的计算机。 – Mihai