View a markdown version of this page

最佳实践和故障排除 - AWS 转换

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

最佳实践和故障排除

现代化过程中的最佳实践、常见问题及其解决方案。

ECS 应用程序日志

CloudWatch 日志

  • 所有 ECS 容器日志都会自动发送到 CloudWatch 日志

  • 在 CloudWatch 控制台的 “日志组” 下访问日志

  • 日志组命名格式:/aws/ecs/{应用程序名称}

  • 每个容器实例都会在组内创建一个新的日志流

查看日志

通过 AWS 控制台:

  • 导航到 CloudWatch > 日志组

  • 选择您的应用程序的日志组

  • 选择相关的日志流以查看容器日志

使用 AWS CLI:

aws logs get-log-events --log-group-name /aws/ecs/your-app-name --log-stream-name your-stream-name

常见日志位置

  • 应用程序日志: CloudWatch 日志

  • ECS 服务事件:ECS 控制台 > 集群 > 服务 > 事件选项卡

  • 容器 health/status:ECS 控制台 > 集群 > 服务 > 任务选项卡

数据库连接管理

应用程序使用环境变量进行数据库连接设置

如果您遇到连接问题:

  • 验证环境变量中的当前连接设置

  • 更新环境变量以根据需要修改数据库连接字符串

  • 无需重新部署应用程序即可通过更新环境变量来更改连接字符串

数据库连接问题

问题:无法将 AWS 转换连接到 SQL Server

解决方案:

  • 验证 AWS 转换和 SQL Server 之间的网络连接

  • 检查安全组规则以获得正确的端口访问权限 (1433)

  • 在 Secrets Manager 中确认数据库凭证

  • 使用已创建的用户测试数据库权限

  • 确保将 SQL Server 配置为使用混合模式身份验证

  • 验证机密是否有必需的标签(项目:atx-db-moderation,所有者:数据库连接器)

防火墙和安全组问题

问题:连接超时或 “无法访问数据库” 错误

根本原因:安全组或网络 ACL 阻塞流量

解决方案:

  1. 验证安全组配置:

    • 确认您的 SQL Server 安全组有允许来自 DMS 架构转换安全组的 1433 端口的入站规则

    • 检查来源是否是安全组 ID(例如 sg-0123456789abcdef0),而不是 IP 地址

    • 验证实例配置文件中是否正确指定了 DMS 架构转换安全组

    • 确保没有相互冲突的拒绝规则

  2. 检查网络 ACL:

    • 验证子网级别的网络 ACL 是否允许端口 1433 上的入站流量

    • 确保网络 ACL 允许将出站临时端口用于返回流量

    • 检查数据库子网和 DMS 子网网络 ACL

  3. 验证 VPC 配置:

    • 确认 DMS 架构转换实例和 SQL Server 在同一 VPC 中或者具有正确的 VPC 对等关系

    • 检查路由表是否允许子网之间的流量

    • 确认没有防火墙设备阻塞流量

  4. 测试连接:

    • 在与 DMS 架构转换相同的子网中启动测试 EC2 实例

    • 附加与 DMS 架构转换相同的安全组

    • 使用 telnet 或 SQL 服务器管理工作室测试与 SQL Server 的连接

    • 如果测试成功,则问题出在 AWS 转换配置上;如果测试失败,则问题出在于 network/firewall

常见错误:将端口 1433 打开到 0.0.0。 0/0 (所有来源)存在安全风险。始终使用基于安全组的访问控制,将访问权限限制为 DMS 架构转换安全组。

架构转换问题

问题:架构转换显示了许多操作项

解决方案:

  • 查看转化报告中的操作项目

  • 根据影响确定优先级

  • 使用 Amazon Q 开发人员进行复杂的 SQL 转换

  • 请咨询 S AWS upport 以获取指导

  • 考虑采用分阶段方法处理复杂的数据库

应用程序转换问题

问题:应用程序转换无法构建

解决方案:

  • 查看转换报告中的构建错误

  • 如有必 NuGet 要,配置私密订阅源

  • 如有必要,更新软件包引用

  • 检查 Windows-specific 依赖关系

  • 查看转换日志以了解详细错误

数据迁移问题

问题:数据迁移验证失败

解决方案:

  • 查看验证报告以了解具体故障

  • 检查数据类型映射

  • 验证身份列配置(默认生成与始终生成)

  • 查看计算列表达式

  • 如有复杂的数据问题,请联系 Su AWS pport

资源清理问题

问题:转换作业因资源错误而失败

解决方案:

  • 检查现有的 DMS 资源(迁移项目、数据提供者、实例配置文件)

  • 清理先前尝试中失败或不完整的资源

  • 验证未计划删除密钥

  • 查看 DMS 和 Aurora PostgreSQL 的服务配额

  • 如果清理不能解决问题,请联系 AWS Support

部署问题

问题:转换后的应用程序无法连接到 Aurora PostgreSQL

解决方案:

  • 验证 PostgreSQL 的连接字符串格式

  • 查看安全组规则

  • 在 Secrets Manager 中验证数据库凭证

  • 确保配置 SSL/TLS 正确

  • 使用 psql 或 pgadmin 测试连接

获得更多帮助

联系 Su AWS pport 时,请提供:

  • 转换作业 ID

  • AWS 账号

  • Region

  • 错误消息和屏幕截图

  • 转换日志(可在 AWS 转换控制台中找到)