AWS Fargate 集群无法使用 NAT 和 Internet 网关访问 Internet

Has*_*ral 5 amazon-web-services amazon-ecs amazon-ecr aws-fargate

我正在尝试将容器部署到 AWS 上的专用网络 Fargate 集群。我的单个 VPC 上确实有一个 Internet 网关:

互联网网关

我在集群/服务所在的同一 VPC 中确实有一个针对该特定子网的 NAT 网关:

NAT网关

该子网的路由似乎也可以:

子网路由

并且该服务的安全组不会阻止任何传入连接:

安全组

安全组入站

但我的容器甚至没有以臭名昭著的异常启动:CannotPullContainerError: 来自守护进程的错误响应:Get https://registry-name/: net/http: request Canceled while waiting for connection (Client.Timeout Exceeded while waiting headers)为什么?谢谢。

Mar*_*k B 3

您没有将子网配置为使用 NAT 网关。您的路由表当前将流量直接发送到 IGW,这使得该子网成为公共子网,而不是私有子网,这意味着该子网中的任何内容都需要为其分配公共 IP。与其他资源位于同一子网中的 NAT 网关不会神奇地为这些资源提供 Internet 访问权限,您必须适当配置路由表。

您的网络需要这样配置:

公共子网:

  • 附IGW
  • NAT网关
  • 需要从 Internet 访问的任何其他公共资源,例如公共负载均衡器。

私有子网:

  • 到公有子网中 NAT 网关的路由。没有通往 IGW 的路线。