Amazon マシンイメージ (AMI)

Amazon マシンイメージ (AMI) には、インスタンスの起動に必要な情報が用意されている。 インスタンスを起動するときは、AMI を指定する必要がある。同じ設定で複数のインスタンスが必要な場合は、1 つの AMI から複数のインスタンスを起動できる。 さまざまな設定のインスタンスが必要なときは、各インスタンスをそれぞれ異なる AMI から起動可能。

AMI に含まれるもの:

  • 1 つまたは複数の Amazon Elastic Block Store (Amazon EBS) スナップショット、または、instance-store-backed AMI、インスタンスのルートボリュームのテンプレート (オペレーティングシステム、アプリケーションサーバー、アプリケーションなど)
  • AWS アカウントが AMI を使用してインスタンスを起動可能にするための起動許可
  • インスタンスの起動時にインスタンスにアタッチするボリュームを指定するブロックデバイスマッピング

AMI の使用

AMI を作成し、登録したら、それを使用して新しいインスタンスを起動できる (AMI 所有者から起動許可を与えられた場合、AMI からインスタンスを起動することもできる)。AMI は同じ AWS リージョン内でコピーすることも、異なる AWS リージョンにコピーすることもできる。不要になった AMI は登録を解除できる。

独自の AMI の作成

既存の AMI からインスタンスを作成して、インスタンスをカスタマイズ (例えば、インスタンスにソフトウェアをインストール) した後に、更新した設定をカスタム AMI として保存することができる。この新しいカスタム AMI から起動されるインスタンスには、AMI の作成時に追加したカスタマイズが含まれる。

AMI の作成プロセスは、インスタンスのルートストレージデバイスにより決まる。インスタンスのルートボリュームは、Amazon Elastic Block Store (Amazon EBS) ボリュームまたはインスタンスストアボリュームのどちらかである。

AMI の購入、共有、販売

AMI を作成したら、自分だけがそれを使用できるようにプライベートとして保存したり、AWS アカウントの指定リストと共有したりできる。コミュニティで利用できるように、カスタム AMI を公開することもできる。

AMI のコピー

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

ソース AMI をコピーすると、同一ではあるが独自の識別子を使用するターゲット AMI となる。ソース AMI は、ターゲット AMI に影響を及ぼさずに変更または登録解除できる。逆の場合も同様である。

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

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

考慮事項:

  • IAM ポリシーを使用すると、AMI をコピーするためのアクセス許可をユーザーに付与したり、それを拒否したりできる。CopyImage アクション用に指定されたリソースレベルのアクセス権限は、新しい AMI にのみ適用されるソース AMI に対しては、リソースレベルのアクセス許可を付与できない。
  • AWS は元の AMI から新しい AMI に起動許可、ユーザー定義のタグ、Amazon S3 バケット許可をコピーしない。コピー操作が完了すると、起動許可、ユーザー定義のタグ、Amazon S3 バケット許可を新しい AMI に適用できる。
  • AWS Marketplace AMI、または AMI から直接または間接的に派生した AWS Marketplace AMI を使用している場合は、複数のアカウント間でコピーすることはできない。代わりに、AWS Marketplace AMI を使用して EC2 インスタンスを起動し、インスタンスから AMI を作成する。

リージョン間のコピー

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

  • 一貫性のあるグローバルなデプロイメント: 1 つのリージョンから別のリージョンに AMI をコピーすることで、一貫性のあるインスタンスを同じ AMI から別のリージョンに起動できる。
  • スケーラビリティ: ユーザーの場所にかかわらず、ユーザーのニーズに合ったグローバルアプリケーションをより簡単に設計できる。
  • パフォーマンス: アプリケーションを配布したり、アプリケーションの重要なコンポーネントをユーザーの近くに配置したりすることでパフォーマンスを向上できる。また、インスタンスの種類やその他の AWS サービスなど、リージョン固有の機能を活用することもできる。
  • 高可用性: アプリケーションを設計し、AWS リージョン全体にわたってデプロイして可用性を高めることができる。
前提条件

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

制限
  • コピー先のリージョンには、AMI の同時コピーが 100 個までという制限がある。
  • 準仮想化 (PV) AMI がサポートされていないリージョンに、PV AMI をコピーすることは不可。

アカウント間のコピー

別の AWS アカウントと AMI を共有できる。AMI の共有は AMI の所有権には影響しない。所有しているアカウントには、リージョンのストレージ料金が適用される。

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

リソースのアクセス許可

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