【发布时间】:2015-12-13 08:02:48
【问题描述】:
每次安排我的 Spot 实例终止时,我都需要运行清理脚本。我有两个终止理由:
- 现货实例的价格超出了我的出价
- 自动伸缩组的伸缩策略导致的降级(基于 5 分钟内的平均集群 cpu 使用率,随机实例终止)。
我确实喜欢我在 this 博客上找到的下面的简单脚本。它涵盖了第一种情况,让我在关机前有 2 分钟的时间进行清理。
对于第二种情况,是否有一种简单的方法可以在 2 分钟内收到通知?
可能会通过相同的 url 获得警告吗?
#!/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
【问题讨论】:
-
但是如果 EC2 实例不在 Auto Scaling 组下怎么办?就我而言,我使用的是 EMR,其中所有实例都是任务实例组下的现货实例。而且,在 EMR 中,没有自动缩放组的概念。如何获得终止信号的通知?
标签: amazon-web-services amazon-ec2 autoscaling