0

我有一个运行服务的小型 Fargate 集群,发现如果我禁用公共 IP,容器将不会构建,因为它没有拉取映像的路由。

ECS Fargate 的 ELB 是子网的一部分,该子网具有:

  1. 配置并连接互联网网关
  2. 允许无限制传出的路由表
  3. ECS服务上的安全策略允许不受限制的传出
  4. 启用 DNS

我的理解是互联网网关是一个 NAT,上述操作应该允许传出互联网访问,但我不能这样做。还缺少什么?

4

1 回答 1

0

就像您的 AWS VPC 中的所有其他资源一样,如果您不附加公共 IP 地址,则需要将其放置在具有到NAT 网关的路由的子网中以访问 VPC 外部的内容,或者它需要VPC 终端节点访问这些资源。

我已经为持久的公共和子网 IP 设置了 EBL。据我所知,我的子网的传出互联网不受限制(连接的互联网网关和路由将所有传出流量打开到 0.0.0.0/0。我不确定服务设置是否会将 EC2 配置为首先使用它,然后尝试设置-up 容器。如果不是,那么它可能不适用。

ELB 仅用于入站流量,它不为您的 EC2 或 Fargate 实例提供任何类型的出站网络功能。当 ECS 尝试拉取容器镜像时,ELB 不会以任何方式参与。

拥有一个不稳定的公共 IP 地址有点烦人,因为我的理解是安全策略将适用于 ELB/Elastic 提供的 IP 和这个。

您指的是什么“安全策略”?我不知道 AWS 上直接应用于 IP 地址的安全策略。假设您说“安全策略”时是指安全组,那么您的理解是不正确的。EC2 或 Fargate 实例和 ELB 都应该分配有不同的安全组。如果您希望 ELB 在 Internet 上公开,ELB 将有一个允许所有入站流量的安全组。EC2 或 Fargate 实例应具有仅允许来自 ELB 的入站流量的安全组(通过在入站规则中指定 ELB 的安全组 ID)。


我想指出您在问题中说“EC2”并且从未提及 Fargate,但是您用 Fargate 两次标记了您的问题并且没有用 EC2 标记它。EC2 和 Fargate 是 AWS 上的独立计算服务。您将使用其中一种。鉴于您遇到的问题,在这种情况下这并不重要,但有助于明确您的问题。

于 2022-02-13T16:04:14.060 回答