我在 AWS 上设置了一个 Redis 服务器。Redis 服务器有自己的安全组:sg-redis
. 我在另一个安全组 ( sg-webserver
) 下也有一个网络服务器,它应该能够连接到 redis 服务器。对于我打开的这个安全组:
- 用于 sg-webserver 的 TCP 6379
- 用于 sg-webserver 的 TCP 22
我的 redis 服务器有一个与 EC2 实例关联的弹性 IP。
从网络服务器,如果我使用弹性 IP 远程登录我的 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),所以我想这就是它工作的原因。
现在我的问题是为什么这不适用于 Elastic IP?我必须在内部使用公共 DNS 吗?
干杯,马克西姆