AMI のコピー - Amazon Elastic Compute Cloud

AMI のコピー

AWS リージョン内またはリージョンをまたいで Amazon マシンイメージ (AMI) をコピーできます。Amazon EBS-backed AMI と instance store-backed AMI のいずれもコピーできます。暗号化されたスナップショットで EBS-backed AMI をコピーし、コピープロセス中に暗号化ステータスを変更することもできます。共有されている AMI をコピーすることができます。

ソース AMI をコピーすると、見た目は同じでもまったく別のターゲット AMI とも呼ばれる新しい AMI になります。ターゲット AMI にはそれ独自の AMI ID があります。ソース AMI は、ターゲット AMI に影響を及ぼさずに変更または登録解除できます。逆の場合も同様です。

EBS-backed AMI を使用すると、それぞれのバックアップするスナップショットは、同一だが区別されるターゲットスナップショットにコピーされます。AMI を新しいリージョンにコピーすると、スナップショットは完全な (増分ではない) コピーになります。暗号化されていないバッキングスナップショットを暗号化するか、新しい KMS キーに暗号化すると、スナップショットは完全な (増分ではない) コピーになります。以降の AMI のコピーオペレーションでは、バッキングスナップショットの増分コピーが作成されます。

考慮事項

  • AMI をコピーするためのアクセス許可 – IAM ポリシーを使用すると、AMI をコピーするためのアクセス許可をユーザーに付与したり、それを拒否したりできます。CopyImage アクション用に指定されたリソースレベルのアクセス権限は、新しい AMI にのみ適用されます。ソース AMI に対しては、リソースレベルのアクセス許可を付与できません。

  • 起動許可と Amazon S3 バケット許可 – AWS は、起動許可と Amazon S3 バケット許可をソース AMI から新しい AMI にコピーしません。コピー操作が完了すると、起動許可と Simple Storage Service (Amazon S3) バケット許可を新しい AMI に適用できます。

  • タグ – コピーできるのは、ソース AMI にアタッチされているユーザー定義の AMI タグだけです。システムタグ (aws: プレフィックスが付いている) や、他の AWS アカウント がアタッチしたユーザー定義タグはコピーされません。AMI をコピーするときに、ターゲット AMI とそのバックアップするスナップショットに新しいタグをアタッチできます。

コスト

AMI のコピーには課金されません。ただし、標準のストレージ料金とデータ転送料金が適用されます。EBS-backed AMI をコピーする場合は、追加の EBS スナップショットのストレージに対して料金が発生します。

IAM アクセス許可

EBS-backed AMI または instance store-backed AMI をコピーするには、次の IAM アクセス許可が必要です。

  • ec2:CopyImage – AMI をコピーするアクセス許可。EBS-backed AMI の場合、AMI のバックアップするスナップショットをコピーするアクセス許可も付与します。

  • ec2:CreateTags – ターゲット AMI にタグ付けするアクセス許可。EBS-backed AMI の場合、ターゲット AMI のバックアップするスナップショットにタグ付けするアクセス許可も付与します。

instance store-backed AMI をコピーする場合は、追加で次の IAM アクセス許可が必要です。

  • s3:CreateBucket – 新しい AMI のターゲットリージョンに S3 バケットを作成するアクセス許可

  • s3:GetBucketAcl – ソースバケットの ACL アクセス許可を読み取るアクセス許可

  • s3:ListAllMyBuckets – ターゲットリージョンで AMI の既存の S3 バケットを検出するアクセス許可

  • s3:GetObject – ソースバケットのオブジェクトを読み取るアクセス許可

  • s3:PutObject – ターゲットバケットにオブジェクトを書き込むアクセス許可

  • s3:PutObjectAcl – ターゲットバケットの新しいオブジェクトのアクセス許可を書き込むアクセス許可

EBS-backed AMI をコピーし、ターゲット AMI とスナップショットにタグ付けするための IAM ポリシーの例

次のポリシー例では、EBS-backed AMI をコピーし、ターゲット AMI とそのバックアップするスナップショットにタグを付けるアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "PermissionToCopyAllImages", "Effect": "Allow", "Action": [ "ec2:CopyImage", "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*::image/*" }] }

EBS-backed AMI をコピーし、新しいスナップショットのタグ付けを拒否する IAM ポリシーの例

ec2:CopySnapshot アクセス許可は、ec2:CopyImage アクセス許可を取得すると自動的に付与されます。これには、ターゲット AMI の新しいバックアップするスナップショットにタグ付けするアクセス許可が含まれます。新しいバックアップするスナップショットにタグ付けするアクセス許可は、明示的に拒否できます。

次のポリシー例では、EBS-backed AMI をコピーするアクセス許可を付与しますが、ターゲット AMI の新しいバックアップするスナップショットのタグ付けは拒否します。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:CopyImage", "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*::image/*" }, { "Effect": "Deny", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:::snapshot/*" } ] }

instance store-backed AMI をコピーし、ターゲット AMI にタグ付けするための IAM ポリシーの例

次のポリシー例では、指定されたソースバケットの instance store-backed AMI を指定されたリージョンにコピーし、ターゲット AMI にタグ付けするアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "PermissionToCopyAllImages", "Effect": "Allow", "Action": [ "ec2:CopyImage", "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*::image/*" }, { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": [ "arn:aws:s3:::*" ] }, { "Effect": "Allow", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ami-source-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketAcl", "s3:PutObjectAcl", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amis-for-account-in-region-hash" ] } ] }

AMI ソースバケットの Amazon リソースネーム (ARN) を検索するには、https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開き、ナビゲーションペインで [AMI] を選択し、[Source] 列でバケット名を特定します。

注記

s3:CreateBucket アクセス許可は、初めて instance store-backed AMI を個々のリージョンにコピーするときにのみ必要です。その後、リージョンですでに作成された Amazon S3 バケットは、そのリージョンにコピーする将来のすべての AMIs に保存されます。

AMI のコピー

AWS Management Console、AWS Command Line Interfaceまたは SDK、または Amazon EC2 API を使用して AMI をコピーするできます。これはらいずれも CopyImage アクションをサポートしています。

前提条件

コピーする AMI を作成または取得します。Amazon EC2 コンソールを使用すると、AWS が提供するさまざまな AMI を検索できます。詳細については、「カスタム Windows AMI を作成する」および「」「AMI の検索」を参照してください。

Console
AMI をコピーするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. コンソールのナビゲーションバーから、AMI を含むリージョンを選択します。

  3. ナビゲーションペインで、[AMI] を選択し、リージョンで利用できる AMI のリストを表示します。

  4. コピーする AMI が表示されない場合は、別のフィルターを選択します。AMI は、[自己所有][プライベートイメージ][パブリックイメージ]、および [無効化されたイメージ] でフィルタリングできます。

  5. コピーする AMI を選択して、[アクション][AMI のコピー] の順に選択します。

  6. [Copy AMI] (AMI のコピー) ページで、次の情報を指定します。

    1. [AMI copy name] (AMI コピー名) : 新しい AMI の名前。この名前にはオペレーティングシステム情報を含めることができます (この情報は AMI の詳細としては表示されません)。

    2. [AMI copy description] (AMI コピーの説明) : デフォルトでは、オリジナルからコピーを見分けられるように、ソース AMI に関する情報が説明に含まれています。この説明は必要に応じて変更できます。

    3. [Destination Region] (送信先リージョン) : AMI をコピーするリージョン。詳細については、「リージョン間のコピー」を参照してください。

    4. [Copy tags] (タグのコピー): このチェックボックスを選択すると、AMI のコピー時にユーザー定義の AMI タグが含まれます。システムタグ (aws: プレフィックスが付いている) や、他の AWS アカウント がアタッチしたユーザー定義タグはコピーされません。

    5. (EBS-backed AMI のみ) [AMI コピーの EBS スナップショットを暗号化]: ターゲットスナップショットを暗号化するか、別のキーを使用して再暗号化する場合は、このチェックボックスを選択します。デフォルトで暗号化を有効にしている場合は、[AMI コピーの EBS スナップショットを暗号化] チェックボックスが選択され、クリアできません。詳細については、「暗号化とコピー」を参照してください。

    6. (EBS-backed AMI のみ) [KMS キー]: ターゲットスナップショットを暗号化するための KMS キー。

    7. [タグ]: 新しい AMI と新しいスナップショットに同じタグを付けることも、異なるタグでタグ付けすることもできます。

      • 新しい AMI と新しいスナップショットに同じタグを付けるには、[イメージとスナップショットに対し一緒にタグを付けます] を選択します。新しい AMI と作成されるすべてのスナップショットには、同じタグが適用されます。

      • 新しい AMI と新しいスナップショットに異なるタグを付けるには、[イメージとスナップショットに対し個別にタグを付けます] を選択します。新しい AMI と作成されるスナップショットには、異なるタグが適用されます。ただし、作成されるすべての新しいスナップショットには同じタグが付けられることに注意してください。新しいそれぞれのスナップショットに異なるタグを付けることはできません。

      (オプション) タグを追加するには、[Add tag] を選択し、そのタグのキーと値を入力します。各タグについて、これを繰り返します。

    8. AMI をコピーする準備ができたら、[AMI のコピー] を選択します。

      新しい AMI の初期ステータスは Pending です。ステータスが Available になると、AMI のコピー操作は完了です。

AWS CLI
AWS CLI を使用して AMI をコピーするには

AMI は、copy-image コマンドを使用してコピーできます。コピー元リージョンおよび送信先リージョンの両方を指定する必要があります。コピー元のリージョンは、--source-region パラメータを使用して指定します。--region パラメータまたは環境変数を使用して送信先リージョンを指定できます。詳細については、「AWS コマンドラインインターフェイスの設定」を参照してください。

(EBS-backed AMI のみ) コピー時にターゲットスナップショットを暗号化する場合は、--encrypted および --kms-key-id の追加のパラメータを指定する必要があります。

コマンドの例については、「AWS CLI コマンドリファレンス」の「copy-image」の「」を参照してください。

PowerShell
Tools for Windows PowerShell を使用して AMI をコピーするには

AMI は、Copy-EC2Image コマンドを使用してコピーできます。コピー元リージョンおよび送信先リージョンの両方を指定する必要があります。コピー元のリージョンは、-SourceRegion パラメータを使用して指定します。-Region パラメータまたは Set-AWSDefaultRegion コマンドを使用して送信先リージョンを指定できます。詳細については、「AWS リージョンの指定」を参照してください。

(EBS-backed AMI のみ) コピー時にターゲットスナップショットを暗号化する場合は、-Encrypted および -KmsKeyId の追加のパラメータを指定する必要があります。

保留中の AMI コピーオペレーションの中止

保留中の AMI のコピーは、AWS Management Console またはコマンドラインを使用して停止することができます。

Console
コンソールを使用して AMI のコピー操作を中止するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションバーのリージョンセレクターから対象のリージョンを選択します。

  3. ナビゲーションペインで [AMIs] を選択します。

  4. コピーを中止する AMI を選択し、[アクション][AMI を登録解除] を選択します。

  5. 確認を求めるメッセージが表示されたら、[Deregister AMI] (AMI の登録解除) を選択します。

Command line
コマンドラインを使用して AMI コピー操作を中止するには

次のいずれかのコマンドを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセスを参照してください。

リージョン間のコピー

地理的に分散したリージョンに AMI をコピーすると、次のような利点があります。

  • 一貫性のあるグローバルなデプロイメント: 1 つのリージョンから別のリージョンに AMI をコピーすることで、一貫性のあるインスタンスを同じ AMI から別のリージョンに起動できます。

  • スケーラビリティ: ユーザーの場所にかかわらず、ユーザーのニーズに合ったグローバルアプリケーションをより簡単に設計できます。

  • パフォーマンス: アプリケーションを配布したり、アプリケーションの重要なコンポーネントをユーザーの近くに配置したりすることでパフォーマンスを向上できます。また、インスタンスの種類やその他の AWS サービスなど、リージョン固有の機能を活用することもできます。

  • 高可用性: アプリケーションを設計し、AWS リージョン全体にわたってデプロイして可用性を高めることができます。

次の図は、ソース AMI と異なるリージョンにある 2 つのコピーされた AMI、およびそこから起動される EC2 インスタンスの関係を示します。AMI からインスタンスを起動すると、AMI が存在する同じリージョンに存在します。ソース AMI を変更し、それらの変更をターゲットリージョンの AMIs に反映させる場合、ソース AMI をターゲットリージョンに再度コピーする必要があります。


				別のリージョンにコピーされた AMI

instance store-backed AMI を最初にリージョンにコピーするときに、そのリージョンにコピーされた AMIs に Amazon S3 バケットを作成します。そのリージョンにコピーするすべての Instance Store-Backed AMIs が、このバケットに保存されます。バケット名の形式は次のとおりです: amis-for-アカウント-in-リージョン-ハッシュ 例: amis-for-123456789012-in-us-east-2-yhjmxvp6

前提条件

AMI をコピーする前に、ソース AMI のすべてのコンテンツが、異なるリージョンでの実行をサポートするように更新されていることを確認する必要があります。例えば、データベース接続文字列や同様のアプリケーション設定データが、適切なリソースを指すように更新する必要があります。それ以外の場合、対象のリージョンの新しい AMI から起動したインスタンスは元のリージョンのリソースをまだ使用している可能性があり、それによりパフォーマンスとコストに影響が及ぶことがあります。

制限事項
  • コピー先のリージョンには、AMI の同時コピーが 100 個までという制限があります。

アカウント間のコピー

別の AWS アカウントと AMI を共有できます。AMI の共有は AMI の所有権には影響しません。所有しているアカウントには、リージョンのストレージ料金が適用されます。詳細については、特定の AWS アカウントとの AMI の共有 を参照してください。

自分のアカウントと共有された AMI をコピーした場合、アカウントのコピー先の AMI の所有者は自分になります。コピー元の AMI の所有者には、Amazon EBS または Amazon S3 の標準転送料金が課金され、コピー先の AMI の所有者には、コピー先リージョンのストレージ料金が課金されます。

リソースのアクセス許可

AMI を別のアカウントから共有した場合、この AMI をコピーするには、ソース AMI の所有者がこの AMI をバックアップするストレージの読み取り許可を付与する必要があります。ストレージは、関連 EBS スナップショット (Amazon EBS-backed AMI の場合) か、関連 S3 バケット (instance store-backed AMI の場合) のどちらかです。共有 AMI に暗号化されたスナップショットがある場合、所有者はキーも共有する必要があります。リソースのアクセス許可の付与についての詳細は、EBS スナップショットの場合は、「Amazon EBS ユーザーガイド」の「Amazon EBS スナップショットの共有」を、S3 バケットの場合は、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 での Identity and Access Management」を参照してください。

注記

AMI をタグ付きでコピーするには、ソース AMI の起動許可が必要です。

暗号化とコピー

次の表は、各種 AMI コピーのシナリオにおける暗号化サポートを示します。暗号化されたスナップショットを生成するために暗号化されていないスナップショットをコピーすることはできますが、暗号化されていないスナップショットを生成するために暗号化されたスナップショットをコピーすることはできません。

シナリオ 説明 サポート対象
1 非暗号化から非暗号化 はい
2 暗号化から暗号化 はい
3 非暗号化から暗号化 はい
4 暗号化から非暗号化 いいえ
注記

CopyImage アクション中の暗号化は Amazon EBS-backed AMIs にのみ適用されます。Instance Store-Backed AMI はスナップショットに依存しないため、コピーを使用して暗号化ステータスを変更することはできません。

デフォルト (暗号化パラメータを指定しない) では、AMI をバックアップするスナップショットは元の暗号化ステータスとともにコピーされます。暗号化されていないスナップショットにバックアップされた AMI をコピーすると、やはり暗号化されていない同一のターゲットスナップショットになります。暗号化されたスナップショットにバックアップされている AMI をコピーすると、コピー先でもスナップショットが同じ AWS KMS キーで暗号化されます。複数のスナップショットにバックアップされた AMI をコピーした場合、デフォルトでは、元の暗号化ステータスが各ターゲットスナップショットで維持されます。

AMI をコピー中に暗号化パラメータを指定した場合、バックアップスナップショットを暗号化または再暗号化できます。以下の例は、ターゲット AMI の暗号化状態を変更するために CopyImage アクションに暗号化パラメータを提供する、デフォルトではないケースを示しています。

暗号化されていないソース AMI の暗号化されたターゲット AMI へのコピー

このシナリオでは、暗号化されていないルートスナップショットでバックアップされた AMI は、暗号化されたルートスナップショットを持つ AMI にコピーされます。CopyImage アクションは、カスタマーマネージド型キーなど、2 つの暗号化パラメータで呼び出されます。その結果、ルートスナップショットの暗号化ステータスが変更され、ターゲット AMI はソーススナップショットと同じデータを含むルートスナップショットにバックアップされますが、指定されたキーを使用して暗号化されます。両方の AMI でスナップショットのストレージコストと、いずれかの AMI から起動するインスタンスの料金が発生します。

注記

デフォルトで暗号化を有効にすると、AMI 内のすべてのスナップショットで Encrypted パラメータを true に設定したのと同じ効果があります。


		AMI をコピーし、スナップショットをオンザフライで暗号化

Encrypted パラメータを設定すると、このインスタンスの単一のスナップショットが暗号化されます。KmsKeyId パラメータを指定しない場合は、デフォルトのカスタマーマネージド型キーを使用して、スナップショットのコピーが暗号化されます。

暗号化されたスナップショットを持つ AMIs のコピーの詳細については、「EBS-backed AMI での暗号化の利用」を参照してください。