我有一个运行 wordpress 应用程序的 Elastic Beanstalk 应用程序,当健康检查(主页)返回范围内的 HTTP 响应代码时,我想要一些监控和扩展触发器。4xx and 5xx
我知道 Elastic Beanstalk 中的配置部分有监控选项卡和容量选项卡。我在那里看到了扩展规则和健康检查字段。这是我正在寻找的环境行为:
Scaling triggers
- Health check -- which is the [home page][1] (/index.php) -- returns a response status code within 4xx and 5xx
- spin up a new instance behind the Elastic Load Balancer which will handle web traffic
- in the meantime direct all traffic to the maintenance page
- If over a period of 3 minutes no instance is returning a health check response within 4xx and 5xx from the home page
- either scale down to two instances or keep the two "healthy" instances in rotation behind the ELB.
我是否需要使用上面提到的选项卡(监控和容量)?有人可以告诉我如何在 AWS Elastic Beanstalk 中设置上述环境触发器吗?
答案1
您可以使用 AutoScaling Group(ASG)、Elastic Load Balancer(ELB)和 Beanstalk 创建的内置健康检查基本上完成所有您想做的事情。
- 默认情况下,当 ELB 的健康检查失败时,流量将停止发送到该实例并重定向到连接到该 ELB 的其他实例,但是当所有实例都不健康时,没有任何方法可以将客户发送到维护页面。
- 任何 4xx 或 5xx 都默认会导致健康检查失败
- 如果 ASG 的健康检查类型从 EC2 更改为 ELB,它将自动替换 ELB 标记为不健康的实例
- 可以配置内置 ELB 健康检查的计时器(必须错过多少个连续请求、超时多长时间等)
要完成您想要做的事情,您需要编写大量脚本来构建您自己的健康检查机制和操作。如果我上面描述的方法对您有用,您需要做的就是更改 ASG 上的健康检查类型和(可选)ELB 健康检查上的计时器
由于这是在 beanstalk 中,因此所有这些都需要通过 EBExtensions(用于更改 Beanstalk 环境中的基础结构的代码片段)进行配置,因为我认为这些选项目前在 Beanstalk 控制台中都不可用。以下是用于将 ASG 的健康检查类型更改为 ELB 的 EBExtension 的示例。 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environmentconfig-autoscaling-healthchecktype.html