我按照链接中提供的步骤手动创建了基础结构:connecting-to-a-database-within-an-amazon-vpc .
我可以完全从公共子网中的ec2连接私有子网中的RDS . 这正是我想要的 .
但是当我尝试使用terraform创建相同的复制品时,它只是没有连接 .
命令:
nslookup <my-hostname>
给了我私人IP .
命令:
telnet x.x.x.x 5432
导致“telnet:无法连接到远程主机:连接超时”
命令:
netstat -an | grep x.x.x.x
显示“SYN_SENT” .
我尝试通过添加0.0.0.0/0来允许RDS安全组中的所有IP . 那没用 .
我尝试手动创建RDS实例,但将其添加到terraform创建的VPC并尝试使用terraform创建的ec2实例进行连接 . 那没用 .
我错过了什么吗?任何帮助深表感谢 .
2 回答
故障排除步骤
确保它允许带端口
5432
的出站规则访问rds(在私有子网中)5432
.如果没有,请更新您的terraform代码 .
ec2实例位于公有子网中 . 这意味着理想情况下,流量将来自NAT网关 . 所以我建议编辑RDS的安全组规则添加规则以允许在端口5432上访问NAT网关的公共IP .