2016-11-08 36 views
2

我试图使用对等连接从不同的VPC访问私有RDS实例。我有两个的VPC:从另一个VPC访问私有RDS数据库

  1. VPC-K8S(172.20.0.0/16)与一个公共子网
  2. VPC-RDS(172.17.0.0/16)与一个公共子网(172.17.0.0/24)和3个私人子网(172.17.{1,2,3}.0/24

VPC-RDS有2个安全组(没有实际的名称):

  1. default,从我的IP接受SSH
  2. db,它接受来自default安全组的端口5432上的TCP。

在私有子网中创建数据库子网组后,我在VPC-RDS中部署数据库实例,并将其配置为不可公开访问。从我的工作站访问它,我在VPC-RDS与default安全组公共子网创建一个小实例,并创建一个SSH隧道:

ssh -L 5432:rds-host-name.us-east-1.rds.amazonaws.com:5432 -i "KeyName.pem" [email protected] 

我可以从我的工作站通过本地主机访问RDS。

我希望能够从我的Kubernetes群集(VPC-K8S)访问我的RDS实例。我建立两者之间的对等连接,并配置路由表适当地(在VPC-K8S:172.17.0.0/16 -> pcx-112233; VPC-RDS:172.20.0.0/16 -> pcx-112233

我无法从我的K8S节点中的一个,或在任何情况下连接到RDS K8S VPC。我怀疑它与db安全组有关,但即使当我打开所有IP(0.0.0.0/0)的端口5432时,它也没有帮助。

任何想法如何做到这一点,或者只有通过公共可访问的RDS实例或VPC-RDS中的Bastion主机和default SG才有可能?

回答

4

愚蠢的疏忽,但如果能帮助任何人,我会放弃这一点。

我的VPC-RDS中的私有子网使用与公有子网不同的路由表。这样做是为了使互联网地址(对于捕获所有规则0.0.0.0/0)指向NAT网关,而不是公有子网中的互联网网关。

我加入了一条专用子网路由表对等连接(172.20.0.0/16 -> pcx-112233),然后配置db安全组从172.20.0.0/16接受端口5432的TCP流量。

+0

Thx为你节省了我的时间! –

相关问题