aws-vpc 容器无法访问互联网

Dan*_*nik 9 amazon-web-services amazon-ecs amazon-vpc

我在 AWS ECS 集群中创建了 ECS 服务。我的容器使用 awsvpc 网络模式。该服务没有负载均衡器。

但它不能触及任何公共互联网资源。

当我转到 ECS 实例并通过 ssh 进入 docker 容器时,我无法获取任何公共资源。

root@ip-10-3-1-23:/app# traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  *^C
Run Code Online (Sandbox Code Playgroud)
root@ip-10-3-1-23:/app# wget google.com
--2019-08-31 22:34:38--  http://google.com/
Resolving google.com (google.com)... 172.217.9.206, 2607:f8b0:4004:807::200e
Connecting to google.com (google.com)|172.217.9.206|:80... ^C
root@ip-10-3-1-23:/app# 
Run Code Online (Sandbox Code Playgroud)

EC2 实例安全组:

入站:

Type            Protocol        Port Range      Source                      Description
All TCP         TCP             0 - 65535       10.3.0.0/16     
SSH             TCP             22              sg-5c260123 (mgmt-bastion)  
Custom TCP Rule TCP             51678           sg-0784b8f53ab37c234 (mgmt-jenkins-sg)
Run Code Online (Sandbox Code Playgroud)

出站:

Type            Protocol        Port Range      Source                      Description
All traffic     All             All             0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)

服务安全组:

入站:

Type            Protocol        Port Range      Source                      Description
All TCP         TCP             0 - 65535       10.3.0.0/16
Run Code Online (Sandbox Code Playgroud)

出站:

Type            Protocol        Port Range      Source                      Description
All traffic     All             All             0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)

你能帮我调试一下吗,如何允许上网?

Pac*_*ist 10

AWS 文档

awsvpc 网络模式不为使用 EC2 启动类型的任务提供具有公共 IP 地址的任务 ENI。要访问 Internet,必须在配置为使用 NAT 网关的私有子网中启动使用 EC2 启动类型的任务。有关更多信息,请参阅 Amazon VPC 用户指南中的 NAT 网关。入站网络访问必须使用私有 IP 地址或 DNS 主机名从 VPC 内进行,或者从 VPC 内通过负载均衡器进行路由。在公共子网内启动的任务没有出站网络访问权限。

  • 是的,我 20 分钟前发现了它,并将此任务移至私有子网。:) 完成后我会更新结果。谢谢,这是解决方案!:) (2认同)