2017-10-04 143 views
0

我按照鏈接中提供的步驟手動創建了基礎結構:connecting-to-a-database-within-an-amazon-vpc使用terraform創建的基礎結構無法連接到EC2的RDS

我可以完美地連接到公共子網中ec2私有子網中的RDS。這正是我想要的。

但是,當我嘗試使用terraform創建相同的確切副本時,它只是不連接。

命令:

nslookup <my-hostname> 

給我的私有IP。

的命令:

telnet x.x.x.x 5432 

結果爲 「遠程登錄:無法連接到遠程主機:連接超時」

的命令:

netstat -an | grep x.x.x.x 

顯示 「SYN_SENT」。

我試圖通過添加0.0.0.0/0來允許RDS安全組中的所有IP。這沒有用。

我試圖手動創建RDS實例,但將其添加到terraform創建的VPC並嘗試使用terraform創建的ec2實例進行連接。這沒有用。

我錯過了什麼?任何幫助深表感謝。

回答

0

故障排除步驟:

  1. 檢查安全組對你的公開EC2實例出口(出站規則),

確保它允許端口5432訪問RDS(這是在私人出站規則子網)

  1. 檢查您的rds實例上安全組的入口(入站規則)。也許確定它允許來自公共EC2實例CIDR ips或安全組的端口5432

如果沒有,請更新您的terraform代碼根據。

+0

我已將出站規則保留爲ec2的「所有通信量」。我通過在rds安全組中設置0.0.0.0/0來允許所有端口5432。它仍然沒有工作 –

0

ec2實例處於公共子網。這意味着理想的流量將從NAT網關進入。因此,我建議編輯RDS的安全組規則添加一條規則,允許NAT網關的公共IP在端口5432上可訪問。