在私有子网 AWS Fargate 上运行的 Docker 实例

gur*_*sai 3 amazon-web-services amazon-ecs aws-fargate

我的 VPC 由 2 个公共子网和 2 个私有子网组成,私有子网具有用于访问互联网的 NAt 网关,并且我的 Docker 实例在接收外部 URL 的私有子网上运行(http://commondatastorage.googleapis.com/gtv-videos-bucket/sample /BigBuckBunny.mp4 ) 作为输入并下载内容/文件并将文件存储在 s3 中

我在公共子网中设置了应用程序负载均衡器并连接到 Fargate 实例

当我尝试运行并且日志显示 NAME 无法解析 commondatastorage.googleapis.com 时

我知道 docker 没有互联网连接

我在这里做错了什么以及需要纠正什么?

PS:在创建 Fargate 服务时,我禁用了自动分配公共 IP,因为实例应该位于私有子网上

Luc*_*chi 5

您可能已经查看了有关“ AWS Fargate 中的任务网络”的 AWS 页面

\n\n

能够访问互联网的关键是 NAT,因此,如果它不起作用,您应该从检查错误开始。您可以从我链接的页面中的以下描述中看出它的重要性

\n\n
\n

在此配置中,任务仍然可以通过 NAT 网关与 Internet 上的其他服务器进行通信。他们似乎拥有通信接收者的 NAT 网关的 IP 地址。如果您在私有子网中运行 Fargate 任务,则必须添加此 NAT 网关。否则,Fargate 无法\xe2\x80\x99 向 Amazon ECR 发出网络请求以下载容器映像,或与 Amazon CloudWatch 通信以存储容器指标。

\n
\n\n

如果 NAT 由于某种原因不起作用,另一种方法可能是启用Auto Assign Public IP,但定义一个安全组来阻止任何连接到私有 VPC 中的任务的尝试。这样任务就能够到达解析所需的 DNS 服务器commondatastorage.googleapis.com

\n