替换即将由按需实例

时间:2017-03-09 17:34:01

标签: amazon-web-services amazon-ec2

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

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

3 个答案:

答案 0 :(得分:2)

虽然有一些现货招标和管理工具,但我认为没有人会这样做。我建议:

  • 不要在生产/关键任务/无法停运的情况下执行此操作。拥有一个可以随时终止的单个实例将是危险的(例如,如果此自动化以某种方式失败)
  • 使用具有不同实例类型的Spot Fleet自动高效地保持所需的大小(在本例中为1)。
  • 现货车队的另一种选择是两个自动扩展组,一个用于现场,一个按需(最小值= 0 max = 1),以及自动扩展策略,用于调整CloudWatch警报的大小。

答案 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%必须保证您拥有实例- -保留实例。