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 を起動
これで解決しました。