oranie's blog

旧:iをgに変えると・・・なんだっけ・・・

AWS:EC2インスタンスを今のリージョンから東京リージョンに移行した手順メモ。

単純に東京以外のリージョンにあるS3内のAMIイメージ使おうとすると
「HTTP 301 (Moved Permanently) response for URL
http://hogehoge.s3.amazonaws.com:80/centos-5.5-i386.manifest.xml:
check your manifest path is correct and in the correct region.」
などリージョンが違うぞ!って怒られたり、じゃあ、このファイルを単純に東京リージョンのS3に
コピペすると
「kernelID〜うんたらかんたら」で東京リージョン用のAMIじゃねえぞ!
って怒られ起動出来なかったので、悪戦苦闘のメモです。

以下の手順はシンガポールリージョン内のインスタンスを東京に移行した手順です。
EC2インスタンスがRoot Device Type: instance-storeだった場合のみ有効だと思います。
それぞれのコマンドの使い方は省略します・・・。

# cd /mnt
※実際のコマンドはワンライナーです。
# ec2-bundle-vol -c (x509証明書) -k (x509秘密鍵) -u (12桁の口座番号ですね。) 
-d /mnt -p (作りたいインスタンスイメージ名。centos-5.5-origとか。)

今のリージョンにS3バケットを作成する。(例としてap-southeast-1内にhogehogeで作成)
そして以下のコマンドでAMIイメージをアップする。

※実際のコマンドはワンライナーです。
# ec2-upload-bundle -b hogehoge -a (S3用アクセスキー) -s (S3用プライベートキー) 
-m centos-5.5-orig.manifest.xml --location ap-southeast-1

これでリージョン内のAMIイメージアップは完了。
次にこのAMIを利用して東京に移行します。


AWSコンソール等で東京リージョンにS3バケットを作成する。名前は既にある名前だとNGなので、適当にhogehogetokyoとか。そして以下のコマンドを実行。

※実際のコマンドはワンライナーです。
# ec2-migrate-bundle -k (x509秘密鍵) -c (x509証明書) -a (S3用アクセスキー) -s (S3用プライベートキー) 
--bucket (今EC2インスタンスが起動しているリージョンのS3バケット) --manifest centos-5.5-orig.manifest.xml 
--region ap-northeast-1 --destination-bucket hogehogetokyo

これで、東京リージョン内のS3にAMIイメージがアップロードされているはずので、
EC2タブ→左側mニューのAMI→Register New AMIでS3のhogehogetokyo/centos-5.5-orig.manifest.xmlを選択すると起動できるはずです!!