ECS Fargate + 网络负载均衡器健康检查
ECS Fargate + Network Load Balancer Healthcheck
我遇到以下设置问题:
API 网关 -> VPC Link -> 私有 NLB -> 目标组 -> AWS ECS Fargate
如果我在指定端点上将 NLB 的健康检查设置为 TCP/HTTP,则该端点会因内部请求而被重创(没有请求通过 API 网关,我检查过):
我对这种行为的问题,除了健康端点被我自己的架构垃圾邮件外,是应用程序的功能受到影响(我一直收到缓慢的响应,四分之一的请求 API)。
我尝试将健康检查的行为修改为仅 TCP,响应速度同样缓慢。
我尝试暂时切换到 public ALB,我正在进行双重健康检查,间隔 30 秒,但我的应用程序平均响应时间为 100 毫秒。
所以,作为我所说的 "double health-checks" 的例子:
运行状况检查 1.1 在 00:00:00
运行状况检查 2.1 在 00:00:10
运行状况检查 1.2 在 00:00:30
运行状况检查 2.2 在 00:00:40
有什么想法吗?
TL/DR;
启用 "Cross-Zone Load Balancing" NLB 标志。
问题是 "cross-availability zone" 未签出。
似乎当一个请求被一个 NLB 节点处理时,该节点位于与它试图重定向的不同的 AZ 中,它会尝试在 AZ 中内部解析 IP,如果失败,它将请求重定向到适当 AZ 中的另一个 NLB 节点,它将能够这样做,从而达到目标。
我遇到以下设置问题:
API 网关 -> VPC Link -> 私有 NLB -> 目标组 -> AWS ECS Fargate
如果我在指定端点上将 NLB 的健康检查设置为 TCP/HTTP,则该端点会因内部请求而被重创(没有请求通过 API 网关,我检查过):
我对这种行为的问题,除了健康端点被我自己的架构垃圾邮件外,是应用程序的功能受到影响(我一直收到缓慢的响应,四分之一的请求 API)。
我尝试将健康检查的行为修改为仅 TCP,响应速度同样缓慢。
我尝试暂时切换到 public ALB,我正在进行双重健康检查,间隔 30 秒,但我的应用程序平均响应时间为 100 毫秒。
所以,作为我所说的 "double health-checks" 的例子:
运行状况检查 1.1 在 00:00:00
运行状况检查 2.1 在 00:00:10
运行状况检查 1.2 在 00:00:30
运行状况检查 2.2 在 00:00:40
有什么想法吗?
TL/DR;
启用 "Cross-Zone Load Balancing" NLB 标志。
问题是 "cross-availability zone" 未签出。 似乎当一个请求被一个 NLB 节点处理时,该节点位于与它试图重定向的不同的 AZ 中,它会尝试在 AZ 中内部解析 IP,如果失败,它将请求重定向到适当 AZ 中的另一个 NLB 节点,它将能够这样做,从而达到目标。