直接从 Amazon 系统映像 (AMI) 中导出虚拟机 (AMI) - VM Import/Export
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

直接从 Amazon 系统映像 (AMI) 中导出虚拟机 (AMI)

若您希望在现场虚拟化环境中部署新的标准化实例,基于 Amazon 系统映像(AMI)导出 VM 文件将非常有用。您可以将大部分 AMI 导出到 Citrix Xen、Microsoft Hyper-V 或 VMware vSphere。

导出映像时,将按存储导出虚拟机的存储桶的标准 Amazon S3 费率向您收费。此外,临时使用 Amazon EBS 快照可能会收取少量费用。有关 Amazon S3)定价的更多信息,请参阅 Amazon S3)定价

先决条件

要从 Amazon EC2 导出虚拟机,首先要满足以下先决条件。

  • 安装 Amazon CLI。有关更多信息,请参阅 Amazon Command Line Interface 用户指南

    提示

    在 suppAmazon Web Services 区域 orted(支持的)中,您还可以使用,以Amazon CloudShell获得基于浏览器的预先验证 shell,并直接从中启动Amazon Web Services Management Console。

  • 创建 Amazon S3 存储桶以存储导出的映像,或选择现有存储桶。存储桶必须位于您想要导出 VM 的区域。有关 S3 存储桶的更多信息,请参阅 Amazon Service 用户指南

  • 创建命名为 vmimport 的 IAM 角色。有关更多信息,请参阅 必需的服务角色

导出映像的注意事项

导出映像和卷存在以下限制:

  • 您必须将映像导出为您的虚拟化环境支持的以下映像格式之一:

    • 虚拟硬盘 (VHD),该格式可与 Citrix Xen 和 Microsoft Hyper-V 虚拟化产品兼容。

    • 流优化型 ESX 虚拟机磁盘 (VMDK),该格式可与 VMware ESX 和 VMware vSphere 版本 4、5 和 6 相兼容。

    • RAW 格式。

  • 您不能导出包含 Amazon 提供的第三方软件的映像。例如,VM Export 无法导出 Windows 或 SQL Server 映像或通过 Amazon Web Services Marketplace 中的映像创建的任何映像。

  • 您不能导出在块储存设备映射中包含加密 EBS 快照的映像。

  • 您只能导出在块储存设备映射中指定的 EBS 数据卷,而不能导出在实例启动后附加的 EBS 卷。

  • 如果您从其他Amazon账户共享了图像,则无法从 Amazon EC2 导出该图像。

  • 您不能同时为同一 AMI 执行多个导出映像任务。

  • 默认情况下,每个区域同时进行的转换任务不能超过 5 个。此限制最多可调至 20。

  • 不支持卷大小超过 1 TiB 的 VM。

  • 您可以将卷导出到未加密的 Amazon S3 存储桶或使用 SSE-S3 加密加密的存储桶。您无法导出到使用 SSE-KMS 加密加密的 S3 存储桶。

启动导出图像任务

若要导出映像,请使用 export-image 命令。导出的文件使用以下 S3 密钥写入指定的 S3 存储桶:前缀 exp ort-am i-id格式(例如, my-export-bucket/exports/export-ami-1234567890abcdef0.vmdk)。

aws ec2 export-image --image-id ami-id --disk-image-format VMDK --s3-export-location S3Bucket=my-export-bucket,S3Prefix=exports/

监视导出图像任务

要监控图像的导出,请使用以下describe-export-image-tasks命令:

aws ec2 describe-export-image-tasks --export-image-task-ids export-ami-1234567890abcdef0

以下为响应示例。所示状态为 active,表明导出任务正在进行。当状态为 completed 时,表示映像可供使用。

{ "ExportImageTasks": [ { "ExportImageTaskId": "export-ami-1234567890abcdef0" "Progress": "21", "S3ExportLocation": { "S3Bucket": "my-export-bucket", "S3Prefix": "exports/" }, "Status": "active", "StatusMessage": "updating" } ] }

取消导出映像任务

如果需要,可以使用以下cancel-export-task命令取消正在导出的图像。

aws ec2 cancel-export-task --export-task-id export-ami-1234567890abcdef0

如果导出任务完成或正在传输最后一个磁盘映像,则该命令将失败且会返回错误。