我在一个 VPC 中创建了一个基本的测试 PostgreSQL RDS 实例,该实例具有一个公共子网,并且应该可以通过公共 Internet 进行连接。它使用对端口 5432 开放的默认安全组。当我尝试连接时,它失败了。我一定错过了一些非常简单的东西——但我对此很迷茫。
这是数据库设置,注意它被标记为Publicly Accessible
:
这是安全组设置,请注意它是完全开放的(在上面的 RDS 设置中由端点旁边的绿色“授权”提示确认):
这是我试图用来连接的命令:
psql --host=myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com \
--port=5432
--username=masteruser
--password
--dbname=testdb
Run Code Online (Sandbox Code Playgroud)
这是我尝试从 Yosemite MacBook Pro 连接时得到的结果(注意,它解析为 54.* ip 地址):
psql: could not connect to server: Operation timed out
Is the server running on host "myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com" (54.xxx.xxx.xxx) and accepting
TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)
我没有启用任何类型的防火墙,并且能够连接到其他提供商(例如 Heroku)上的公共 PostgreSQL 实例。
任何故障排除提示将不胜感激,因为我在这里几乎不知所措。
更新
根据评论,以下是默认 VPC 的入站 ACL 规则: