AWSのus-west-1からap-southeast-1へAMIを移行するにあたり、良い方法はないかと試行錯誤してみたのですが、 結局スタンダードな方法ではありますが、ご紹介します。
【us-west-1】
- AMIのスナップショットからEBSボリュームを作成
AWS Management Consoleなどのツールで簡単に作成することが可能です。
- 適当なインスタンス(Linux)を立ち上げ、上記のEBSボリュームをアタッチ
こちらも適当なツールで簡単にできます。
- インスタンスにログインしてEBSボリュームの内容からイメージファイルを作成
下記コマンドにて行えます。(EBSボリューム /dev/sdb1 は10Gを想定)
# dd if=/dev/sdb1 of=suz-lab.img count=10240 bs=1M
- イメージファイルを ap-southeast-1 のインスタンス(Linux)に転送
ap-southeast-1にインスタンスを用意した後、scp などで転送します。
【ap-southeast-1】
- 適当なインスタンス(Linux)を立ち上げ、新規のEBSボリュームをアタッチ
us-west-1 からイメージファイルを scp する前に立ち上げときます。
- イメージファイルの内容をEBSボリュームにコピー
下記コマンドにて行えます。(EBSボリューム /dev/sdb1 は10Gを想定)
# dd if=suz-lab.img of=/dev/sdb1 count=10240 bs=1M
- EBSボリュームをデタッチしたスナップショットを作成
AWS Management Console などツールで簡単に作成することが可能です。
- スナップショットをAMIとして登録
下記コマンドにて行えます。( –region の指定に注意です)
# ec2reg -K /mnt/pk.pem -C /mnt/cert.pem -s snap-xxxxxxxx -a i386 --region ap-southeast-1 -d suz-lab -n suz-lab
これで、ap-southeast-1へAMIの移行が完了になります。