Amazon マシンイメージ (AMI) のコピーを Amazon Simple Storage Service (Amazon S3) バケットにエクスポートして、オフラインでの変更や保存を行いたいと思っています。
解決策
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
AMI を Amazon S3 バケットにエクスポートする
AMI を Amazon S3 バケットにエクスポートするには、ストアイメージタスクを作成する必要があります。
**前提条件:**コマンドを実行するために使用する AWS Identity and Access Management (IAM) プリンシパルには、適切なアクセス許可が必要です。Amazon S3 バケットポリシーでは、IAM ロールに対して AMI をバケットにアップロードする権限を許可する必要があります。S3 バケットポリシーを作成または編集するには、「Amazon S3 コンソールを使用してバケットポリシーを追加する」を参照してください。
create-store-image-task コマンドを実行して、AMI を未加工のフォーマットで Amazon S3 バケットにエクスポートします。
aws ec2 create-store-image-task \
--image-id AMI_ID \
--bucket BUCKET_NAME
**注:**AMI_ID を自分の AMI ID に、BUCKET_NAME をバケットの名前に置き換えてください。
エクスポートタスクの進行状況を確認する
エクスポートタスクが開始されたら、describe-store-image-tasks コマンドを実行してタスクのステータスを確認します。
aws ec2 describe-store-image-tasks
エクスポートされた AMI を Amazon S3 からダウンロードする
エクスポートが完了したら、Amazon S3 バケットから未加工のイメージファイルをダウンロードします。AWS CLI を使用するか、Amazon S3 コンソールからオブジェクトを手動でダウンロードします。
エクスポートされた AMI をダウンロードするには、次のコマンドを実行します。
aws s3 cp s3://my-ami-exports/ami-backups/image.bin ./image.bin
image.bin 未加工ファイルは、my-ami-exportsという名前のバケットにある ami-backups プレフィックスからエクスポートされます。
**注:**AMI を直接変更することはできません。未加工の画像ファイルをダウンロードして、変更を加える必要があります。
Amazon S3 からイメージを復元する
Amazon S3 から Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにイメージを復元するには、create-restore-image-task コマンドを実行します。
aws ec2 create-restore-image-task \
--object-key image.bin \
--bucket BUCKET_NAME \
--name "New AMI Name"
**注:**image.bin を自分のイメージ名に、BUCKET_NAME をバケットの名前に置き換えてください。
未加工のイメージファイルを変更した場合は、そのファイルを新しい AMI として復元して AWS 環境内で使用します。
ユースケースと制限については、「S3 を使用して AMI を保存および復元する」を参照してください。
関連情報
イメージタスクの作成、保存、復元タスク
AMI を Amazon EC2 で公開して使用できるようにする
Amazon S3 バケットポリシーの例