Lambda の 定期実行で、EC2のインスタンスの状態を変更したりAMIを取得したりするサービスのテストをした時に理解の整理に少し戸惑ったのが、AMIとスナップショットの違いでした。
##最初の認識
インスタンス : オンプレ環境でいうサーバー
AMI : DBとかでよく使われるスナップショットみたいなもの
EBS : オンプレ環境でいうハードディスク
こういった理解でテスティング業務を進めてました。
あまり深く考えずに「AMI ≒ スナップショット」だと思ってたんですね。
##混乱
で、なにげなくネットでAWS関連の記事を読んでたら「スナップショット」という単語がAMIとはっきり区別されて出てきていささか混乱してしまったのです。
あー違うんだって。
##調査
ググって行き着いたのは こちら のAWSトレーナーの方のブログ。
その中でトレーナーさんは書かれています。
スナップショット = 「EBS ボリュームの中のデータ」を特定のタイミングで取得しS3に保存したもの
AMI = 「EBS ボリュームの中のデータ(スナップショット) とインスタンスを構成する管理情報」を含む起動テンプレート
なるほどこれで理解できました。
AMIはスナップショットを包括して、さらにインスタンスを構成する情報も持っているんですね。
ここでいう「インスタンスを構成する管理情報」っていうのはオンプレ環境でいうOSとかミドルウェアのイメージで解釈してます。
##まとめ
そのあとこちらの記事を参考に自分の環境でAMIを使ってインスタンスの複製とかもしてみました。
AMIは偉大でした。
こりゃ楽だ。