Import máy ảo vào AWS

Ở bước này, bạn sẽ tạo một IAM role có tên vmimport và import máy ảo đã được tải lên Amazon S3 bucket ở bước trước thành Amazon Machine Image (AMI). Toàn bộ quá trình sẽ được thực hiện bằng AWS Command Line Interface (CLI).

Tạo IAM role vmimport

Trước khi thực hiện việc import máy ảo vào AWS, bạn cần tạo IAM role cần thiết.

  1. Truy cập vào AWS IAM console.
  2. Trong thanh điều hướng, chọn Roles.

IAM Console

  1. Nếu chưa có role vmimport, tiến hành tạo role này.
  2. Tạo một file có tên trust-policy.json để cho phép dịch vụ VM Import/Export assume role vmimport:
{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": { "Service": "vmie.amazonaws.com" },
         "Action": "sts:AssumeRole",
         "Condition": {
            "StringEquals":{
               "sts:Externalid": "vmimport"
            }
         }
      }
   ]
}
  1. Sử dụng AWS CLI command create-role để tạo IAM role vmimport và gán trust policy:
aws iam create-role --role-name vmimport --assume-role-policy-document "file://E:\trust-policy.json"
  1. Kiểm tra role đã tạo trong IAM console.

  2. Xem Trust relationships của role.

  3. Tạo file role-policy.json chứa các IAM policy cần thiết:

{
   "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": [
            "s3:GetBucketLocation",
            "s3:GetObject",
            "s3:ListBucket",
            "s3:PutObject",
            "s3:GetBucketAcl"
         ],
         "Resource": [
            "arn:aws:s3:::export-bucket",
            "arn:aws:s3:::export-bucket/*"
         ]
      },
      {
         "Effect": "Allow",
         "Action": [
            "ec2:ModifySnapshotAttribute",
            "ec2:CopySnapshot",
            "ec2:RegisterImage",
            "ec2:Describe*"
         ],
         "Resource": "*"
      }
   ]
}
  1. Gán policy vào role vmimport sử dụng AWS CLI command put-role-policy:
aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://E:\role-policy.json"
  1. Kiểm tra permissions của role trong IAM console.

Import máy ảo thành AMI

Sử dụng AWS CLI để import máy ảo thành AMI:

Đảm bảo máy ảo on-premise không sử dụng UEFI boot vì Amazon EC2 không hỗ trợ.

Đối với máy ảo Linux, kiểm tra phiên bản kernel được AWS hỗ trợ. Tham khảo OS requirements.

  1. Chạy AWS CLI command ec2 import-image:
aws ec2 import-image --description "VM Image" --disk-containers Format=vhdx,UserBucket="{S3Bucket=import-bucket-2021,S3Key=Ubuntu.vhdx}"
  1. Quá trình import có thể mất 5-10 phút tùy kích thước máy ảo.

  2. Sau khi hoàn thành, AMI mới sẽ xuất hiện trong danh sách AMIs với AMI name là task ID.

  3. Kiểm tra để đảm bảo Amazon EBS volume không bị encrypted.

 VMWare Workstation