gpt4 book ai didi

amazon-web-services - NLB 目标群体健康检查失控

转载 作者:行者123 更新时间:2023-12-03 04:51:42 25 4
gpt4 key购买 nike

我有一个网络负载均衡器和一个关联的目标组,配置为对 EC2 实例进行运行状况检查。问题是我看到大量的健康检查请求;每秒多个。

default interval检查之间的间隔应该是 30 秒,但它们的频率比应有的频率高出大约 100 倍。

我的堆栈是在 CloudFormation 中构建的,我尝试覆盖 HealthCheckIntervalSeconds,但没有效果。有趣的是,当我尝试在控制台中手动更改间隔时,我发现这些值呈灰色:

Edit Healthcheck Settings

这是模板的相关部分,我尝试更改时间间隔的尝试已被注释掉:

NLB:
Type: "AWS::ElasticLoadBalancingV2::LoadBalancer"
Properties:
Type: network
Name: api-load-balancer
Scheme: internal
Subnets:
- Fn::ImportValue: PrivateSubnetA
- Fn::ImportValue: PrivateSubnetB
- Fn::ImportValue: PrivateSubnetC

NLBListener:
Type : AWS::ElasticLoadBalancingV2::Listener
Properties:
DefaultActions:
- Type: forward
TargetGroupArn: !Ref NLBTargetGroup
LoadBalancerArn: !Ref NLB
Port: 80
Protocol: TCP

NLBTargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
# HealthCheckIntervalSeconds: 30
HealthCheckPath: /healthcheck
HealthCheckProtocol: HTTP
# HealthyThresholdCount: 2
# UnhealthyThresholdCount: 5
# Matcher:
# HttpCode: 200-399
Name: api-nlb-http-target-group
Port: 80
Protocol: TCP
VpcId: !ImportValue PublicVPC

我的 EC2 实例位于私有(private)子网中,无法从外部世界访问。 NLB 是内部的,因此如果不通过 API 网关就无法访问它们。 API Gateway 没有配置 /healthcheck 端点,因此可以排除来自 AWS 网络外部的任何事件,例如人们手动 ping 端点。

这是从 CloudWatch 获取的应用程序日志示例,而应用程序应该处于空闲状态:

07:45:33 {"label":"Received request URL","value":"/healthcheck","type":"trace"}
07:45:33 {"label":"Received request URL","value":"/healthcheck","type":"trace"}
07:45:33 {"label":"Received request URL","value":"/healthcheck","type":"trace"}
07:45:33 {"label":"Received request URL","value":"/healthcheck","type":"trace"}
07:45:34 {"label":"Received request URL","value":"/healthcheck","type":"trace"}
07:45:34 {"label":"Received request URL","value":"/healthcheck","type":"trace"}
07:45:34 {"label":"Received request URL","value":"/healthcheck","type":"trace"}
07:45:35 {"label":"Received request URL","value":"/healthcheck","type":"trace"}
07:45:35 {"label":"Received request URL","value":"/healthcheck","type":"trace"}
07:45:35 {"label":"Received request URL","value":"/healthcheck","type":"trace"}

我通常每秒收到 3 到 6 个请求,所以我想知道这是否就是网络负载均衡器的工作方式,而 AWS 仍然没有记录这一点(或者我还没有找到),或者我如何解决这个问题。

最佳答案

更新:此问题已在相关aws forum post上得到解答这证实了这是网络负载均衡器的正常行为,并引用了它们的分布式特性作为原因。无法配置自定义间隔。目前,文档仍然过时,并另有说明。


这要么是 NLB 目标组中的错误,要么是不正确的正常行为 documentation 。我得出这个结论是因为:

  • 我已确认健康检查来自 NLB
  • 配置选项在控制台上显示为灰色
    • 推断 AWS 了解或施加了此限制
  • others 观察到了相同的结果
  • 该文档专门针对网络负载均衡器
  • AWS 文档通常会让您白费力气

在这种情况下,我认为这可能是错误记录的正常行为,但除非来自 AWS 的人员可以验证,否则无法验证这一点,而且几乎不可能获得 issue like this 的答案。在 AWS 论坛上。

能够配置设置或至少更新文档会很有用。

关于amazon-web-services - NLB 目标群体健康检查失控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48135471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com