雑記帳
2011-11-22 (Tue) [長年日記]
■ [AWS] EBSブートのインスタンスのリージョン変更手順
ESBブートのインスタンスのリージョンを変更してみた。
ツールのインストールと設定
下記のツールを移行対象となるインスタンスにインストールする(Amazon Linux AMIの場合は元々入っているか、yumで入れられる)。
- aws-apitools-ec2
- aws-amitools-ec2
- ec2-utils
ちなみに、AMI Toolsは、Rubyとrsyncが入ってないと動かない。
イメージファイルを作成
ec2-bundle-volコマンドを使って、イメージファイルを作成する。特に指定しない場合、/tmpに作成されるので、ディスクに十分な空きがあるか注意しておく。
# ec2-bundle-vol -k ~/.ec2/ec2.key -c ~/.ec2/ec2.crt -u YOUR_ACCOUNT_NUMBER --region ap-southeast-1 -r i386
作成したイメージをマイグレートする
ec2-migrate-manifestコマンドを使って、イメージファイルを別リージョンに転送する前に、別リージョンで動作するようにマイグレートを行う。--regionには、移行先のregionを指定する。
# ec2-migrate-manifest -k ~/.ec2/ec2.key -c ~/.ec2/ec2.crt --manifest /tmp/image.manifest.xml --region ap-northeast-1
S3にアップロードする
ec2-upload-bundleコマンドを使って、マイグレートしたイメージを、移行先リージョンのS3にアップロードする。対象がS3なので、アクセスキーIDを使う。
# ec2-upload-bundle -a YOUR_ACCESS_ID -s YOUR_SECURET_ACCESS_KEY -b migrate-bucket -d /tmp -m image.manifest.xml
マイグレートしたイメージからAMIを作成する
S3にあるイメージからAMIを作成する。
# ec2-register migrate-bucket/image.manifest.xml -K ~/.ec2/ec2.key -C ~/.ec2/ec2.crt --region ap-northeast-1
作成したAMIからインスタンスを起動する
# ec2-run-instances -K ~/.ec2/ec2.key -C ~/.ec2/ec2.crt ami-b29025b3 --region ap-northeast-1
ここで起動できたインスタンスは、EBSブートのインスタンスではない。ここからEBSボリュームを作成する。
インスタンスに接続する
起動したインスタンスにsshする。この場合、もともとのサーバと同じディスクなので、既存のユーザでログインすることができる。
起動したインスタンスのイメージファイルを作成する
EBSに書き込むため、ec2-bundle-volコマンドで、バンドルボリュームを作成し、それをec2-unbundleコマンドでイメージに変換する。
# cd /tmp # ec2-bundle-vol -d /tmp -k ~/.ec2/ec2.key -c ~/.ec2/ec2.crt -u YOUR_ACCOUNT_NUMBER # ec2-unbundle -k ~/.ec2/ec2.key -m /tmp/image.manifest.xml -s /tmp/ -d /tmp/
EBSボリュームを用意する
EBSインスタンス用のEBSボリュームを作成し、アタッチする。
# ec2-create-volume --size 10 --availability-zone ap-northeast-1a --region ap-southeast-1 # ec2-attach-volume vol-48f73422 --instance i-32dda733 -d /dev/sdf1 --region ap-northeast-1
EBSボリュームにイメージを書き込む
# dd if=/tmp/image of=/dev/sdf1
データサイズに応じて、それなりに時間がかかるので注意。
EBSによるAMIの作成
まず、スナップショットを作成する。
# ec2-create-snapshot vol-48f73422 --region ap-northeast-1
すこし時間がかかるので、作成されたのを待ってAMIを登録する
# ec2-register --snapshot snap-2d2ccf46 --description="migrated image" --architecture i386 --root-device-name /dev/sda1 --name migrated image --region ap-northeast-1
できたAMIから起動すると、EBS Rootで起動できる。