每次安排终止我的现货实例时,我都需要运行清理脚本。我有两个终止的理由:
- 现货实例的价格超出了我的出价
- 由于自动伸缩组的伸缩策略导致的缩容(基于5分钟集群平均CPU使用率,随机实例终止)。
我确实喜欢下面的简单脚本this http://blog.fugue.it/2015-01-06-spot-termination-notices.html博客。它涵盖了第一个案例,并在关机前给了我 2 分钟的时间进行清理。
对于第二种情况,有没有一种简单的方法可以得到这样的 2 分钟通知?
可能会通过相同的网址提供警告吗?
#!/bin/bash
while true
do
if [ -z $(curl -Is http://169.254.169.254/latest/meta-data/spot/termination-time | head -1 | grep 404 | cut -d \ -f 2) ]
then
logger "Running shutdown hook."
# Call your shutdown script here.
break
else
# Spot instance not yet marked for termination.
sleep 5
fi
done
自动缩放挂钩 http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/adding-lifecycle-hooks.html允许您创建实例将被终止(或启动)的事件通知。
好处是:你可以获得更多时间。默认值为 60 分钟,您可以发送心跳消息来延长时间,也可以在清理完成后通知服务。如果您不响应,事件就会超时并结束。
缺点:通知不会像现场终止警告那样发送到实例本身。他们会访问 SNS 或 SQS。您要么必须为实例订阅通知(例如,在实例启动时为每个实例订阅 SNS 主题),要么需要部署您自己的系统来管理消息并与实例进行通信。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)