メニュー
VM Import/Export
ユーザーガイド

VM Import/Export を使用してイメージとして VM をインポート

VM Import/Export を使用して、仮想化環境から Amazon EC2 に仮想マシン (VM) イメージを、インスタンスの起動に使用できる Amazon Machine Image (AMI) としてインポートできます。その VM イメージは、後でインスタンスから仮想化環境にエクスポートできます。これにより、Amazon EC2 に移行されるため、IT セキュリティ、構成管理、およびコンプライアンス要件に合わせて作成した VM への投資が無駄になりません。

注記

ほとんどの VM Import のニーズに対しては、AWS Server Migration Service を使用することをお勧めします。AWS SMS はインポートプロセスを自動化し (大きな VM インフラストラクチャの移行ワークロードを軽減)、変化する VM の増分更新のサポートを追加して、インポートされた VM をすぐに使用できる Amazon マシンイメージ (AMI) に変換します。AWS SMS の使用を開始する方法については、「AWS Server Migration Service」を参照してください。

VM をその仮想化環境からエクスポートする

VM をエクスポートする準備ができたら、それを仮想化環境からエクスポートできます。イメージとして VM をインポートする場合、次の形式でディスクをインポートできます。Open Virtualization Archive (OVA)、Virtual Machine Disk (VMDK)、Virtual Hard Disk (VHD)、raw。仮想化環境によっては、通常 1 つ以上の VMDK または VHD ファイルを含む、Open Virtualization Format (OVF) にエクスポートします。

詳細については、「仮想化環境」のドキュメントを参照してください。(例:

イメージとして VM をインポートする

VM を仮想化環境からエクスポートした後に、Amazon EC2 にインポートできます。VM のエクスポート元にかかわらず、インポートプロセスは同じです。

前提条件

Amazon S3 バケットおよび vmimport という名前の IAM ロールを指定する必要があります。

Amazon S3 バケット

VM Import では、VM をインポートするリージョン内にディスクイメージを格納するための Amazon S3 バケットが必要です。次のようにバケットを作成するか、必要に応じて、既存のバケットを使用できます。

(オプション) S3 バケットを作成するには

  1. https://console.aws.amazon.com/s3/ にある Amazon S3 コンソールを開きます。

  2. [Create Bucket] を選択します。

  3. [Create a Bucket] ダイアログボックスで、以下の作業を行います。

    1. [Bucket Name] にバケットの名前を入力します。この名前は、Amazon S3 にある既存のすべてのバケット名と異なる必要があります。 リージョンによっては、バケット名にその他の制限があることがあります。詳細は、Amazon Simple Storage Service 開発者ガイドの「Bucket Restrictions and Limitations」を参照してください。

    2. [Region] に AMI のリージョンを選択します。

    3. [Create] を選択します。

VM Import サービスロール

VM Import では、Amazon S3 バケットからのディスクイメージのダウンロードなど、アカウント内で特定の操作を実行するにはロールが必要です。vmimport という名前のロールを作成し、このロールを VM Import が引き受けることを信頼関係ポリシードキュメントで指定して、IAM ポリシーをロールにアタッチする必要があります。

サービスロールを作成するには

  1. 以下のポリシーを定義した trust-policy.json という名前のファイルを作成してください。

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

    ファイルはコンピュータ上の任意の場所に保存できます。次のステップでこのファイルを指定するので、ファイルの場所を書き留めておきます。

  2. create-role コマンドを使用して、vmimport という名前のロールを作成し、そのロールに VM Import/Export のアクセス権限を付与します。trust-policy.json ファイルの場所の完全パスを指定し、それにプレフィックス file:// を付けてください。

    Copy
    aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json

    注記

    「このポリシーには無効な Json が含まれています」というエラーが発生した場合は、JSON ファイルへのパスを正しく指定していることを再度確認します。

  3. role-policy.jsondisk-image-file-bucket はディスクイメージが保存されているバケットというポリシーを定義して、 という名前のファイルを作成します。

    Copy
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:FullAccess" ], "Resource": [ "arn:aws:s3:::disk-image-file-bucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::disk-image-file-bucket/*" ] }, { "Effect": "Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*", "ec2:FullAccess" ], "Resource": "*" } ] }
  4. 次の put-role-policy コマンドを使用して、上記で作成したロールにポリシーをアタッチします。role-policy.json ファイルの場所の完全パスを指定してください。

    Copy
    aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json

IAM ロールの詳細については、IAM ユーザーガイド の「IAM ロール」を参照してください。

イメージを Amazon S3 にアップロードします。

任意のアップロードツールを使用して、Amazon S3 バケットに VM イメージファイルをアップロードします。S3 コンソールからファイルをアップロードする方法については、「Amazon S3 へのオブジェクトのアップロード」を参照してください。拡張アップローダー Java アプレットの詳細については、「拡張アップローダーの使用」を参照してください。

VM のインポート

Amazon S3 に VM イメージファイルをアップロードした後、AWS CLI を使用してイメージをインポートできます。これらのツールは、Amazon S3 バケットおよびファイルへのパス、またはパブリック Amazon S3 ファイルの URL のいずれかを受け取ります。プライベート Amazon S3 ファイルでは、署名付き GET URL が必要です。

次の例では、AWS CLI コマンド import-image を使用してインポートタスクを作成します。

例 1: OVA のインポート

Copy
aws ec2 import-image --description "Windows 2008 OVA" --license-type BYOL --disk-containers file://containers.json

次は、containers.json ファイルの例です。

Copy
[ { "Description": "Windows 2008 OVA", "Format": "ova", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "vms/my-windows-2008-vm.ova" } }]

例 2: 複数のディスクのインポート

Copy
$ C:\> aws ec2 import-image --description "Windows 2008 VMDKs" --license-type BYOL --disk-containers file://containers.json

次は、containers.json ファイルの例です。

Copy
[ { "Description": "First disk", "Format": "vmdk", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "disks/my-windows-2008-vm-disk1.vmdk" } }, { "Description": "Second disk", "Format": "vmdk", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "disks/my-windows-2008-vm-disk2.vmdk" } } ]

インポートタスクのステータスを確認する

describe-import-image-tasks コマンドを使用して、インポートタスクのステータスを返します。

次のようなステータス値があります。

  • active — インポートタスクは進行中です。

  • deleting — インポートタスクはキャンセルされています。

  • deleted — インポートタスクはキャンセルされました。

  • updating — インポートのステータスを更新しています。

  • validating — インポートしたイメージを検証中です。

  • converting — インポートしたイメージを AMI に変換しています。

  • completed — インポートタスクは完了し、AMI はすぐに使用できます。

Copy
aws ec2 describe-import-image-tasks --import-task-ids import-ami-abcd1234

(オプション) インポートタスクのキャンセル

cancel-import-task コマンドを使用して、アクティブなインポートタスクをキャンセルします。

Copy
aws ec2 cancel-import-task --import-task-id import-ami-abcd1234

次のステップ

AMI ができたら、インスタンスとして起動するか、別のリージョンにコピーできます。詳細については、次の Amazon EC2 ドキュメントのトピックを参照してください。