从不同 VPC 中的 EC2 实例访问 RDS 实例 [2024]

问题描述 投票:0回答:1

我在 2 个不同的 VPC 中有一个 RDS 实例和一个 EC2 实例。我想从我的 EC2 实例访问 RDS 实例中的数据。当我尝试连接到 RDS 实例中的数据库时,出现超时错误。

这是我所做的:

  1. 2 个 VPC 之间的 VPC 对等互连。 DNS 解析处于活动状态,用于接收和请求 VPC。

  2. 两个 VPC 的路由表均已编辑,目的地 = & 目标 = 对等连接

  3. 网络 ACL 不是问题。

  4. 更新了 RDS 实例的安全组以允许来自 EC2 实例的私有 IPv4 的入站流量。

  5. 尝试将 RDS 实例设置为“公开可访问”和“不可公开访问”,但仍然给出相同的错误。

  6. 拥有RDS的VPC有公有子网和私有子网。我只更新了私有子网的路由表。我也尝试过更新公共子网的路由表,但没有效果。

amazon-web-services amazon-ec2 amazon-rds amazon-vpc aws-vpc-peering
1个回答
0
投票

为了测试您的场景,我执行了以下操作:

  • 创建了一个仅包含私有子网且 CIDR 为 10.0.0.0/16
    数据库 VPC

Database VPC with private subnets

  • 创建了一个 App VPC,其中包含一个公有子网和 CIDR
    10.1.0.0/16

App VPC with public subnet

  • 在两个 VPC 之间创建了 VPC 对等 连接并接受了请求:

VPC Peering

  • 编辑 App 公共子网的路由表以指向数据库 VPC:

App Route Table

  • 编辑了数据库私有子网的路由表(我将两者都指向同一个路由表)以指向应用程序VPC:

Database Route Table

  • 在数据库 VPC 的私有子网中启动了 Amazon RDS PostgreSQL 数据库,并自动创建子网组
    在应用程序 VPC 的
  • 公共子网
  • 中启动了 Amazon EC2 实例 编辑附加到数据库的
  • 安全组
  • 以接受来自应用程序VPC CIDR的传入连接(Publicly accessible = No):
    
    

Database security group

通过 SSH 登录
    EC2 实例
  • 使用以下方式安装
  • PostgreSQL 客户端
  • 10.1.0.0/16
从 EC2 实例连接到 PostgreSQL 数据库:
  • sudo dnf install postgresql15
App-VPC中的EC2实例与Database-VPC中的数据库连接成功!

如果它不适合您,那么我建议您与我上面所做的交叉检查您的配置。例如,确认您在接收端

接受了对等连接

,并仔细检查对等配置。 祝你好运!让我们知道您的发现!

© www.soinside.com 2019 - 2024. All rights reserved.