首页 文章

亚马逊多个ELB实例使用相同的自动缩放组

提问于
浏览
1

我有两个使用相同自动缩放组的Amazon ELB实例 .

我将自动缩放组的运行状况检查类型设置为ELB .

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

一旦我启动并运行了所有东西,我就关闭其中一个实例上的IIS,以便两个ELB的运行状况检查对于特定的EC2实例失败 . (ASG仍然认为这些实例是 Health 的,但是ELB认为它们已经停止服务) .

我的ASG有

Desired instances: 2
Min: 2
Max: 4

我期待EC2实例被终止并且ASG创建一个新实例,但这不会发生 .

有任何想法吗 ?谢谢

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

2 回答

  • 1

    来自documentation

    如果有多个负载均衡器与Auto Scaling组关联,Auto Scaling将通过对每个负载均衡器进行运行状况检查来检查EC2实例的运行状况 . 对于每个调用,如果Elastic Load Balancing操作返回除InService之外的任何状态,则该实例将被标记为运行状况不佳 . Auto Scaling将实例标记为运行状况不佳后,即使来自其他负载均衡器的后续调用返回同一实例的InService状态,它也将保持该状态 .

    他们没有特别提到终止操作,但据我所知,这会将实例设置为特定ELB中的 Health 检查失败 - 但是当其他ELB将其标记为InService时,没有理由终止 .

    当然,这是AWS,您总是可以使用API编写一些代码来检测这一点,并终止(设置不 Health )有问题的实例,该实例适用于一个ELB而不是另一个ELB .

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

  • 1

    默认的ASG运行状况检查类型是EC2实例状态检查 . 只是尝试将其设置为ELB,以便它将考虑ELB运行状况检查结果以进行扩展/输入 . 请参考:http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-add-elb-healthcheck.html

相关问题