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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在单独的VPC中从EC2实例访问RDS相关的知识,希望对你有一定的参考价值。

我的设置与这里介绍的设置非常相似 - 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
答案

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

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

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

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

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

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

以上是关于在单独的VPC中从EC2实例访问RDS的主要内容,如果未能解决你的问题,请参考以下文章

为啥我无法在对等互连后从另一个 VPC 中的 EC2 实例连接 AWS RDS 实例

AWS:如何将 *** 客户端连接到 RDS(*** 服务器 EC2 和 RDS 在同一个 VPC 中)

使用 terraform 在非默认 VPC 中创建 AWS RDS 实例

Amazon RDS 和 VPC 终端节点连接

使用 MySQL Workbench 通过 EC2 实例连接到 Amazon RDS 实例

在VPC中访问RDS posgtgreSQL?