Amazon EBS から EC2 をブートする

2009年12月に発表になったAmazon EC2 Instances Now Can Boot from Amazon EBSを、リリースから日も経ったことなので試してみました。

既に実行されている方がいらっしゃったので参考にしながら構築。参考:suz-lab : Migrating a CentOS S3 Based AMI to an EBS Based AMI

こちらでは、既に S3 上に保管されている AMI を対象としています。

今回は、現在動いている Linux インスタンスを移行してみました。

$ ec2-bundle-vol -d /mnt -k /mnt/pk-xxxx.pem -c /mnt/cert-xxxx.pem -u xxxx -p hogehoge
$ ec2-bundle-vol -d /mnt -k /mnt/pk-xxxx.pem -c /mnt/cert-xxxx.pem -u xxxx -p hogehoge

この次に、ec2-bundle-upload をするのですが、ファイル分割される前のイメージファイル(上記例では /mnt/hogehoge)をあらかじめ用意しておいた EBS 領域に書き込みます。

$ dd if=/mnt/hogehoge of=/dev/sdX

その後、mount して、fstab の編集。

$ mkdir /vol
$ mount /dev/sdX /vol

ここで、すんなり mount できなかったら何かがおかしいはずです。

$ ec2reg -K pk-xxxx.pem -C cert-xxxx.pem -s snap-xxxx -a i386 -d xxxx -n xxxx

登録がおわったら無事 AMI が作成されているはずです。

fstab の編集を忘れると Linux 起動時に mount できず起動しません(実際にやってしまった・・・)が、復帰の手段はあります。

  • instance を stop
  • EBS 領域を開放し、別の linux instance から mount
  • fstab を編集
  • AMI に再登録
  • 新規に instance を起動

これで解決しました。

タイトルとURLをコピーしました