从 EC2 实例连接到 RDS - 均在 VPC 内部

从 EC2 实例连接到 RDS - 均在 VPC 内部

我有一个带有两个私有子网的 VPC(需要两个子网才能设置 RDS 实例)。我为这个 VPC 有一个安全组,我们称之为vpc-sgvpc-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 实例上的当前安全组。

相关内容