检查 ec2 实例和 rds 数据库之间的连接时出错

Error when checking connection between ec2 insatnce and rds database

我想测试我的 ec2 实例是否可以连接到我的数据库。

我通过 ssh 进入我的实例 运行 命令:

echo '\dS' |psql -h rds-endpoint-xxx.amazonaws.com 5432
psql: error: could not connect to server: Operation timed out
    Is the server running on host "rds-endpoint-xxx.amazonaws.com" (192.168.12.233) and accepting
    TCP/IP connections on port 5432?

这是什么意思?我应该怎么做才能解决?

除非您的两个 VPC 是 peered,否则由于您的安全组 (SG),您将无法从实例访问您的 RDS。如果没有对等互连,从实例到 rds 的连接将通过互联网,并且您的 SG 不允许互联网连接。

要解决这个问题,您要么必须对等您的 VPC,您现在不能这样做,因为它们具有相同的 CIDR。对于对等互连,您需要 VPC 的 非重叠 CIDR。

另一种方法是 允许互联网连接 到您的 RDS,这意味着您需要允许传入流量 (0.0.0.0/0),除非您有实例的 EIP。此外,RDS 必须设置为允许 public 个连接。