当 SQS 队列很短时,我想使用 AWS AutoScaling 缩减一组实例。
这些实例执行一些繁重的工作,有时需要 5-10 分钟才能完成。我希望在实例终止之前完成这项工作。
我知道很多人应该遇到过同样的问题。是否可以在 EC2 上处理 AWS 终止请求并在实例实际终止之前完成我所有正在运行的进程?什么是最好的方法?
最佳答案
假设您使用的是 linux,您可以创建一个预烘焙的 AMI,您可以在附加到 Auto Scaling 组的启动配置中使用该 AMI。
在 AMI 中,您可以将脚本放在 /etc/init.d
下说 /etc/init.d/servicesdown
.此脚本将执行您需要关闭的任何内容,这些脚本是 /usr/share/services
下的脚本。例如。
这有点像要点:
servicesdown
在正常关闭时,它总是会被执行。
然后在 Ubuntu/Debian 上说你会做这样的事情来将它添加到你的关机序列中:
/usr/sbin/update-rc.d servicesdown stop 25 0 1 6 .
在 CentOS/RedHat 上,您可以使用
chkconfig
命令将其添加到正确的关闭运行级别。
关于amazon-web-services - AWS AutoScaling,缩减规模 - 等待进程终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20468955/