我在AWS上设置了Redis服务器。 Redis服务器有自己的安全组:sg-redis
。
我还有另一个安全组(sg-webserver
)下的网络服务器,它可以连接到redis服务器。
对于这个安全组,我打开了:
我的redis服务器有一个与EC2实例关联的弹性IP。
从网络服务器,如果我使用弹性IP telnet我的redis服务器,我会收到连接超时:
[root@web-server:~]# telnet 54.11.22.333 6379
Trying 54.11.22.333...
telnet: connect to address 54.11.22.333: Connection timed out
现在我使用Redis服务器的公共DNS做同样的事情:
[root@web-server:~]# telnet ec2-11-22-33-444.compute-1.amazonaws.com 6379
Trying 10.22.33.444...
Connected to ec2-11-22-33-444.compute-1.amazonaws.com.
Escape character is '^]'.
我可以看到网络服务器正在将公共DNS转换为AWS内部IP(而不是弹性IP),所以我想这就是它工作的原因。
现在我的问题是为什么这不适用于弹性IP? 我是否必须在内部使用公共DNS?
干杯,马克西姆
答案 0 :(得分:2)
是的,您应该在内部使用公共DNS。仅凭这个原因,它将根据您的使用位置解析为内部或外部IP。