仅从 ELB 访问 Amazon EC2 实例
Access Amazon EC2 instance only from ELB
我在 EC2 实例上部署了一个简单的网站,并创建了一个弹性负载均衡器,将流量路由到这个 EC2 实例。
我还在我的 DNS 注册商上创建了一个 CNAME 记录,将我的域 (www.example.com) 指向负载平衡器 DNS 名称 (load-balancer-1234567890.us-east-1.elb.amazonaws.com ).
我可以通过 3 种不同的方式在浏览器中成功访问我的站点:
- EC2实例public IP(例如:54.89.99.99)
- ELB public DNS 名称(例如:load-balancer-1234567890.us-east-1.elb.amazonaws.com)
- 我的域 DNS(例如:www.example.com)
但是,出于安全原因,我希望我的 EC2 实例只能从负载均衡器访问端口 80。
所以,我更改了 EC2 实例的安全组:
- 删除了允许端口 80 上来自所有来源 (0.0.0.0/0) 的流量的规则
- 添加了一条规则以允许来自我的 VPC (172.31.0.0/16) 的端口 80 上的流量
- 添加了一条规则以允许来自 ELB 安全组 (sg-xxxxxxxx) 的端口 80 上的流量
在那之后,我仍然可以从 ELB DNS 名称访问我的网站,但现在我无法再从我的域访问 (www.example.com)。我收到错误:ERR_CONNECTION_TIMED_OUT.
怎么了?
创建负载均衡器时,select 负载均衡器所在的可用区。这意味着您的负载均衡器位于您的 VPC 内而不是外部(这是正常的和预期的)。
由于您的安全组允许来自您的 VPC 内的流量(这与 ELB 安全组重复,因为两者都允许流量),那么您的安全组设置有问题或您的负载均衡器配置错误。还要仔细检查负载均衡器安全组设置。
这似乎是您的计算机或 DNS 服务器中的 DNS 缓存问题。
- 要清除计算机中的缓存,请使用
ipconfig /flushdns
刷新 DNS
- 如果问题仍然存在,请尝试 traceroute www.example.com(或 Windows 中的 tracert www.example.com)以查看它是否到达 ELB。如果源 IP 与当前 DNS 配置不同,
- 可能是配置错误(仔细检查)
- 如果最新的 DNS 修改未传播(如果它指向以前的配置),则等待一段时间,直到 DNS 服务器根据 TTL 值清除缓存。
我在 EC2 实例上部署了一个简单的网站,并创建了一个弹性负载均衡器,将流量路由到这个 EC2 实例。
我还在我的 DNS 注册商上创建了一个 CNAME 记录,将我的域 (www.example.com) 指向负载平衡器 DNS 名称 (load-balancer-1234567890.us-east-1.elb.amazonaws.com ).
我可以通过 3 种不同的方式在浏览器中成功访问我的站点:
- EC2实例public IP(例如:54.89.99.99)
- ELB public DNS 名称(例如:load-balancer-1234567890.us-east-1.elb.amazonaws.com)
- 我的域 DNS(例如:www.example.com)
但是,出于安全原因,我希望我的 EC2 实例只能从负载均衡器访问端口 80。
所以,我更改了 EC2 实例的安全组:
- 删除了允许端口 80 上来自所有来源 (0.0.0.0/0) 的流量的规则
- 添加了一条规则以允许来自我的 VPC (172.31.0.0/16) 的端口 80 上的流量
- 添加了一条规则以允许来自 ELB 安全组 (sg-xxxxxxxx) 的端口 80 上的流量
在那之后,我仍然可以从 ELB DNS 名称访问我的网站,但现在我无法再从我的域访问 (www.example.com)。我收到错误:ERR_CONNECTION_TIMED_OUT.
怎么了?
创建负载均衡器时,select 负载均衡器所在的可用区。这意味着您的负载均衡器位于您的 VPC 内而不是外部(这是正常的和预期的)。
由于您的安全组允许来自您的 VPC 内的流量(这与 ELB 安全组重复,因为两者都允许流量),那么您的安全组设置有问题或您的负载均衡器配置错误。还要仔细检查负载均衡器安全组设置。
这似乎是您的计算机或 DNS 服务器中的 DNS 缓存问题。
- 要清除计算机中的缓存,请使用
ipconfig /flushdns
刷新 DNS
- 如果问题仍然存在,请尝试 traceroute www.example.com(或 Windows 中的 tracert www.example.com)以查看它是否到达 ELB。如果源 IP 与当前 DNS 配置不同,
- 可能是配置错误(仔细检查)
- 如果最新的 DNS 修改未传播(如果它指向以前的配置),则等待一段时间,直到 DNS 服务器根据 TTL 值清除缓存。