2016-11-08 54 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爲你節省了我的時間! –