【问题标题】:Cannot connect to RDS via hostname无法通过主机名连接到 RDS
【发布时间】:2021-01-19 13:07:11
【问题描述】:

我在自己的 VPC 中有一个“可公开访问”的 RDS PostgreSQL 数据库实例,在另一个对等 VPC 中有一个 EC2 实例。 SG 允许双向 PostgreSQL 协议,并且两个 VPC 还连接了 IGW。 Pgadmin 使用公共 IP 地址而不是提供的主机名从 EC2 实例连接到 RDS 实例。我需要能够使用主机名。有什么解决问题的建议吗?

【问题讨论】:

  • 您看到什么类型的错误?您是说同一主机不允许仅连接到主机名,但允许通过 IP 连接。您如何验证这些是相同的主机?
  • 当您在 EC2 实例的 RDS 主机名上运行 nslookup 时会发生什么?您可能需要包含 EC2 实例所在子网的路由表配置(换句话说,它是否具有到对等 VPC 的特定路由?)以及 RDS 实例的确切安全组设置。
  • 为什么将 RDS 数据库配置为“可公开访问”?是否也可以从 Internet 访问?

标签: postgresql amazon-web-services amazon-ec2 amazon-rds


【解决方案1】:

可公开访问的 RDS 实例的主机名在 aws 外部和内部的解析方式不同。因此,从 ec2 实例来看,它将是一个私有 IP,而从外部(例如,来自您的本地计算机或其他托管服务提供商) - 一个公共 IP。

我建议查看 rds 实例安全组,牢记这一事实。

【讨论】:

    【解决方案2】:

    当我们错误地将“可公开访问”的 RDS 实例放入私有子网时,我遇到了这个问题。 AWS 会让你这样做,即使它没有任何意义。

    仔细检查您的 RDS 实例是否位于公有子网中(即具有到 Internet 网关的路由的子网)。

    【讨论】:

      【解决方案3】:

      我收到超时错误。

      我发现了问题 - 两个相关 VPC 的相关路由表都破坏了到 VPC 对等连接的路由(在 AWS 控制台中报告为“黑洞”)。在为每个 VPC 的主路由表创建新路由(指向另一个 VPC)后,我能够使用 RDS“端点”地址连接到 RDS 实例。

      感谢大家的建议。

      【讨论】:

        猜你喜欢
        • 2021-06-15
        • 2016-12-13
        • 1970-01-01
        • 2017-08-08
        • 2017-02-08
        • 2018-05-12
        • 2018-07-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多