检查 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?
这是什么意思?我应该怎么做才能解决?
- 我的 ec2 实例 IP 是 192.168.0.138 并且在我的 rds 数据库的安全组中我允许从 192.168.0.0 入站访问
除非您的两个 VPC 是 peered,否则由于您的安全组 (SG),您将无法从实例访问您的 RDS。如果没有对等互连,从实例到 rds 的连接将通过互联网,并且您的 SG 不允许互联网连接。
要解决这个问题,您要么必须对等您的 VPC,您现在不能这样做,因为它们具有相同的 CIDR。对于对等互连,您需要 VPC 的 非重叠 CIDR。
另一种方法是 允许互联网连接 到您的 RDS,这意味着您需要允许传入流量 (0.0.0.0/0),除非您有实例的 EIP。此外,RDS 必须设置为允许 public 个连接。
我想测试我的 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?
这是什么意思?我应该怎么做才能解决?
- 我的 ec2 实例 IP 是 192.168.0.138 并且在我的 rds 数据库的安全组中我允许从 192.168.0.0 入站访问
除非您的两个 VPC 是 peered,否则由于您的安全组 (SG),您将无法从实例访问您的 RDS。如果没有对等互连,从实例到 rds 的连接将通过互联网,并且您的 SG 不允许互联网连接。
要解决这个问题,您要么必须对等您的 VPC,您现在不能这样做,因为它们具有相同的 CIDR。对于对等互连,您需要 VPC 的 非重叠 CIDR。
另一种方法是 允许互联网连接 到您的 RDS,这意味着您需要允许传入流量 (0.0.0.0/0),除非您有实例的 EIP。此外,RDS 必须设置为允许 public 个连接。