如何知道我的实例是否将在ec2中终止?

时间:2019-01-04 17:05:58

标签: amazon-web-services amazon-ec2

我在AWS中具有自动缩放功能,基本上可以做到:

  1. 运行python进程script.py
  2. 此脚本从sqs队列获取消息进行处理

我的自动缩放配置为根据队列中的可用消息数启动/终止实例。但是有时,当我在机器中处理某些内容和消息数时,我的自动缩放触发了终止实例的操作,因此在处理过程中我会丢失消息。

我开始尝试处理信号,但似乎没有用。

我的主要目标是:

  • 如果我知道我的实例将很快终止,我将等待完成当前进程(我将不会收到任何新消息),并向AWS发送“ OK”信号以关闭实例。

反正有存档吗?我没有使用负载平衡,因为我是从队列中手动获取消息的。

1 个答案:

答案 0 :(得分:4)

您可以使用AWS自动缩放生命周期挂钩,它们会在终止ec2实例之前将其置于等待状态,并向SNS或cloudwatch发送消息,表明您的实例已准备好终止,您可以同时完成已处理的消息,我发现了一篇有趣的博客文章,解释了与您相似的用例。

AWS autoscaling lifecycle hooks