一家公司的 HTTP 应用程序位于 Network Load Balancer (NLB) 之后。NLB 的目标组使用一个 Amazon EC2 Auto Scaling 组,其中包含多个运行 Web 服务的 EC2 实例。NLB 未检测到 HTTP 错误,这需要手动重启 Web 服务 EC2 实例。该公司希望在不编写自定义脚本或代码的情况下提高可用性。解决方案架构师应该怎么做?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 用 Application Load Balancer 替换 NLB。通过提供公司应用程序的 URL 来启用 HTTP 健康检查。配置 Auto Scaling 操作以替换不健康的实例。.
为什么这是答案
正确的做法是使用 Application Load Balancer (ALB) 替换 Network Load Balancer (NLB)。NLB 在传输层(第 4 层)运行,只能执行基于 TCP 的健康检查,无法检测 HTTP 错误。ALB 在应用层(第 7 层)运行,可以执行 HTTP 健康检查。通过配置 ALB 的 HTTP 健康检查,并提供应用程序的 URL,ALB 能够识别出返回 HTTP 错误的实例为不健康实例。然后,可以配置 Auto Scaling 组来自动终止这些不健康的实例并启动新的健康实例,从而提高可用性,而无需手动干预或编写自定义脚本。 其他选项错误的原因: 在 NLB 上启用 HTTP 健康检查是不可行的,因为 NLB 不支持 HTTP 健康检查。 在 EC2 实例上添加 cron 作业来检查日志并重启应用程序,这需要编写自定义脚本,并且不能自动替换有问题的实例,不符合提高可用性的要求。 监控 NLB 的 UnhealthyHostCount 指标并不能解决根本问题,因为 NLB 无法检测 HTTP 错误,所以这个指标不会反映应用程序层的健康状况。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡