从单独 VPC 中的 EC2 实例访问 RDS

Accessing RDS from EC2 instance in separate VPC

我的设置与此处介绍的非常相似 -

我有 2 个 VPC VPC AVPC B

我在 VPC A 中有一个 RDS 实例和一个 EC2 实例 (EC2 A) - 我可以通过 运行 之类的方式从 EC2 A 访问 RDS 实例 mysql -u sa -pPASSWORD -h db-prod.sdfsdfewfwe.us-east-2.rds.amazonaws.com

我在 VPC B 中有另一个 EC2 实例 (EC2 B),我希望能够 运行 相同的 mysql 命令来访问 RDS 实例.

我在 VPC AVPC B 之间建立了对等连接,因此我的路由 table 如下所示:

RDS VPC
Destination      Target
172.31.0.0/16    local
10.0.0.0/16      pcx-xyz123

EC2 VPC
Destination      Target
10.0.0.0/16      local
172.31.0.0/16    pcx-xyz123

我现在可以从 VPC A -> VPC B ssh,反之亦然,但我仍然无法访问 RDS 实例。

我能做到的唯一方法是像这样设置 SSH 隧道:

ssh -i "key.pem" ubuntu@172.31.0.0 -L 3307:db-prod.sdfsdfewfwe.us-east-2.rds.amazonaws.com:3306 -N

然后我可以通过 运行ning 从 VPC B 访问 RDS:

mysql -u sa -pPASSWORD -h 127.0.0.1 -P 3307

我想避免这种情况,并正确设置我的网络以解决来自 VPC B

的 RDS 访问

更新:

@detzu 感谢您的回复。

RDS 有 2 个子网,db-subnetaccessible-subnet

accessible-subnet:

11.234.52.0/24     local
11.234.53.0/24     local
11.241.52.0/24     pcx-034d57cb727bbf9ec
0.0.0.0/0          igw-003f4bff3126fc2e9

db-subnet:

11.234.52.0/24     local
11.234.53.0/24     local
11.241.52.0/24     pcx-034d57cb727bbf9ec
0.0.0.0/0          igw-003f4bff3126fc2e9

VPC B 有一个子网 inaccessible-subnet:

11.234.52.0/24     pcx-034d57cb727bbf9ec
11.241.52.0/24     local
0.0.0.0/0          igw-01fd2dbb6bee81525

RDS 安全组:

CIDR/IP - Inbound   33.140.253.74/32
CIDR/IP - Inbound   11.234.52.0/24
CIDR/IP - Inbound   11.241.52.0/24
CIDR/IP - Outbound  0.0.0.0/0

更新 2

RDS 安全组规则

入站:

MYSQL/Aurora   TCP   3306   33.140.253.74/32
MYSQL/Aurora   TCP   3306   11.234.52.0/24
MYSQL/Aurora   TCP   3306   11.241.52.0/24

出站:

All traffic    All   All    0.0.0.0/0

RDS 实例是否与 EC2 A 在同一子网中?如果不是,请提供 RDS 子网(通常是私有子网)的路由 table。

一个RDS有一个子网组,一个子网组至少有2个子网,请检查所有涉及的子网的路由tables。

请检查 RDS 的 VPC 安全组,如果可能,请在此处复制(散列 public IP 或其他私人信息)。 RDS有2个安全组,勾选你RDS中配置为VPC安全组的那个。

更新 2:谢谢,路线 table 看起来不错。我没有看到任何问题!

请从此处添加 VPC 安全组规则(红色矩形):

点击link复制出入站规则,谢谢!