故意使实例附加到ELB不健康

时间:2016-10-26 22:49:09

标签: amazon-web-services boto boto3

有没有办法使用boto有目的地将实例附加到ELB不健康?

到目前为止,我尝试了很少的方法,而不是它们。

感谢您的帮助!!

3 个答案:

答案 0 :(得分:0)

不,这是不可能的。没有AWS API调用可以更改实例的运行状况。 (Auto Scaling具有此功能,但不具有负载平衡功能。)

您可以使用deregister_instances() API调用,这将有效地实现相同的结果。

Register or Deregister EC2 Instances for Your Classic Load Balancer文档说:

  

取消注册EC2实例会将其从负载均衡器中删除。负载均衡器在取消注册后立即停止将请求路由到实例。如果需求减少,或者您需要为实例提供服务,则可以从负载均衡器中注销实例。取消注册的实例仍在运行,但不再从负载均衡器接收流量,您可以在准备好后再次将其注册到负载均衡器。

     

取消注册实例时,如果启用了连接耗尽,则Elastic Load Balancing 等待,直到完成正在进行的请求。

答案 1 :(得分:0)

是的,我们可以在下面的场景中做到这一点。 让我们假设你有loadblancer(myloadbalancer),一个附加了它的实例和下面的PingPath配置。

Ping Protocol: HTTP
Ping Port: 80
Ping Path: /

只需添加boto3代码即可编辑健康检查配置,如下所示,您可以看到魔术(Instance OutOfService)。

client.configure_health_check(
LoadBalancerName='myloadbalancer',
HealthCheck={
    'Target': 'HTTP:80/hjkx',
    'Interval': 30,
    'Timeout': 5,
    'UnhealthyThreshold': 5,
    'HealthyThreshold': 3
}

答案 2 :(得分:0)

另外两个选择: 1.暂时禁用响应运行状况检查的Web服务器/进程。在我们的例子中,我们在它前面运行Java webapps和nginx代理。关闭nginx代理使得健康检查失败,而Java应用程序仍将运行。 2.临时防火墙ELB用于执行运行状况检查的端口。您可以通过调用AWS api来执行此操作。