7

我有 2 个 Aws RDS 实例(在 Postgresql 上运行)。两者都在不同的帐户和不同的地区。我想使用 AWS DMS 在它们之间设置数据复制。我尝试进行 VPC 对等互连。我看到了以下视频以启用 VPC 对等:-

https://www.youtube.com/watch?v=KmCEFGDTb8U

问题:- 当我尝试创建 AWS DMS 服务时,我为源添加了主机名、用户名和密码等(存在于另一个帐户上),当我点击时Test Connection,我收到以下错误。

Test Endpoint failed: Application-Status: 1020912, Application-Message: Failed to connect Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001 NativeError: 101 Message: [unixODBC]timeout expired ODBC general error.

Test Connection令我惊讶的是,当我点击位于同一帐户中的 Target RDS 实例时,我遇到了类似的错误。IE:-

Test Endpoint failed: Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001 NativeError: 101 Message: [unixODBC]timeout expired ODBC general error.

谷歌建议我们有某种防火墙,但查看 NACL,我可以看到我们允许 0.0.0.0/0 用于两个 VPC。

4

2 回答 2

1

如果您尝试从另一个 IP 访问一个 IP 中的私有 IP 范围,除了创建 VPC 对等连接外,您还必须:

  • 在两个 VPC 中创建路由表条目,以通过对等连接将流量路由到远程 VPC 的 IP 范围,
  • 允许安全组内的连接,既来自目标安全组中的源 CIDR 范围,并且,如果您要过滤来自源的传出连接,也在其出站规则中。请注意,您不能使用安全组 ID 来允许此流量,因为它不适用于跨区域对等互连;
  • 允许在 underyling 软件中连接(可能默认允许),
  • 允许网络 ACL 传递流量(您已验证默认情况下也允许)

由于您看到超时,我怀疑安全组规则。但是,这也可能是一条糟糕的路线。

于 2018-10-17T16:57:01.593 回答
0

正如这里建议的那样https://aws.amazon.com/premiumsupport/knowledge-center/dms-endpoint-connectivity-failures/

修改用于测试与Endpoint的连接的Replication Instance时,请注意:

  1. 私有 IP 地址
  2. VPC 安全组

将安全组更改为合适的安全组或编辑正在使用的安全组,添加入站规则以允许 来自复制实例的私有 IP 地址的PostgreSQL 流量类型。

于 2021-12-20T16:24:32.627 回答