AWS DMS预迁移评估出现Connection refused问题求助(源S3/目标Postgres)
排查DMS迁移任务预评估阶段“Connection refused”报错
以下是针对该问题的排查步骤——虽然源端S3和目标端Postgres的Endpoint测试正常,但预迁移评估的连接逻辑存在差异,重点从以下方向排查:
自定义复制实例的网络访问限制
预迁移评估时,复制实例需要主动访问S3获取CSV元数据/样本文件,同时也要连接Postgres做兼容性校验:- 检查复制实例所在VPC安全组的出站规则:确保允许到S3前缀列表(
com.amazonaws.<你的区域>.s3)的HTTPS(443端口)流量;若使用S3 VPC终端节点,需确认路由表已指向该节点,且终端节点策略允许访问目标Bucket。 - 检查子网NACL:确保出站规则允许到S3和Postgres端口(默认5432)的流量,入站规则允许对应的响应流量。
- 检查复制实例所在VPC安全组的出站规则:确保允许到S3前缀列表(
Postgres端的连接白名单与监听配置
Endpoint测试可能使用的是本地或测试工具IP,复制实例的IP可能未被授权:- 检查Postgres的
pg_hba.conf:添加复制实例所在IP段的访问权限,格式类似host all all <复制实例IP/掩码> md5。 - 确认Postgres监听地址:修改
postgresql.conf中的listen_addresses为*或包含复制实例所在VPC的IP,避免仅监听localhost。 - 验证Postgres端口可用性:在复制实例所在子网的EC2实例上,用
telnet <Postgres地址> 5432测试连通性,排除端口拦截问题。
- 检查Postgres的
S3源端的权限与配置细节
虽然Endpoint测试通过,但预评估可能需要更多权限:- 确认S3源Endpoint绑定的IAM角色拥有
s3:GetObject、s3:ListBucket权限,且策略明确指定目标Bucket。 - 检查S3 Bucket的对象路径:确保Endpoint配置的前缀正确,没有拼写错误导致无法定位CSV文件。
- 确认S3源Endpoint绑定的IAM角色拥有
日志深度排查
评估输出无有效信息时,查看复制实例的详细日志:- 在DMS控制台进入复制实例详情页,查看
日志标签页的dms日志、postgresql日志,里面会记录具体是连接S3还是Postgres时出现拒绝,以及更详细的错误原因。 - 若日志信息不足,可临时将复制实例的日志级别调整为
DEBUG,重新运行预评估后再提取日志分析。
- 在DMS控制台进入复制实例详情页,查看
内容的提问来源于stack exchange,提问作者user1187968
相关产品推荐
相关产品推荐

