降尺度时EC2现场实例终止通知

时间:2015-09-16 16:05:10

标签: amazon-web-services amazon-ec2 autoscaling

每次我的spot实例计划终止时,我都需要运行一个清理脚本。我有两个终止原因:

  1. 现货实例的价格超出我的出价
  2. 由自动缩放组的扩展策略引起的缩减(基于5分钟内的平均群集CPU使用情况,随机实例终止)。
  3. 我确实喜欢我在this博客上找到的简单脚本。它涵盖了第一种情况,并在关机前给我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
    

1 个答案:

答案 0 :(得分:3)

Auto Scaling Hooks允许您创建一个实例将被终止(或启动)的事件通知。

向上:你会得到更多的时间。默认值为60分钟,您可以发送心跳消息以延长时间,也可以在清理完成后通知服务。如果你没有回应,那么事件就会超时并完成。

向下:通知不会转到实例本身,因为现场终止警告会发生。他们去SNS或SQS。您可能必须将实例订阅到通知(例如,在实例启动时将每个实例订阅到SNS主题),或者您需要滚动自己的系统来管理消息并与实例通信。