发现、评估和迁移 Amazon Web Services (AWS) EC2 实例到 Azure

本教程介绍如何使用 Azure Migrate 发现、评估和迁移 Amazon Web Services (AWS) EC2 实例到Azure VM。

注意

将 AWS VM 迁移到 Azure 的方式与迁移物理服务器相同。

本教程介绍如何执行下列操作:

  • 验证迁移的先决条件。
  • 准备Azure资源,并为Azure帐户设置权限以使用Azure Migrate。
  • 为发现、评估和迁移准备 AWS 弹性计算云(EC2)实例。
  • 将 EC2 实例作为物理服务器迁移到 Azure。

如果没有 Azure 订阅,请在开始前创建一个试用版订阅

发现和评估

建议你先执行 VM 发现和迁移评估,然后再迁移到 Azure。 该评估可帮助你适当调整要迁移到 Azure 的 AWS VM,并预估 Azure 可能的运行成本。

若要设置评测,请执行以下操作:

  1. 按照教程设置 Azure 并准备 AWS VM 进行评估。 请注意:

    • Azure 迁移和现代化使用密码验证来发现 AWS 实例。 AWS 实例默认不支持密码验证。 需要先启用密码验证,才能发现实例。
      • 对于 Windows 计算机,请允许 WinRM 端口 5985 (HTTP)。 这端口允许远程 WMI 调用。
      • 对于 Linux 计算机:
        1. 登录到每台 Linux 计算机。
        2. 打开 sshd_config 文件:vi /etc/ssh/sshd_config
        3. 在文件中,定位到 PasswordAuthentication 行,然后将值改为 yes
        4. 保存文件并将其关闭。 重启 ssh 服务。
    • 如果使用根用户来识别 Linux 虚拟机,请确保虚拟机上允许根用户登录。
      1. 登录到每台 Linux 计算机。
      2. 打开 sshd_config 文件:vi /etc/ssh/sshd_config
      3. 在文件中,定位到 PermitRootLogin 行,然后将值改为 yes
      4. 保存文件并将其关闭。 重启 ssh 服务。
  2. 然后,按照此教程设置 Azure Migrate 项目和设备,以发现和评估 AWS VM。

尽管建议你尝试进行评估,但执行评估并不是迁移 VM 的必需步骤。

先决条件

  • 确保要迁移的 AWS VM 正在运行受支持的操作系统 (OS) 版本。 出于迁移目的,AWS 虚拟机被视为物理计算机。 请参阅受支持的操作系统和内核版本,了解物理服务器迁移工作流。 可以使用标准命令(如 hostnamectluname -a)检查 Linux VM 的 OS 和内核版本。 建议您在进行迁移之前,执行测试迁移(测试故障转移)以验证 VM 是否按预期运行,然后再继续迁移。
  • 要迁移到 Azure,请确保 AWS VM 符合支持的配置
  • 验证复制到 Azure 的 AWS VM 是否符合 Azure VM 要求
  • 将 VM 迁移到 Azure 之前,需要在 VM 上进行一些更改:
    • 对于某些操作系统,Azure Migrate and Modernize 可自动做出这些更改。
    • 在开始迁移之前,必须做出这些更改。 如果在做出更改之前迁移 VM,VM 可能无法在 Azure 中启动。 查看在 WindowsLinux 上需要进行的更改。

准备 Azure 资源以进行迁移

  • 验证Azure帐户的权限:Azure帐户需要创建 VM 并写入Azure托管磁盘的权限。
  • 有关创建项目并运行发现、评估和迁移所需的 Azure Migrate 内置角色和权限详细信息,请参阅 准备适用于 Azure Migrate 的 Azure 帐户
  • 分配在 Microsoft Entra ID 中注册复制设备的权限。 有关详细信息,请参阅 所需的权限
  • 创建Azure网络:设置Azure虚拟网络。 复制到 Azure 时,会创建 Azure VM 并将其加入到你在设置迁移时指定的 Azure 虚拟网络。

此外,

  • 查看迁移体系结构。
  • 查看有关将 Windows Server 2008 服务器迁移到 Azure 方面的限制。

准备 AWS 实例以便迁移

若要准备好进行 AWS 到 Azure 的迁移,需要准备和部署一个用于迁移的复制设备。 物理服务器迁移(包括 AWS、GCP 或其他云)需要单独的复制设备来执行基于代理的迁移。 无法使用为发现创建的 Azure Migrate 工具来进行物理服务器迁移。

为复制装置准备机器

若准备进行设备部署,请执行以下操作:

  • 设置单独的 EC2 VM 以托管复制设备。 此实例必须运行 Windows Server 2022。 查看设备的硬件、软件和网络要求。

  • 该设备不应安装在要复制的源 VM 上,也不应安装在以前可能已安装的“Azure Migrate: 发现和评估”设备上。 它应部署在其他 VM 上。

  • 要迁移的源 AWS 虚拟机应具备到复制设备的网络视距。 配置所需的安全组规则来启用此功能。 建议将复制设备部署在与要迁移的源 VM 相同的虚拟私有云 (VPC) 中。 如果复制工具需要位于其他 VPC 中,则必须通过 VPC 对等连接来连接这些 VPC。

  • 源 AWS VM 在端口 HTTPS 443(控制通道编排)和 TCP 9443(数据传输)上与复制设备进行入站通信,以便管理复制和传输复制数据。 然后,复制设备会通过端口 HTTPS 443 出站来协调复制数据并将该数据发送到 Azure。 若要配置这些规则,请编辑安全组入站/出站规则,在其中加入相应的端口和源 IP 信息。

    显示 AWS 安全组的屏幕截图。

    显示编辑安全设置的屏幕截图。

  • 查看复制设备访问公共由世纪互联运营的 Azure云所需的 Azure URL。

将 EC2 实例迁移为物理服务器

完成上述要求后,可以开始将 AWS EC2 实例迁移为物理服务器。 有关详细信息,请参阅 迁移在其他云中运行的物理服务器或服务器

故障排除和提示

问题:我在已发现的要迁移的服务器列表中看不到 AWS VM。
答: 请检查复制设备是否满足要求。 确保在要迁移的源 VM 上安装移动代理并注册配置服务器。 检查网络设置和防火墙规则,启用复制设备与源 AWS VM 之间的网络路径。

问题:如何知道我的 VM 是否已成功迁移?
答案:迁移后,你可从“虚拟机”页面查看和管理 VM。 连接到已迁移的 VM 进行验证。

问题:我无法从之前创建的服务器评估结果中导入 VM 进行迁移。
答案:目前,我们不支持为此工作流导入评估。 临时解决方法是,导出评估,然后在“启用复制”步骤期间手动选择 VM 建议。

问题:我在尝试发现我的 AWS VM 时收到“未能提取 BIOS GUID”错误。
答: 始终使用根登录进行身份验证,而不是使用任何伪用户。 另外,请查看 AWS VM 支持的操作系统。

问题:我的复制状态没有进展。
答: 请检查复制设备是否满足要求。 确保已在复制设备 TCP 端口 9443 和 HTTPS 443 上启用了所需端口以进行数据传输。 确保没有过期的冗余复制系统版本连接到同一项目中。

问题:我无法使用 Azure 迁移和现代化来发现 AWS 实例,原因是远程 Windows 管理服务出现 HTTP 状态代码 504。
答案:请确保满足 Azure Migrate 设备要求和 URL 访问需求。 确保没有代理设置阻止设备注册。

问题:在将 AWS VM 迁移到 Azure 之前是否需要进行任何更改?
答案:在将 EC2 VM 迁移到 Azure 之前,可能需要进行以下更改:

  • 如果使用 cloud-init 进行 VM 预配,可以先在 VM 上禁用 cloud-init,再将其复制到 Azure。 由 cloud-init 在 VM 上执行的预配步骤可能特定于 AWS,将在迁移到 Azure 后失效。 ​
  • 如果 VM 是半虚拟化 (PV) VM 而不是硬件 VM,则可能无法按原样在 Azure 上运行它。 PV VM 在 AWS 中使用自定义启动序列。 在迁移到 Azure 之前,可以通过卸载 PV 驱动程序来克服此挑战。
  • 强烈建议在最终迁移之前进行测试迁移。

问题:是否可以迁移运行 Amazon Linux 操作系统的 AWS VM?
答案:由于只有 AWS 支持 Amazon Linux OS,因此无法按原样迁移运行 Amazon Linux 的 VM。 若要迁移在 Amazon Linux 上运行的工作负荷,可以在 Azure 中启动 RHEL VM。 然后,你可以使用相关的工作负荷迁移方法迁移在 AWS Linux 计算机上运行的工作负荷。 例如,取决于工作负荷,可能会有特定工具来帮助迁移。 对于数据库,可以使用这些工具;对于 Web 服务器,则可以使用部署工具。

后续步骤

在 Azure 云采用框架中调查云迁移旅程