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 にエクスポートできます。
解決策
前提条件
- VM エクスポートの制限をチェックして、VM Import/Export が AMI をサポートしていることを確認してください。
- AWS Identity and Access Management (IAM) ユーザーとしてサインインする場合は、必要な IAM ユーザーの権限があることを確認してください。
**注:**AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、必ず AWS CLI の最新バージョンを使用するようにしてください。
AMI のコピーをイメージとしてエクスポートする
イメージをエクスポートするには、次の操作を行います。
-
エクスポートする Amazon Elastic Compute Cloud (EC2) インスタンスから Amazon Elastic Block Store (Amazon EBS) -backed AMI を作成します。
Linux の場合は、「Amazon EBS-backed AMI を作成する」を参照してください。
Windows の場合は、「Create a custom Windows AMI」を参照してください。
-
AWS CLI をクライアントマシンにインストールして、IAM ユーザーの AWS 認証情報を使用して AWS CLI を設定します。
-
エクスポートする AMI と同じ AWS リージョンに新しい S3 バケットを作成します。
-
VM Import/Export に使用しているリージョンの AWS Security Token Service (AWS STS) を有効化して、必要なサービスロールを作成します。
-
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"
}
-
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"
}
]
}
-
イメージのエクスポートのステータスが [完了済み] になっていることを確認します。これは、エクスポートされたファイルが Amazon S3 バケットのオブジェクトとして準備できていることを示しています。
[完了済み] ステータスの出力例:
{
"ExportImageTasks": [
{
"ExportImageTaskId": "example-export-ami-id"
"S3ExportLocation": {
"S3Bucket": "example-export-bucket",
"S3Prefix": "exports/"
},
"Status": "completed"
}
]
}
-
Amazon S3 コンソールを使用して S3 バケットにアクセスし、オブジェクトを見つけてダウンロードします。
関連情報
Amazon マシンイメージ (AMI) から VM を直接エクスポートする
AWS アカウントでの IAM ユーザーの作成
AWS セキュリティ認証情報
Amazon マシンイメージ (AMI)
VM Import/Export のトラブルシューティング