从单独 VPC 中的 EC2 实例访问 RDS
Accessing RDS from EC2 instance in separate VPC
我的设置与此处介绍的非常相似 -
我有 2 个 VPC VPC A
和 VPC 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 A
和 VPC 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-subnet
和 accessible-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复制出入站规则,谢谢!
我的设置与此处介绍的非常相似 -
我有 2 个 VPC VPC A
和 VPC 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 A
和 VPC 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
更新:
@detzu 感谢您的回复。
RDS 有 2 个子网,db-subnet
和 accessible-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复制出入站规则,谢谢!