ECS Fargate 上的 Flask 容器完全没有响应

问题描述 投票:0回答:1

我有两个任务在 ECS Fargate 中运行,代表在端口 5000 上运行的基本 Flask 应用程序。由于运行状况检查失败,我的应用程序负载均衡器正在取消注册这些任务。

尽管存在以下事实,ALB 仍取消注册任务:

  • 我的 ECS 任务分配了公共 IP 地址。
  • 我的 Flask 应用程序正在运行。我
    aws ecs execute-command
    '进入其中之一进行确认。
  • 端口
    5000
    在我的 ECS 任务定义的端口映射中明确调用。
  • 端口
    5000
    在我的 ECS 服务的负载均衡器容器端口配置中显式调用。
  • 我的应用程序负载均衡器与一个安全组关联,该安全组允许在端口
    5000
    上进行 TCP 入口,并通过
    0.0.0.0/0
    出口到
    ip_protocol="-1"
  • 我的应用程序负载均衡器的目标组允许端口
    5000
    上的 HTTP 流量,带有
    target_type=ip
  • 我的应用程序负载均衡器的侦听器配置为将端口
    80
    上的传入流量路由到上面引用的目标组。
  • 我的 ECS 任务部署到公共子网,并通过路由表关联将它们链接到 CIDR 块
    0.0.0.0/0

当任务启动并运行时:

  • telnet
    curl
    超时。
  • nmap -Pn
    报告所有 1,000 个扫描端口均处于忽略状态。

为什么我的 ECS 任务对任何形式的交互完全没有响应?如何调试问题?

amazon-web-services flask amazon-ecs aws-application-load-balancer
1个回答
0
投票

您需要有两个安全组,一个用于 ALB,一个用于 ECS 任务,因为它们都需要打开不同的端口。

ECS 任务应具有入站规则,允许端口

5000
上来自 ALB 安全组 ID 的流量作为源。

© www.soinside.com 2019 - 2024. All rights reserved.