«前の日記(2011-11-18 (Fri)) 最新 次の日記(2011-11-29 (Tue))» 編集

雑記帳


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で起動できる。