EC2のEBSボリュームからインスタンスを起動できるようになりました

記事タイトルとURLをコピーする

ついにAmazon EBSボリュームからAmazon EC2のインスタンスを起動することができるようになりました。

Amazon EC2 Instances Now Can Boot from Amazon EBS

これは、新たに用意された「EBS Images」という種類のAMIでインスタンスを起動すると、自動的にEBSボリュームの作成・アタッチを行ってくれ、ルートデバイスがEBSボリュームという状態でOSが起動するというものです。AmazonからはEBS Imagesとして、Fedora 8、Windows Server 2003などのイメージが提供されています。

EBSから起動したインスタンスは従来の終了(terminate)以外に、ストップ(stop)とスタート(start)という操作ができるようになっています。stop の場合も、一時停止ではなく通常のシャットダウン処理は行われるようで、インスタンスに接続されているすべてのEBSボリュームが接続状態のままに保たれて、後からインスタンスの再起動を行うことができる、というところがポイントのようです。

既にAWS ConsoleではEBS Imagesを利用したインスタンスの起動ができるようになっていますが、現時点では各種ドキュメントがアップデートされていないようです。唯一、Boot from Amazon EBS Getting Started Guide(PDF)というドキュメントがリリース文からリンクされていましたので、そこから気になったところを抜粋してみました。EC2をお使いの方は参考にしてみてください。

2009年12月8日追記:ドキュメントもアップデートされました。また、Amazon EC2 API ToolsAmazon EC2 AMI Toolsも更新されていますので、必要に応じてインストールしておきましょう)

今回のアップデートによる変化

  • インスタンスの起動ディスクの上限がEBSボリュームの上限である1TBになった(従来は10GB)
  • インスタンスの任意のタイミングでストップおよびスタートできるようになった。インスタンスをストップさせると裏側ではインスタンスのシャットダウンとハードウェアリソースの開放が行われるが、関連するEBSボリュームは維持(保持)される。インスタンスをスタートさせると新しいハードウェアリソース上でインスタンスが起動され、稼働中の状態に復元される
  •  `CreateImage`オペレーションが追加され、稼働中のインスタンス上からAMIの作成と登録が一度に行えるようになった
  • ブロックデバイスがインスタンス上にどのようにあらわれるかを完全に制御できるようになった
  • AMIが任意の数のEBSスナップショットを参照できるようになった。インスタンス起動時には、スナップショット毎に対応するEBSボリュームが自動的に作成されてブート前にアタッチされる
  • インスタンスに、API経由でのインスタンス終了を防止するフラグなどが追加された。
  • AMIに説明文を付けられるようになった(後からの変更も可能)

注意点

  • デフォルトでは、EBSボリュームから起動したインスタンスにはインスタンス終了時に消去される従来のローカルストレージは接続されない。自分でアタッチすることはできる
  • インスタンス内から自身をシャットダウンすると、従来のインスタンス終了ではなくストップ(stop)状態となる
  • インスタンスのストップとスタートはEBSボリュームから起動した場合にのみ有効。S3上のイメージから起動したインスタンスでは使えない
  • インスタンスをストップ・スタートした場合、IPアドレスは変化する。変化させたくない場合はElastic IPアドレスを割り当てておく必要がある
  • インスタンスがストップしている間は稼働時間に対する課金は行われない。ただし、1時間以内に複数回のストップとスタートをくり返した場合はスタート状態になる度に課金が行われる。また、インスタンスに接続されているすべてのEBSボリュームについては、通常のAmazon EBSと同様の課金が行われる
  • 従来の「稼働できるインスタンス数の上限」に加えて、新たに「所有できる全インスタンス数の上限」が設けられた。これは、running や stop など terminated 以外のすべての状態のインスタンスが対象で、稼働できるインスタンス数の上限の2倍となっている

よいところ

  • ストップしたインスタンスに接続されていたEBSボリュームは通常のEBSボリュームと同様に操作が可能で、デタッチして他のインスタンスにアタッチしてファイルシステムのリペアやソフトウェアアップデートなどを行ったりできる
  • S3上のAMIはイメージ容量×作成した数の課金がされるが、EBSボリュームから起動するAMIは初回だけイメージ容量分を消費しそれ以降は(スナップショットのように)差分だけが保持されていくので安価
  • EBS ImagesなAMIを他のAWSアカウントと共有する場合に、明示的に共有しておく必要があるのはAMIだけ。AMIが参照しているEBSスナップショットへのアクセス権は、インスタンスの起動時に必要に応じて自動的に与えられる