将虚拟机导出到 Amazon EC2 所需的配置 - VM Import/Export
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将虚拟机导出到 Amazon EC2 所需的配置

在您将 VM 导入 Amazon EC2 之前,您需要从您的虚拟化环境将其导出。在将 VM 导出之前,请按照以下指南配置您的 VM。

常规配置

在将 VM 从虚拟化环境中导出之前,应在 VM 中进行以下配置。您还应该查看特定于您的操作系统的部分,以了解其他必需的配置。

  • 在您的 VM 上禁用任何反病毒软件或入侵检测软件。可在导入过程完成后重新启用上述服务。

  • 从您的 VMware 虚拟机上卸载 VMware 工具。

  • 断开连接任何 CD-ROM 驱动 (虚拟或实际)。

  • 源 VM 必须有一项功能 DHCP 客户端服务。确保该服务可以启动且未从管理上被禁用。在导入期间,目前分配到源 VM 的所有静态 IP 地址都被删除。在 Amazon VPC 中启动导入的实例时,该实例将收到一个主要私有 IP 地址 (在子网的 IPv4 地址范围内)。如果您在启动实例时未指定主要私有 IP 地址,我们会在子网的 IPv4 范围内为您选择一个可用的 IP 地址。有关更多信息,请参阅 VPC 和子网大小调整

Windows 配置

在从虚拟化环境中导出 VM 之前,应在 Windows VM 中进行以下配置。本部分假设您已经查看 常规配置

  • 启用 Remote Desktop (RDP) 以进行远程访问。

  • 如果配置了主机防火墙 (Windows 防火墙或类似防火墙),请确保该防火墙允许访问 RDP。否则在导入完成后,您将无法访问您的实例。

  • 确保管理员账户和所有其他用户账户使用安全密码。所有账户均须有密码,否则导入过程可能失败。

  • 在虚拟机上安装 .NET Framework 4.5 或更高版本。我们根据需要在您的 VM 上安装 .NET Framework。

  • 在您的 Windows VM 上禁用 Autologon。

  • 打开 Control Panel > System and Security > Windows Update。在左窗格中,选择 Change settings。选择所需设置。请注意,如果选择 Download updates but let me choose whether to install them(默认值),则更新检查可能会临时占用实例上 50% 到 99% 的 CPU 资源。检查通常会在实例启动后的几分钟内执行。确保没有等待进行的 Microsoft 更新且计算机未设置成在重启时安装软件。

  • 根据需要应用以下修补程序:

  • 设置 RealTimeIsUniversal 注册表项。有关更多信息,请参阅适用于 Windows 实例的 Amazon EC2 用户指南 中的设置时间

  • 在 Windows Server VM 映像上运行系统准备 (Sysprep)。

    • 如果您在导入 VM 之前运行 Sysprep,则导入过程将在 VM 中添加一个应答文件 (unattend.xml),以自动接受最终用户许可协议 (EULA) 并将区域设置设为 EN-US。

    • 如果选择在导入您的 VM 后运行 Sysprep,我们建议您使用 EC2Launch(Windows Server 2016 和更高版本)或 EC2Config(通过 Windows Server 2012 R2)运行 Sysprep。

    用您自己的应答文件替代默认应答文件 (unattend.xml)
    1. 复制下面的示例文件,并将 processorArchitecture 参数设置为 x86amd64,具体取决于您的操作系统架构:

      <?xml version='1.0' encoding='UTF-8'?> <unattend xmlns:wcm='http://schemas.microsoft.com/WMIConfig/2002/State' xmlns='urn:schemas-microsoft-com:unattend'> <settings pass='oobeSystem'> <component versionScope='nonSxS' processorArchitecture='x86 or amd64' name='Microsoft-Windows-International-Core' publicKeyToken='31bf3856ad364e35' language='neutral'> <InputLocale>en-US</InputLocale> <SystemLocale>en-US</SystemLocale> <UILanguage>en-US</UILanguage> <UserLocale>en-US</UserLocale> </component> <component versionScope='nonSxS' processorArchitecture='x86 or amd64' name='Microsoft-Windows-Shell-Setup' publicKeyToken='31bf3856ad364e35' language='neutral'> <OOBE> <HideEULAPage>true</HideEULAPage> <SkipMachineOOBE>true</SkipMachineOOBE> <SkipUserOOBE>true</SkipUserOOBE> </OOBE> </component> </settings> </unattend>
    2. 使用名称 unattend.xml 将文件保存在 C:\Windows\Panther 目录中。

    3. 使用 /oobe/generalize 选项运行 Sysprep。这些选项会从 Windows 安装中删除所有唯一系统信息并提示您重置管理员密码。

    4. 关闭 VM 并从您的虚拟化环境中将其导出。

Linux 配置

在将 VM 从虚拟化环境中导出之前,应在 Linux VM 中进行以下配置。本部分假设您已经查看 常规配置

  • 启用 Secure Shell(SSH)以进行远程访问。

  • 确保您的主机防火墙(例如 Linux iptables)允许访问 SSH。否则在导入完成后,您将无法访问您的实例。

  • 确保您已配置了一个非根用户以使用基于密钥的公共 SSH 在导入您的实例后访问它。使用基于密码的 SSH 和通过 SSH 进行根登录均可行,但不推荐使用。推荐使用公共密钥和非根用户,因为它更安全。VM Import 不会在导入过程中配置 ec2-user 账户。

  • 确保您的 Linux VM 将 GRUB (传统 GRUB) 或 GRUB 2 作为其启动加载程序。

  • 确保您的 Linux VM 使用下列根文件系统之一:EXT2、EXT3、EXT4、Btrfs、JFS 或 XFS。

  • 确保您的 Linux 虚拟机未使用可预测的网络接口设备名称。

  • 关闭您的 VM 并从您的虚拟化环境中将其导出。