我使用AWS文档中的scheme2设置了VPC: http : //docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html
我已将Elastic IP分配给在公用子网中运行的EC2实例。 SSH工作正常,我可以访问运行的网站。 我不能,但不能做出传出的HTTP或HTTPS请求(我注意到这一点,当试图运行yum update )。
我相信我所有的安全设置都是正确的。 我无法通过Internet网关发出HTTP / HTTPS请求吗? 我特别要求在创build时不要将公共IP分配给此实例,因为我知道我将分配一个易受IP访问的网站DNS。 我有专用子网中的实例的NAT设置,但我目前只有RDS实例在那里运行,所以我没有从那里testing传出的请求。
该EC2实例的安全组具有以下出站规则: 
该子网的路由表具有以下设置: 
networkingACL具有以下设置: 
默认DHCP选项集具有以下设置:
domain-name = ec2.internal domain-name-servers = AmazonProvidedDNS
默认的/etc/resolv.conf设置是:
search ec2.internal nameserver 10.0.0.2
VPC和子网的CIDR块如下:
VPC: 10.0.0.0/16 Public Subnet: 10.0.0.0/24 Private DB Subnet in US East 1A: 10.0.1.0/24 Private DB Subnet in US East 1C: 10.0.2.0/24
仍然令人愉快
为什么在这种情况下提供的AWS DNS服务器不工作?
问题
问题是DNS名称不是通过本地DNS服务器parsing,而是最初创buildVPC时提供的 。 我发现我可以将传出的HTTP / HTTPS连接到IP地址,而不需要联系DNS服务器来解决。
解
我必须在Amazon VPC AWS控制台中创build一个自定义的DHCP选项集,并将Google的公共DNS IP设置为domain-name-servers = 8.8.8.8, 8.8.4.4 。
然后我不得不更新/etc/resolv.conf设置相同的东西: nameserver 8.8.8.8 nameserver 8.8.4.4