Amazon EC2で新しく「Boot from Elastic Block Store」という機能がリリースされてる。
Amazon Web Services Blog: New Amazon EC2 Feature: Boot from Elastic Block Store
EC2とEBSの機能強化で、(今までは、S3に配置したAMIからインスタンスを起動する必要があったが)EC2のインスタンスをEBSボリュームから直接起動できるようになったみたい。
機能ガイドのPDFファイルが↓からダウンロードできる。
Booting from Amazon EBS Feature Guide : Articles & Tutorials : Amazon Web Services
Amazon Management ConsoleのAMIの一覧画面にも「EBS Images」って項目が追加されてる↓。
EBS Imageからインスタンスを起動すると↓みたいにRoot Device Typeが「ebs」になってる。
ちなみに、Volumesナビゲーションタブで確認すると先程EBSから起動したインスタンスと紐付けられているのが確認できる↓。
起動したインスタンスのファイルシステムの/dev/sda1としてマッピングされている。通常AMIからインスタンスを作成した際は、/dev/sda1は上限が10GBだけど、EBSボリュームから起動した際の/dev/sda1は、15GBとなってる。
EBSのボリューム(15GB)を全てインスタンスのルートデバイスに割り当ててるんだろう。
EBSを使ってインスタンスを起動した場合、当然インスタンス上で変更した内容は永続化されるんだろうと思ったが、EBSから起動したインスタンスを停止する場合、以下の2パターンの停止方法があるみたい。
- Terminate
こちらは通常のインスタンスの停止と同様、インスタンスを停止し、EBSボリュームも削除される。 - Stop
こちらはTerminateとは異なり、インスタンスは停止するが、EBSボリュームは削除されない。そのため、インスタンスの状態にStopという状態が追加されてる。このStop処理が可能なのはEBSからインスタンスを起動した場合のみ。Stopしている状態では当然インスタンスは稼働していないので、費用は発生しないがEBSのデータ量の課金は発生する。
環境を保持したり、永続化したいデータがあるのであれば、Stopを使うべし!と。うっかりTerminateしたらEBSが削除されるので冷や汗もんだけど。
ちなみにインスタンス上でshutdownコマンドを実行するとTerminateせずStopするのがデフォルトになってる。一応、Terminateするように設定することも可能みたいだけど、Stopの方が安心だ。
ちなみに、EBSから起動したインスタンスから新たにEBSイメージを作成することも可能で、Console上で起動しているEBSインスタンスを選択して右クリックを押下して、Create Image(EBS AMI)を選択する。
AMIの一覧で、↑で作成した新しいイメージが確認できるようになる。ただ状態がAvailableになるまでには多少時間がかかる。まぁ、AMI作成してるからだろう。
状態が、Availableになると、そのAMIからインスタンスを起動できるようになる。
その他にも、
- EBSから起動したインスタンスのスナップショットの自動登録や追加パーティンションのマウント
- インスタンスがStopしている状態で、インスタンスのkernel、ram disk、user date、EBSスナップショットのマウントなどの設定
などといった機能も存在するが、現状のAmazon Management Consoleを利用して行うことはできない。EC2のAPIやコマンドラインツールなどを利用すれば可能みたい。
具体的な方法については、EC2のドキュメントを参照となってる。
Documentation