AWS Fargate 实例无法向另一个实例发出请求

Con*_*d S 1 amazon-web-services amazon-ecs amazon-vpc aws-security-group aws-fargate

我有两个 ECS 集群,都运行 Fargate 1.3 任务(我们称它们为任务 A 和任务 B)。这两个任务都具有 awsvpc 网络类型,并且都具有自动分配的公共 IP。此外,两个集群/任务都位于同一 VPC 中。任务 A 与安全组 A 关联,任务 B 与安全组 B 关联(以及也与安全组连接的负载均衡器)。我正在尝试从任务 A 向任务 B 发出 http 请求。我 100% 确定我已正确设置安全组,即:

安全组A:

  • 出口到任何地方

安全组B:

  • 安全组 A 的入口(所有端口范围、所有协议、类型“所有流量”)

当我尝试从 A 向 B 发出请求时,出现超时错误。我知道这是一个安全组错误,因为如果我创建一个 Source = 无处不在的入口规则,它就会起作用。此外,如果我进去检查fargate任务A的公共IP地址,并将该IP地址添加到安全组B的入口,它也可以工作。

这里发生了什么?

Mar*_*k B 5

由于您使用的是公共(互联网)IP,因此流量会流出 VPC 并返回,此时来自安全组 A 的流量就会丢失。您需要使用私有 IP 将所有网络流量保留在 VPC 内。