繁体   English   中英

终止时如何自动从AWS ELB注销EC2实例?

[英]How to automatically deregister EC2 instance from AWS ELB on termination?

如果EC2实例是AWS Elastic Load Balancer(ELB)的成员,则终止此EC2实例不会将其从ELB中删除。

它将被标记为N / A,并且停止服务。 然后,我们的监视系统会将ELB中不正常的情况通知我们。

我们当前的解决方案是一个boto脚本,该脚本会定期轮询和验证每个ELB成员。 那是行得通的,但是那是拉数据架构,使我们的AWS API节流。

是否有一个选项可以自动从ELB中删除终止/丢失的实例? 或者,是否可以对推送的数据(SQS,SNS)而不是提取数据(API,w / boto)?

我了解了采用轮询设计[轮询更改并拉动boto脚本进行更改]时需要轮询的问题。

比较简单的方法是使用Push方法,即按需制作实例或显式删除实例。

您可以通过几种方法进行操作。 我能想到的几种方法

  1. 我相信终止API调用将导致正常关机,然后终止-如果我的理解是正确的,那么您可以使用可以触发的On-Shutdown脚本,将自身删除到ELB后面。 您可以获取EC2元数据的帮助来标识自己 -实例ID; 因此您可以在每个实例中放置相同的脚本或进行AMI。

  2. 使用Lambda函数通过SNS [CloudTrail-> SNS-> Lambda Invoke]侦听CLoudTrail日志,将其解析为"eventName": "TerminateInstances" ,然后查找实例ID并将其从ELB中删除。

  3. 这更像[1a + 2a]-在这里,而不是运行boto(或脚本),而是留下一条SNS消息,该消息将被称为lambda,从而将实例从ELB中删除。 在有条件的情况下删除用例或更改用例的逻辑将是有用和容易的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM