我在亚马逊有两台机器。 web01和db01。我在db01上安装了PostgreSQL,并将web01的弹性ip添加到了pg_hba.conf
host dbname username 64.210.245.155/32 md5
并重新启动postgresql服务。现在在web01中我尝试连接到db01的弹性ip
$ psql -h 64.210.255.222 -U user -d database
psql: could not connect to server: No route to host
Is the server running on host "64.210.255.222" and accepting
TCP/IP connections on port 5432?
我还将web01的弹性ip添加到db01的安全组中以获取入站流量。我做错了什么,如何让web01连接到db01上的pg?
答案 0 :(得分:3)
首先,您希望连接到内部IP。如果您的弹性IP将解析为AWS中的内部IP而不是直接使用弹性IP,则可以使用DNS名称。
其次,所有公共IP都是通过NAT分配的。如果您的服务试图侦听该IP地址,它将失败。通常,最好的办法是监听所有IP,除非您使用的是VPC并控制内部IP。
最后,您将提供对db安全组内Web安全组的访问权限。即使两个实例属于同一个安全组,除非该组被授予访问权限,否则它们将无法相互访问。