日頃あまり意識していなかったのですが、AMIとスナップショットの違いについて調べました。
当初の理解
- スナップショットは特定のEC2のデータを 全て どこかにコピーしたもの
- AMIはEC2インスタンスを作る時に選択できるOSイメージ
疑問
- スナップショットが特定のEC2のデータを 全て 含むものだとしたら、スナップショットメニューからAMIを作成する際に何故カーネルIDを指定する必要があるのか
- EC2インスタンスからAMIを作成する場合と、スナップショットからAMIを作る場合で入力しなければいけない項目に違いがあるのは何故か
- スナップショットからAMIを作ると、スナップショットが消せないのは何故か
調べてみた
AMI = インスタンスを構成するメタデータ + スナップショット
スナップショット = (ルートデバイスストレージのデータ + ユーザデータ)を、S3にバックアップしたもの
結論
- スナップショットが特定のEC2のデータを 全て 含むものだとしたら、スナップショットメニューからAMIを作成する際に何故カーネルIDを指定する必要があるのか
- スナップショットには「インスタンスを構成するメタデータ」が含まれていないため、EC2インスタンスのデータを 全て 含むわけではない
- EC2インスタンスからAMIを作成する場合と、スナップショットからAMIを作る場合で入力しなければいけない項目に違いがあるのは何故か
- スナップショットには「インスタンスを構成するメタデータ」が含まれていないため。
- スナップショットからAMIを作ると、スナップショットが消せないのは何故か
- AMIはスナップショットに依存するため。
さらなる疑問
- 何故スナップショットにメタデータが含まれないのか
- メタデータってどんな情報か
- スナップショットからAMIを作成する時にカーネルIDを指定できるようにしている理由
- スナップショットはS3にバックアップするということだが、どのバケットにあるのか
このあたりは別の機会に調べてみようかと思います。