如果没有 NAT 网关,私有子网中的 AWS ECS 自动扩展功能就无法工作,为什么?

如果没有 NAT 网关,私有子网中的 AWS ECS 自动扩展功能就无法工作,为什么?

我在 cloudformation 中有一个堆栈,其中包含具有自动扩展 EC2 实例的 ECS 集群,在私有子网中运行。ECS 由 ALB 覆盖(在公共子网中)。容器实例从 AWS ECR 获取映像。我创建了以下 VPC 端点:

  • s3 vpc gateway endpoint
  • api.ecr endpoint
  • dkr.ecr endpoint
  • ecs endpoint
  • ecs-telemetry endpoint
  • ecs-agent endpoint

有包含到 的路由的私有子网路由表s3 vpc gateway endpoint,以及包含到互联网网关(0.0.0.0/0)的路由的公有子网路由表,见方案:

在此处输入图片描述

在没有 vpc 端点和 NAT 网关(位于公共子网中)的情况下一切都可以正常工作,但没有它们就无法正常工作

我收到的错误:.. was unable to place a task because no container instance met all of its requirements. No container instances were found in your cluster

但 EC2 实例确实已创建,并具有正确的 AMI(我通过 Reach 分析器检查它们可以到达所有 vpc 端点)。VPC ecs+ecr 端点由这些官方来源配置(ECS 文档)。

您是否经历过类似的事情或知道如何调试这个问题?

相关内容