Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

AMI のコピー

Amazon マシンイメージ (AMI) は、AWS マネジメントコンソール、AWS Command Line Interface または SDK、または Amazon EC2 API (すべて CopyImage アクションをサポート) を使用して、AWS リージョン内または AWS リージョン間でコピーできます。Amazon EBS-backed AMI と instance store-backed AMI のいずれもコピーできます。暗号化されたスナップショットで AMI をコピーし、コピープロセス中に暗号化ステータスを変更することもできます。

ソース AMI をコピーすると、同一ではあるが独自の識別子を使用するターゲット AMI となります。Amazon EBS-backed AMI の場合は、それぞれのバックアップするスナップショットは、デフォルトでは、同一だが区別されるターゲットスナップショットにコピーされます。(唯一の例外は、スナップショットを暗号化または再暗号化するときです。) ソース AMI は、ターゲット AMI に影響を及ぼさずに変更または登録解除できます。逆の場合も同様です。

AMI のコピーには課金されません。ただし、標準のストレージ料金とデータ転送料金が適用されます。

AWS は元の AMI から新しい AMI に起動許可、ユーザー定義のタグ、Amazon S3 バケット許可をコピーしません。コピー操作が完了すると、起動許可、ユーザー定義のタグ、Amazon S3 バケット許可を新しい AMI に適用できます。

直接取得したか、共有されたかに関わらず、AWS Marketplace から取得した AMI をコピーすることはできません。代わりに AWS Marketplace AMI を使用して EC2 インスタンスを起動し、インスタンスから AMI を作成します。詳細については、「Amazon EBS-Backed Linux AMI の作成」を参照してください。

Instance Store-Backed AMI をコピーするアクセス許可

Instance Store-Backed AMI をコピーするために IAM を使用する場合、ユーザーは次の Amazon S3 へのアクセス許可が必要です。s3:CreateBuckets3:GetBucketAcls3:ListAllMyBucketss3:GetObjects3:PutObject および s3:PutObjectAcl

次のポリシー例では、指定されたバケットの AMI ソースを、指定されたリージョンにコピーできます。

{ "Version": "2012-10-17", "Statement": [ { "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-123456789012-in-us-east-1*" ] } ] }

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

リージョン間のコピー

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

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

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

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

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

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


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

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

前提条件

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

制限

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

  • 準仮想化 (PV) AMI がサポートされていないリージョンに、PV AMI をコピーすることはできません。詳細については、「Linux AMI 仮想化タイプ」を参照してください。

アカウント間のコピー

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

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

リソースのアクセス許可

AMI を別のアカウントから共有した場合、この AMI をコピーするには、関連 EBS スナップショット (Amazon EBS-backed AM; の場合) であっても関連 S3 バケット (instance-store-backed AMI の場合) であっても、コピー元の AMI の所有者から AMI をバックアップするストレージの読み取り権限を付与してもらう必要があります。共有 AMI に暗号化されたスナップショットがある場合、所有者はキーも共有する必要があります。

暗号化とコピー

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

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

注記

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

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

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

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

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

注記

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


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

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

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

AMI のコピー

AMI は次の手順でコピーできます。

前提条件

Amazon EBS スナップショットによってバックアップされた AMI を作成、または取得します。Amazon EC2 コンソールを使用して AWS が提供するさまざまな AMI を検索できます。詳細については、「Amazon EBS-Backed Linux AMI の作成」と「Linux AMI の検索」を参照してください。

コンソールを使用して AMI をコピーするには

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

  2. コンソールのナビゲーションバーから、AMI を含むリージョンを選択します。ナビゲーションペインで、[Images]、[AMIs] の順に選択し、リージョンで利用できる AMI のリストを表示します。

  3. コピーする AMI を選択して、[Actions]、[Copy AMI] の順に選択します。

  4. [AMI のコピー] ダイアログボックスで、下記の情報を指定して [AMI のコピー] を選択します。

    • 送信先リージョン: AMI をコピーするリージョン。

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

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

    • 暗号化: ターゲットスナップショットを暗号化するか、別のキーを使用して再暗号化する場合は、このフィールドを選択します。デフォルトで暗号化をデフォルトで有効にしている場合は、[Encryption (暗号化)] オプションが設定され、AMI コンソールから設定解除することはできません。

    • マスターキー: ターゲットスナップショットを暗号化するための KMS キー。

  5. コピーオペレーションが開始したことを知らせる確認ページが表示され、新しい AMI の ID が提供されます。

    コピーオペレーションの進行状況をすぐに確認するには、提供されたリンクをクリックしてください。後で進行状況を確認するには [Done] を選択し、自分の準備ができたときに、ナビゲーションバーを使用してターゲットリージョン (ある場合) を切り替え、AMI のリストから AMI を見つけます。

    ターゲット AMI の初期ステータスは pending です。ステータスが available になると、オペレーションは完了します。

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

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

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

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

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

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

保留中の AMI コピー操作を中止する

保留中の AMI のコピーは、次の手順で停止できます。

コンソールを使用して AMI のコピー操作を中止するには

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

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

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

  4. コピーを中止する AMI を選択し、[Actions]、[Deregister] を選択します。

  5. 確認を求められたら、[Continue] を選択します。

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

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