如何使用 VM Import/Export 创建基于本地服务器的 Amazon EC2 实例?

上次更新时间:2019 年 6 月 26 日

我想在 AWS 上创建本地服务器的副本作为 Amazon Elastic Compute Cloud (Amazon EC2) 实例。如何使用 VM Import/Export 执行该操作?

解决方法

您可以使用 AWS 命令行界面 (AWS CLI) 运行 VM Import/Export 作业。然后,创建服务器的副本作为 Amazon 系统映像 (AMI),并将其上传到 Amazon Simple Storage Service (Amazon S3) 存储桶。您可以启动 AMI 作为 EC2 实例。

对于大规模迁移,AWS Server Migration Service (SMS) 可以自动执行迁移过程。您可以导入在 VMware vSphere、Microsoft Hyper-V/SCVMM 和 Azure 上运行的本地虚拟机。

开始之前,请执行以下操作:

  • 确保您的 VM 符合所有的 VM Import/Export 要求
  • 检查支持的 Linux 和 Windows 操作系统、图像格式、许可选项及 VM Import/Export 的 限制
  • 如果以 AWS Identity and Access Management (IAM) 用户的身份登录以使用 VM Import/Export,请确保您的策略中具有 IAM 用户所需的权限

1.    遵照指导原则来准备您的 VM

2.    在本地客户端上安装 AWS CLI,然后使用为 VM Import 用户生成的 AWS 凭证对其进行配置。

3.    在您计划运行 EC2 实例所在的 AWS 区域中创建新的 S3 存储桶

4.    使用信任策略 trust-policy.json 创建名为“vmimport”的 IAM 角色,以使 VM Import 服务承担该角色。

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": { "Service": "vmie.amazonaws.com" },
         "Action": "sts:AssumeRole",
         "Condition": {
            "StringEquals":{
               "sts:Externalid": "vmimport"
            }
         }
      }
   ]
}

5.    将名为“vmimport”的以下 IAM 策略附加到 IAM 角色,以授予权限。

注意:disk-image-file-bucket 替换为您的 S3 存储桶名称。 

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetBucketLocation",
            "s3:GetObject",
            "s3:ListBucket" 
         ],
         "Resource":[
            "arn:aws:s3:::disk-image-file-bucket",
            "arn:aws:s3:::disk-image-file-bucket/*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "ec2:ModifySnapshotAttribute",
            "ec2:CopySnapshot",
            "ec2:RegisterImage",
            "ec2:Describe*"
         ],
         "Resource":"*"
      }
   ]
}

6.    使用您选择的工具将映像上传到 S3 存储桶

7.    从客户端计算机中运行 AWS CLI 命令 import-image

8.    要检查导入任务状态,请运行 AWS CLI 命令 describe-import-image-tasks

9.    将映像导入为 AMI 后,请遵照从 AMI 启动实例的说明。