Amazon マシンイメージ (AMI) のコピーを仮想マシン (VM) としてエクスポートして、オンサイトの仮想化環境にデプロイしたいと考えています。
簡単な説明
AWS コマンドラインインターフェイス (AWS CLI) と VM Import/Export を使用してイメージのエクスポートタスクを開始します。このタスクでは、AMI のコピーを VM ファイルとしてエクスポートし、Amazon Simple Storage Service (Amazon S3) バケットに書き込みます。エクスポートした VM を使用して、標準化された新しいインスタンスをオンサイトの仮想化環境にデプロイします。ほとんどの AMI は、Citrix Xen、Microsoft Hyper-V、または VMware vSphere にエクスポートできます。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
前提条件
AMI のコピーをイメージとしてエクスポートする
**注:**AWS 提供 Windows AMI または Windows Marketplace の AMI から作成したインスタンスはエクスポートできません。本来 VM Import/Export、AWS Application Migration Service (MGN)、AWS Elastic Disaster Recovery (AWS DRS) 経由で持ち込みライセンス (BYOL) としてインポートした Windows インスタンスのみをエクスポートできます。
イメージのエクスポートタスクを実行するには、次の手順を実行します。
-
エクスポートする Amazon Elastic Compute Cloud (EC2) インスタンスから Amazon Elastic Block Store (Amazon EBS) 基盤の AMI を作成します。
-
AWS CLI をクライアントマシンにインストールした後、IAM ユーザーの AWS 認証情報を使用して AWS CLI を設定します。
-
エクスポートする AMI と同じ AWS リージョンに新しい Amazon S3 バケットを作成します。
-
VM Import/Export に使用するリージョンで AWS Security Token Service (AWS STS) を有効化し、必要なサービスロールを作成します。
-
AWS CLI をインストールしたクライアントマシンで export-image コマンドを実行して、イメージのエクスポートを開始します。
aws ec2 export-image --image-id `ami-1234567890abcdef0` --disk-image-format example-disk-image-format --s3-export-location S3Bucket=example-export-bucket,S3Prefix=exports/
注: ami-1234567890abcdef0 は、実際の AMI ID に置き換えます。example-disk-image-format は、実際に使用するフォーマットに置き換えます。example-export-bucket は、実際の Amazon S3 バケットの名前に置き換えます。
出力例
{
"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"
}
上記の例では、Amazon S3 キー prefixexport-ami-id.format により、エクスポートしたファイルを指定した Amazon S3 バケットに書き込みます。エクスポートするファイルにはプレフィックスを追加できます。
-
describe-export-image-tasks コマンドを実行し、イメージのエクスポートタスクのステータスを確認します。
aws ec2 describe-export-image-tasks --export-image-task-ids export-example-ami-id
注: export-example-ami-id は、実際のエクスポートタスク ID に置き換えます。
出力例
{ "ExportImageTasks": [
{
"ExportImageTaskId": "export-ami-1234567890abcdef0",
"Progress": "21",
"S3ExportLocation": {
"S3Bucket": "my-export-bucket",
"S3Prefix": "exports/"
},
"Status": "active",
"StatusMessage": "updating"
}
]
}
-
イメージのエクスポートのステータスが completed になっていることを確認します。ステータスが completed の場合は、エクスポートしたファイルは Amazon S3 バケットのオブジェクトとして準備できています。
completed ステータスの出力例:
{ "ExportImageTasks": [
{
"ExportImageTaskId": "example-export-ami-id",
"S3ExportLocation": {
"S3Bucket": "example-export-bucket",
"S3Prefix": "exports/"
},
"Status": "completed"
}
]
}
-
Amazon S3 コンソールを使用して Amazon S3 バケットにアクセスします。次に、オブジェクトをダウンロードします。
関連情報
VM Import/Export を使用して Amazon マシンイメージ (AMI) から VM を直接エクスポートする
AWS アカウントで IAM ユーザーを作成する
AWS セキュリティ認証情報
Amazon EC2 における Amazon マシンイメージ
VM Import/Export のトラブルシューティング