根据AWS文档,SPOT实例的终止会提前2分钟通知。我希望通过按需实例替换通知要删除的SPOT实例来确保我的服务继续运行。
当SPOT实例标记为终止时,是否存在现有方式(内置AWS配置或外部工具)以按需实例自动替换EC2 SPOT实例?
答案 0 :(得分:2)
虽然有一些现货招标和管理工具,但我认为没有人会这样做。我建议:
答案 1 :(得分:2)
我不认为可以将您的跑步点实例转换为按需实例(如果这就是您所要求的),但如果你真正想要的是启动一个新的ondemand实例,那么通常你可以做到以下几点:
你应该在你的实例上运行一个简单的cron作业,每5秒检查一次终止通知,即
#!/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
# Call your script to launch on-demand instance here.
break
else
# Spot instance not yet marked for termination.
sleep 5
fi
done
答案 2 :(得分:0)
全部披露:我为SenseDeep工作,该公司提供自动关闭Spot实例的PowerDown服务。
PowerDown将收到2分钟的警告,并将主动启动AutoScale组中的按需实例,以维护AutoScale组中的容量。当现货市场恢复时,它将自动用现货实例替换OnDemand实例。您可以指定要维护的按需实例和竞价型实例的数量或百分比。
通过这种方式,您可以在生产环境中使用竞价型实例,因为PowerDown将维护您的AutoScale组的可用性。
在最新的AWS现货市场价格更新(2018)中,现货实例的寿命更长(通常一次为数周),但其他作者是正确的:如果绝对的话,那么99.9999999%必须保证您拥有实例- -保留实例。