我有一个带有两个私有子网的 VPC(需要两个子网才能设置 RDS 实例)。我为这个 VPC 有一个安全组,我们称之为vpc-sg
。vpc-sg
允许从我的家用机器通过端口 22 进行 TCP 访问,并允许所有出站流量。就是这样。
我在 VPC 内部启动了一个面向公众的 EC2 服务器,并为其附加了一个公共 Elastic IP。我使用 EIP 通过 SSH 连接到此 EC2 服务器。我将安全组设置为vpc-sg
。我在 EC2 实例上安装了 PostgreSQL 9.2。
我在同一个 VPC 中有一个 RDS 实例。它vpc-sg
也用于安全组。创建实例时,我被迫选择 PostgreSQL 版本 9.3。我尝试从我的 EC2 实例访问 RDS PostgreSQL 数据库:
[ec2-user@ip-10-0-0-20 ~]$ psql the_db_name -U the_db_username -h my-db-instance.random-string.us-east-1.rds.amazonaws.com -p 5432 -W
Password for user the_db_username:
psql: could not connect to server: Connection timed out
Is the server running on host "my-db-instance.random-string.us-east-1.rds.amazonaws.com" (10.0.0.147) and accepting
TCP/IP connections on port 5432?
我应该做什么?
编辑- 我是得到无入站权限RDB 上出现错误,但不知道如何修复。
答案1
只需创建一个新的安全组,以 5432 作为入站 TCP 连接,并用新创建的安全组替换 RDS 实例上的当前安全组。