AMI とは
Amazon マシンイメージ (AMI) は、AWS がサポートおよび管理するイメージで、インスタンスの起動に必要な情報を提供します。インスタンスを起動するときは、AMI を指定する必要があります。同じ設定で複数のインスタンスが必要な場合は、1 つの AMI から複数のインスタンスを起動できます。さまざまな設定のインスタンスが必要なときは、各インスタンスをそれぞれ異なる AMI から起動できます。
参考:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AMIs.html
何が含まれるのか
-
ルートボリュームテンプレート: AMIの主要部分であり、特定のOSやアプリケーション、および追加の設定を持つボリュームのスナップショットです。
-
起動許可: どのAWSアカウントがAMIを使用してインスタンスを起動できるかを制御するための設定。
-
ブロックデバイスマッピ ング: AMIから起動されるインスタンスに関連付けられるEBSボリュームやインスタンスストアボリュームを指定します。
-
アーキテクチャ: AMIが動作するインスタンスタイプ(例:x86_64、arm64)。
-
仮想化タイプ: HVM (ハードウェアアシスト仮想化) や PV (パラヴァーチャル化) など、AMIがサポートする仮想化タイプを示します。
-
カーネルおよびRAMディスクオプション: 一部のAMIで使用される場合がありますが、多くの最新AMIではこれらのオプションは必要ありません。
-
地域と可用性ゾーン: AMIは特定のAWS地域に保存され、その地域内でのみ使用できます。
-
ソフトウェア、アプリケーション、設定: AMIを作成する際にインクルードされたソフトウェアや設定も含まれます。これには、OSの設定、プリインストールされたアプリケーション、ライブラリ、ツールなどが含まれることがあります。
このような情報やリソースをまとめることで、AMIは一貫性のあるEC2インスタンスの起動を容易にし、デプロイメントやスケーリングを迅速に行うことができます。
ルートボリュームテンプレートに含まれるのは?
ルートボリュームテンプレートには、EC2インスタンスのルートボリュームの内容が含まれます。このルートボリュームは、通常、オペレーティングシステムやシステムの重要なファイル、およびインスタンスの基本的な動作に必要なファイルを含んでいます。
しかし、EC2インスタンスには追加のEBSボリュームやインスタンスストアボリュームをアタッチすることができます。これらの追加のボリュームは、AMIのルートボリュームテンプレートに自動的には含まれません。
AMIを作成する際には、ルートボリュームのスナップショットを取ることが主なタスクです。ただし、AMI作成プロセス中に、追加のEBSボリュームのスナップショットを取得して、それをAMIのブロックデバイスマッピングに含めることもできます。この方法で、インスタンスが新しいAMIから起動されるときに、追加のEBSボリュームも同時にアタッチされるように設定できます。
要するに:
- ルートボリュームテンプレートにはデフォルトでルートボリュームの内容のみが含まれます。
- 追加のEBSボリュームやインスタンスストアボリュームは、特定の手順を経てAMIに含めることができます。