将即将终止的竞价实例替换为按需实例

kga*_*ron 1 amazon-ec2 amazon-web-services

根据AWS文档,SPOT实例的终止会提前2​​分钟通知。我想通过将通知删除的 SPOT 实例替换为按需实例来确保我的服务继续运行。

当 SPOT 实例标记为终止时,是否有现有方法(内置 AWS 配置或外部工具)自动将 EC2 SPOT 实例替换为按需实例?

E.J*_*nan 5

我认为不可能将正在运行的现货实例转换为按需实例(如果这就是您所要求的),但如果您真正的意思是启动一个新的按需实例,那么通常您可以这样做下列:

您应该在实例上运行一个简单的 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
Run Code Online (Sandbox Code Playgroud)