【问题标题】:AWS: Using the application load balancer with ECS - Requests not reaching tasksAWS:将应用程序负载均衡器与 ECS 结合使用 - 请求未到达任务
【发布时间】:2019-09-12 18:49:43
【问题描述】:

当我使用 ALB 的 DNS 主机、侦听器的路径和 Web 服务端点路径发送请求时,我没有在预期的时间范围内得到响应,这是通过成功发送来确定的 使用它们的公共 IP 地址直接向每个任务请求,它们返回成功的响应。

例如:

ALB 的 DNS 条目:http://myapp-alb-11111111.us-west-1.elb.amazonaws.com Web 应用程序“abc”在端口 80 上侦听“/api/health”上的请求。 Web 应用程序使用“abc-svc/*”作为侦听器中的路径。 为 Web 应用分配了一个公共 IP 地址 10.88.77.66。

向“http://10.88.77.66/api/health”发送 GET 请求成功。 向“http://myapp-alb-11111111.us-west-1.elb.amazonaws.com/abc-svc/api/health”发送 GET 请求在几分钟内未返回,这不是预期行为。

我查看了日志,但找不到任何不妥之处。如有任何想法或建议,我将不胜感激...

AWS 配置 我有三个在 ECS 中运行的 docker 映像。每个图像都分配给一个单独的服务。每个服务都有一个任务。从 Internet 到 ALB 的安全组中的 80 端口是开放的。端口 80 从 ALB 向每个任务开放。 ALB 的端口 80 侦听器正在使用基于路径的路由。每个服务都有一个单独的、唯一的路径。每个任务都包含一个 docker linux、spring boot 2、web 服务。每个 Web 服务的路由器都有一个“/api/health”路由,它需要一个不带参数的 GET 请求并返回一个简单的字符串。我们目前没有使用 HTTP 或 SSL。

感谢您的时间和兴趣。

迈克

【问题讨论】:

  • 当它返回时,它返回什么?超时,http 状态码?

标签: amazon-web-services listener load-balancing amazon-ecs


【解决方案1】:

这有不同的原因,但您可以调试一些常见问题

  • 检查 LB 目标组下的每个目标组的健康检查,如果其不健康的 LB 将永远不会路由流量
  • 验证目标端口是否正确
  • 验证目标组与 LB 正确关联并且未显示为未使用。
  • 验证 LB 安全组
  • 检查来自 LB 的响应是 gateway timeout 还是 service unavailbe,如果 gateway timeout 无法访问,如果 service unavailable 可能重新启动
  • 服务事件日志,检查服务是否处于稳定状态,如果不是则意味着一次又一次地重新启动
  • 检查服务的部署日志,如果您看到不健康的目标组消息,则使用状态代码更新目标组健康路径

【讨论】:

    猜你喜欢
    • 2019-12-17
    • 2022-06-23
    • 2021-02-01
    • 2019-12-13
    • 2018-02-26
    • 2019-05-22
    • 2018-10-04
    • 1970-01-01
    • 2018-12-28
    相关资源
    最近更新 更多