endokのブログ

IT・プログラミングネタ

AMIとEBS、スナップショットの関係がよくわかっていなかった話

AWSの話。
AWS使っている方であれば当たり前に理解している話かと思います。

AMIとEBS

インスタンス起動時にAMIが読み込まれ、
EBSは追加データを保存する場所なのかなと思っていたのだけど、
どこからどこまでがEBSに保存されるんだ?などどいまいち腑に落ちていなかった。

で、ちゃんと調べてみたところ、

Amazon マシンイメージ(AMI)は、ソフトウェア構成(オペレーティングシステムアプリケーションサーバー、アプリケーションなど)を記録したテンプレートです。AMI から、クラウドで仮想サーバーとして実行される AMI のコピーであるインスタンスを起動します。
(http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instances-and-amis.html)

AMI には次が含まれています。

インスタンスのルートボリュームのテンプレート(オペレーティングシステムアプリケーションサーバー、アプリケーションなど)

起動許可(AMI を使用してインスタンスを起動する権限を特定の AWS アカウントに与える)

インスタンスの起動時にインスタンスにアタッチするボリュームを指定するブロックデバイスマッピング
(http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AMIs.html)

ということで、

AMI = EC2インスタンスの元となるテンプレート
EBS = インスタンス作成時にAMIから情報がコピーされる場所

というのが正しかったようだ。
つまりAMIが起動されるという考え方が間違っていて、

インスタンス作成時にAMIのテンプレート内容がEBSにコピー

その後はEBSからインスタンスが起動される

といった形になるらしい。

AMIとスナップショット

ではAMI ≒ EBSスナップショットなのか?ということで調べてみると、そのものずばりの解説記事を発見。

AWS Solutions Architect ブログ: AWSトレーニングでよくいただくご質問シリーズ - 第一回 Amazon Machine Image (AMI) とスナップショットの違い

AMI = EBSスナップショット + α(管理情報)
とのこと。

おわりに

これまでもやっととしていた部分が理解できてすっきり。
個人の範疇なので本格的に利用するのは難しいが、しばらくAWSを触ってみようと思う。

間違い、指摘等あればコメントお願いします。