【问题标题】:Why can't I access my amazon RDS instance from my EC2 instance?为什么我无法从我的 EC2 实例访问我的 amazon RDS 实例?
【发布时间】:2019-11-23 13:42:00
【问题描述】:

所以我在亚太(孟买)地区创建了一个 RDS 实例,并在同一地区分别创建了一个 EC2 实例。我的本地机器可以很好地访问数据库服务器,但不能从我的 EC2 实例中访问它。 我使用了我的 EC2 的公共 IPv4 地址: 并将此实例 ip 放入我的 rds 实例的安全组的入站规则中: 不幸的是,这不起作用。对我来说幸运的是,公开所有 ips 对我有用: 即使它确实有效,暴露所有 ips 也不是我想要的。我错过了什么吗?如何使我的 RDS 只能从 EC2 实例访问?

【问题讨论】:

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


    【解决方案1】:

    确保您在数据库设置中将“公共可访问性”设置为“是”。

    【讨论】:

    • 这与从同一个 VPC 中访问它无关。
    【解决方案2】:

    只需添加到@Mark 答案,如果您的 ec2 实例和 RDS 在同一个 VPC 中,那么私有 IP 应该可以工作,但如果在不同的 VPC 中,那么您必须添加公共 IP 地址,但在您的情况下,公共的不工作所以它表示两者都在同一个 VPC 中。

    一种方法是允许 EC2 实例的安全组 ID 与 @Mark 提到的 3306 相对应,

    但另一种方式可以,

    例如,如果您的 VPC CIDR 块是 10.0.0.0/16,那么:

    我建议在 DB 安全组中允许 10.0.0.0/16 针对 3306 端口,这将允许所有 EC2 实例,有助于测试和调试。

    【讨论】:

      【解决方案3】:

      您已将 EC2 实例的公有 IP 添加到 RDS 安全组。由于 EC2 实例和 RDS 实例在同一个 VPC 中,因此它们之间的通信将完全在 VPC 内进行。这意味着您需要将 EC2 实例的 Pivate IP 列入白名单,而不是公共 IP。只有当 EC2 实例在 VPC 外部发送请求时,才会使用公共 IP。

      我实际上建议将 EC2 实例所属的安全组 ID 列入白名单,而不是 EC2 实例的特定 IP 地址。如果 EC2 实例的 IP 发生更改,或者您将应用程序扩展到多个 EC2 实例,这将允许安全组继续工作。

      【讨论】:

        猜你喜欢
        • 2018-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-27
        • 2019-04-03
        • 1970-01-01
        相关资源
        最近更新 更多