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

时间:2019-03-03 17:57:50

标签: amazon-web-services networking amazon-ec2 amazon-rds amazon-vpc

我的设置与此处介绍的设置非常相似-Why can't I connect AWS RDS instance from EC2 instance in another VPC after peering

我有2个VPC的VPC AVPC B

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

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

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

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

然后我可以通过运行以下命令从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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

单击链接并复制入站和出站规则,谢谢!