EC2-classic 中的源端点的 AWS DMS 问题

Posted

技术标签:

【中文标题】EC2-classic 中的源端点的 AWS DMS 问题【英文标题】:AWS DMS issue with source endpoint in EC2-classic 【发布时间】:2016-07-25 22:26:00 【问题描述】:

我们正在使用多个 EC2-Classic 服务器 (Linux Ubuntu),配置如下:挂载的 EBS 卷并在其上运行服务器版本:5.5.48-MariaDB

我想使用 AWS DMS(AWS 数据库迁移服务)并将我们的 EBS 数据库迁移到新 VPC 中的 RDS AuroraDB。 我创建了 VPC、AuroraDB(不可公开访问)、AWS DMS 复制实例和端点。

从 EC2-classic 实例,我可以打开 VPC 中的远程 AuroraDB 控制台(感谢 Classic Link)。 目标端点(到 AuroraDB)工作正常,测试成功完成

Source Endpoint 显示以下错误:

Operation:testEndpointDetails:[errType=ERROR_RESPONSE,
status=122502, errMessage=Cannot connect to ODBC provider 122502 ODBC general error.,
errDetails= RetCode: SQL_ERROR SqlState: HY000 NativeError: 2003 Message: unixODBCmysql http://ODBC 5.3(w)
DriverCan't connect to MySQL server on 'Private.DNS.name' (110) http://122502] ODBC general error.

我尝试设置像服务器名称 私有/公共 DNS 和私有/公共 IP,仍然相同。

凭证没问题,我没有使用任何特殊字符。 我在北弗吉尼亚地区经营。 AWS DMS 复制实例设置为公共。 我可以从远程 EC2 经典实例登录 MariaDB 控制台。

我尝试将端口 3306 和 AWS DMS 复制实例的私有/公共 IP 设置为正确的安全组,但我想我仍然错过了一些东西,可能在 SG 区域,但我不确定。

【问题讨论】:

【参考方案1】:

我遇到了同样的错误消息,这是一个网络问题。我的复制实例无权访问数据库。

我的数据库位于具有子网 x 的 VPC 中,而我的复制实例位于具有相同子网 x 的同一 VPC 中。我在我的网络 ACL 和数据库的安全组中打开了 3306 端口到 Internet (0.0.0.0/0) 只是为了测试它是否是网络问题。连接测试使用这些设置。测试后,我删除了最后一个安全设置。

我的问题的解决方法是在安全组和数据库的网络ACL中打开3306端口到所有vpc连接。例如172.0.0.0/16.

希望对你有帮助

【讨论】:

奥利维尔,感谢您的回复。在网络 ACL 中,当我开始对其进行故障排除时,我已允许所有流量(入站/出站).. * 我已允许连接到 EC2-Classic 实例的安全组中的传入流量(出站不受限制)用于端口3306和VPC中Replication实例&AuroraDB的公网IP。 * 通过经典链接,VPC 和 EC2 经典实例中的 AuroraDB 附加了相同的 SG 组,这允许所有三个实例的外部 IP 的传入端口 3306,我的 VPC 的 CIDR,它仍然不起作用。 :( 我在服务器上停止了 FW、iptables 等 EC2-Classic 实例上是否有防火墙?您用于数据库端点的用户是否具有数据库的读/写权限? 我之前的写作方式,我在实例上禁用了 FW,并且我能够从不同的实例远程连接到该实例上的 MariaDB。我为尝试使用 MariaDB 连接到此 EC2-classic 的第二个 ec2 实例设置的设置,我为复制实例设置了相同的设置【参考方案2】:

您必须将 DMS 复制实例中的安全组添加到与 RDS 数据库关联的安全组中,作为授权的入站流量。

转到数据库迁移服务仪表板,然后将它们转到“复制实例” 选择您的复制实例以获取“VPC 安全组”

【讨论】:

以上是关于EC2-classic 中的源端点的 AWS DMS 问题的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL 8.0.19 (ON PREMISE) 作为 AWS DMS 中的源?

为 EC2-Classic 中的负载均衡器添加或删除可用区

aws lambda 函数可以向专用网​​络中的端点发布帖子吗?

AWS Cognito oauth2/token 端点中的 405 方法不允许错误

为啥我会收到“您的账户不支持该地区的 EC2-Classic 平台。”?

AWS API Gateway REST API 是不是没有设置来禁用 CloudFormation 模板中的 execute-api 端点?