AWS:如何在EC2上设置Postgres安全性

时间:2013-11-08 17:11:35

标签: postgresql amazon-web-services amazon-ec2

我在亚马逊有两台机器。 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?

1 个答案:

答案 0 :(得分:3)

首先,您希望连接到内部IP。如果您的弹性IP将解析为AWS中的内部IP而不是直接使用弹性IP,则可以使用DNS名称。

其次,所有公共IP都是通过NAT分配的。如果您的服务试图侦听该IP地址,它将失败。通常,最好的办法是监听所有IP,除非您使用的是VPC并控制内部IP。

最后,您将提供对db安全组内Web安全组的访问权限。即使两个实例属于同一个安全组,除非该组被授予访问权限,否则它们将无法相互访问。