【问题标题】:How can I stop and start EC2 automatically, when it not responding on http当 EC2 在 http 上没有响应时,如何自动停止和启动 EC2
【发布时间】:2018-08-22 08:45:52
【问题描述】:

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

在不使用规模组和弹性负载均衡器 (ELB) 的情况下,在 AWS 上实施的最佳方式是什么。

正如我之前提到的,我不需要创建新实例,只需停止并启动即可。

【问题讨论】:

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


    【解决方案1】:
    • 首先考虑在 monit 或其他监控服务的帮助下重新启动服务,而不是停止和启动实例,因为重新启动实例需要时间而且不是一个好主意。

    • 但如果您担心实例宕机的情况,您可以配置自动修复(https://aws.amazon.com/blogs/aws/new-auto-recovery-for-amazon-ec2/)。

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

    【讨论】:

    • 第二个不起作用,因为当 HTTP 不起作用时,EC2 仪表板上的实例状态为 OK。你能解释一下第三个选项吗?
    • @RezaMousavi,我已经用更多细节更新了答案,但不推荐第三种方法:)。
    • 正如我之前提到的,第二个选项不起作用,因为当 HTTP 不起作用时,EC2 仪表板上的实例状态为 OK
    • 有一个监视器怎么样,当它没有响应时重新启动http服务器
    【解决方案2】:

    我正在使用 Route53 运行状况检查,它在触发时会向 SNS 主题发送通知,该主题会触发重启服务器的 Lambda 函数。

    【讨论】:

      猜你喜欢
      • 2020-08-09
      • 2020-05-21
      • 2018-08-15
      • 2013-02-04
      • 2019-08-03
      • 2022-12-13
      • 2020-04-23
      • 2011-10-29
      • 1970-01-01
      相关资源
      最近更新 更多