代码之家  ›  专栏  ›  技术社区  ›  Reza Mousavi

当EC2在http上没有响应时,我如何自动停止和启动它

  •  0
  • Reza Mousavi  · 技术社区  · 6 年前

    我有一个带有HTTP服务器的EC2;我想在2分钟后当它在HTTP端口上没有响应时自动停止并启动它。

    如前所述,我不需要创建新实例,只需停止并启动。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Madhan S    6 年前
    • 首先,不要停止并启动实例,而是考虑在monit或其他监视服务的帮助下重新启动服务,因为重新启动实例需要时间而且不是一个好主意。

    • https://aws.amazon.com/blogs/aws/new-auto-recovery-for-amazon-ec2/ ).

    • 另一种自定义方法是,在实例内部使用curl执行一个简单的hello检查,并将响应日志存储在cron中,将日志同步到cloudwatch,在cloudwatch中,可以使用日志绘制度量,并配置alarm如果度量计数低于阈值2分钟,则可以编写lambda函数来重新启动实例,把lambda和警报联系起来( https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/ ). 既然您已经提到您有一个实例,那么这种方法将起作用,如果您有多个实例,则需要处理名称空间,但是再次重新启动实例不是一个好主意。

        2
  •  1
  •   caba    6 年前

    我正在使用Route53 healthcheck,当被触发时,它会向SNS主题发送通知,触发Lambda函数来重新启动服务器。