【问题标题】:Can't connect to RDS from EC2 using terraform created infrastructure无法使用 terraform 创建的基础架构从 EC2 连接到 RDS
【发布时间】:2018-03-15 23:32:15
【问题描述】:

我按照链接中提供的步骤手动创建了基础架构: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 实例进行连接。那没用。

我错过了什么吗?非常感谢任何帮助。

【问题讨论】:

    标签: amazon-ec2 amazon-rds terraform amazon-vpc


    【解决方案1】:

    ec2 实例位于公共子网中。这意味着理想情况下流量将来自 NAT 网关。所以我建议编辑RDS的安全组规则,添加一个规则,允许NAT网关的公共IP在5432端口上可以访问。

    【讨论】:

      【解决方案2】:

      故障排除步骤:

      1. 在您的公共 ec2 实例上检查安全组的出口(出站规则),

      确保它允许带有端口5432 的出站规则访问rds(位于私有子网中)

      1. 在您的 rds 实例上检查安全组的入口(入站规则)。也许可以确定它允许来自公共 ec2 实例 CIDR ips 或安全组的端口 5432

      如果没有,请根据需要更新您的 terraform 代码。

      【讨论】:

      • 我将出站规则保留为 ec2 的“所有流量”。我通过在 rds 安全组中设置 0.0.0.0/0 允许所有人使用端口 5432。还是不行
      猜你喜欢
      • 2019-03-27
      • 2021-07-29
      • 2020-08-28
      • 2011-04-05
      • 2021-04-17
      • 2021-02-04
      • 2020-10-19
      • 2016-04-23
      • 2014-03-31
      相关资源
      最近更新 更多