Edw*_*ges 45 postgresql networking rds amazon-rds
我在一个 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 规则:

Edw*_*ges 53
问题是安全组中的入站规则指定了一个安全组作为源。将其更改为包含我的 IP 地址的 CIDR 解决了该问题。
在AWS中打开数据库安全组;并选择“编辑入站规则”;“添加规则”。下拉菜单中有一个“我的IP”选项;选择该选项以使用 CIDR 表示法自动填充计算机的公共 IP 地址
Mig*_*ota 18
遇到了类似的问题,这就是我解决它的方法:
点击RDS实例的安全组,查看入站规则。您可能会看到如下内容:
必须设置 IP 范围以包含您的 IP 或只需在源下拉列表中选择“任何地方”,以使其可从本地主机或任何地方访问:
| 归档时间: |
|
| 查看次数: |
41568 次 |
| 最近记录: |