使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

我如何使用 VM Import/Export 导出 AMI 上的基于 VM 的实例?

2 分钟阅读
0

我想要将亚马逊机器映像(AMI)的副本导出为虚拟机(VM),以在现场虚拟化环境中部署。

简短描述

使用 AWS 命令行界面(AWS CLI)和 VM Import/Export 开始映像导出任务。这会将您的 AMI 副本导出为写入 Amazon Simple Storage Service(Amazon S3)桶的虚拟机文件。使用导出的虚拟机在您的现场虚拟化环境中部署新的标准化实例。大多数 AMI 可以导出到 Citrix Xen、Microsoft Hyper-V 或 VMware vSphere。

解决方法

先决条件

注意: 如果在运行 AWS CLI 命令时收到错误,请参阅 Troubleshoot AWS CLI errors。此外,确保您使用的是最新版本的 AWS CLI

将 AMI 的副本导出为映像

要运行映像导出任务,请执行以下操作:

  1. 从您要导出的 Amazon Elastic Compute Cloud(EC2)实例创建由 Amazon Elastic Block Store(Amazon EBS)提供支持的 AMI。
    对于 Linux,请参阅创建由 Amazon EBS 提供支持的 Linux AMI
    对于 Windows,请参阅创建自定义 Windows AMI

  2. 在客户端计算机上安装 AWS CLI。然后,使用 IAM 用户的 AWS 凭证配置 AWS CLI。

  3. 在与您计划导出的 AMI 相同的 AWS 区域中创建新的 S3 存储桶

  4. 在您用于 VM Import/Export 的区域中激活 AWS Security Token Service(AWS STS)。然后,创建所需的服务角色

  5. 在安装了 AWS CLI 的客户端计算机上,运行 export-image 命令启动导出映像任务:

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

    **注意:**在此示例中,Amazon S3 密钥 prefixexport-ami-id.format 将导出的文件写入您指定的 S3 存储桶。您可以为导出的文件添加前缀。
    export-image 命令输出示例:

    {
        "DiskImageFormat": "vmdk",
        "ExportImageTaskId": "export-ami-1234567890abcdef0"
        "ImageId": "example-ami-id",
        "RoleName": "vmimport",
        "Progress": "0",
        "S3ExportLocation": {
            "S3Bucket": "example-export-bucket",
            "S3Prefix": "exports/"
        },
        "Status": "active",
        "StatusMessage": "validating"
    }
  6. 要检查导出映像任务的状态,运行 describe-export-image-tasks 命令:

    aws ec2 describe-export-image-tasks --export-image-task-ids export-example-ami-id

    describe-export-image-tasks 命令输出示例:

    {
        "ExportImageTasks": [
            {
                "ExportImageTaskId": "export-ami-1234567890abcdef0"
                "Progress": "21",
                "S3ExportLocation": {
                    "S3Bucket": "my-export-bucket",
                    "S3Prefix": "exports/"
                },
                "Status": "active",
                "StatusMessage": "updating"
            }
        ]
    }
  7. 确认导出映像任务的状态变为已完成。这表明您导出的文件已准备就绪,可以作为对象放入您的 S3 存储桶。
    已完成状态输出示例:

    {
        "ExportImageTasks": [
            {
                "ExportImageTaskId": "example-export-ami-id"
                "S3ExportLocation": {
                    "S3Bucket": "example-export-bucket",
                    "S3Prefix": "exports/"
                },
                "Status": "completed"
            }
        ]
    }
  8. 使用 Amazon S3 控制台访问您的 S3 存储桶。然后,找到并下载该对象

相关信息

直接从亚马逊机器映像(AMI)导出虚拟机

在 AWS 账户中创建 IAM 用户

AWS 安全凭证

亚马逊机器映像(AMI)

VM Import/Export 故障排除

AWS 官方
AWS 官方已更新 7 个月前