![禁用公共 IP 的服务的 Fargate 任务无法从 S3 下载环境文件](https://linux22.com/image/778082/%E7%A6%81%E7%94%A8%E5%85%AC%E5%85%B1%20IP%20%E7%9A%84%E6%9C%8D%E5%8A%A1%E7%9A%84%20Fargate%20%E4%BB%BB%E5%8A%A1%E6%97%A0%E6%B3%95%E4%BB%8E%20S3%20%E4%B8%8B%E8%BD%BD%E7%8E%AF%E5%A2%83%E6%96%87%E4%BB%B6.png)
我们有一个 Fargate 服务,该服务应该通过负载均衡器暴露给互联网,并且由于我们到目前为止在测试中都使用了任务的随机公共 IP,因此我们决定禁用公共 IP,这样服务任务就只能通过负载均衡器访问了。
但是,禁用公共 IP 似乎会使 Fargate 内的容器无法从 S3 下载环境文件。奇怪的是,虽然从 ECR 提取了图像,但尝试获取环境文件时任务失败。
根据这个:https://aws.amazon.com/premiumsupport/knowledge-center/ecs-task-environment-variables/
如果您的 ECS 任务位于公共子网中,请验证以下内容:确保该任务已启用公共 IP 地址。
该服务位于公共子网中,因此我们应该拥有公共 IP。
公共子网本身应该可以访问互联网,这有什么原因吗?而且 ECR 拉取为什么能起作用呢?
谢谢
答案1
您说您禁用了公共 IP。容器/服务器需要公共 IP 才能通过互联网网关到达 S3。
如果你想在没有公共 IP 的情况下访问 S3,请使用S3 VPC 终端节点。