【问题标题】:AWS Beanstalk, how to reboot (or terminate) automatically an instance that is not respondingAWS Beanstalk,如何自动重启(或终止)没有响应的实例
【发布时间】:2017-11-04 21:05:33
【问题描述】:

我的 Beanstalk 环境带有一个使用 “CPUUtilization”“缩放触发器”,它运行良好。

问题是我无法将它与自动重启(或终止)已被视为 “OutOfService” 一段时间的实例的系统结合使用。

进入“Scaling > Scaling Trigger > Trigger measurement”“UnHealthyHostCount”选项。但这不会以最佳方式解决我的问题,因为只要有一个不健康的实例,它就会创建新实例,这会促使我的环境在没有真正原因的情况下增长到极限。另外,我不能组合 2 个“触发测量”,我需要一个 CPU。

当环境中只有一个实例时,问题变得至关重要,它变成了 OutOfService。整个环境都死了,Trigger 测量永远不会被触发。

【问题讨论】:

  • 这是单实例环境还是附加了 ELB?
  • @strongjz 它不是单实例,但该解决方案也应该适用于单实例环境

标签: amazon-web-services amazon-elastic-beanstalk elastic-load-balancer


【解决方案1】:

如果您在 Elastic Beanstalk 中使用 Classic Load Balancer

你可以去EC2 -> Auto Scaling Groups

然后将负载均衡器的Health Check TypeEC2改为ELB

通过执行此操作,您的 Elastic Beanstalk 实例将在它们没有响应时终止。将创建一个新实例来替换终止的实例。

【讨论】:

    【解决方案2】:

    AWS Elastic Beanstalk 使用 AWS Auto Scaling 管理实例的创建和终止,包括替换不正常的实例。

    AWS Auto Scaling 可以与同样由 Elastic Beanstalk 自动创建的 ELB(负载均衡器)集成以进行运行状况检查。 ELB 具有健康检查功能。如果 ELB 检测到某个实例运行状况不佳,并且 Auto Scaling 已配置为依赖 ELB 运行状况检查(而不是默认的基于 EC2 的运行状况检查),则 Auto Scaling 会自动替换 ELB 认为运行状况不佳的实例。

    所以您所要做的就是正确配置 ELB 健康检查(您似乎已经正确配置了它,因为您提到您可以看到实例被标记为 OutOfService),然后您还必须配置 Auto Scaling 组以使用 ELB 健康检查。

    有关此主题的更多详细信息,包括配置所有这些的具体步骤,请查看官方文档中的这两个链接:

    这应该可以解决问题。如果您对此有疑问,请在评论中添加您在尝试此操作后可能获得的任何其他信息。

    干杯!

    【讨论】:

    • 我目前正在将其转移到生产阶段测试中,并且必须等待问题出现,然后才能完全验证此解决方案是否有效,但文档和说明会出现在现场。一旦我确认了预期的行为,我会发表评论。
    【解决方案3】:

    您可以使用 StatusCheckFailed_Instance 指标设置 CloudWatch 警报以重启运行状况不佳的实例。

    有关每个步骤的详细信息,请参阅以下AWS Documentation 中的向 Amazon CloudWatch 警报添加重启操作部分。

    【讨论】:

      【解决方案4】:

      如果您希望 Auto Scaling 替换其应用程序已停止响应的实例,您可以使用配置文件将 Auto Scaling 组配置为使用 Elastic Load Balancing 运行状况检查。以下示例将组设置为使用负载均衡器的运行状况检查以及 Amazon EC2 状态检查来确定实例的运行状况。

      示例 .ebextensions/autoscaling.config

      Resources:
        AWSEBAutoScalingGroup:
          Type: "AWS::AutoScaling::AutoScalingGroup"
          Properties:
            HealthCheckType: ELB
            HealthCheckGracePeriod: 300
      

      见:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environmentconfig-autoscaling-healthchecktype.html

      【讨论】:

        猜你喜欢
        • 2019-03-07
        • 2019-08-01
        • 2015-03-18
        • 2016-06-18
        • 2017-03-17
        • 1970-01-01
        • 2018-08-15
        • 2020-04-23
        • 2012-05-19
        相关资源
        最近更新 更多