AWSのus-west-1からap-southeast-1へAMIを移行するにあたり、良い方法はないかと試行錯誤してみたのですが、 結局スタンダードな方法ではありますが、ご紹介します。

【us-west-1】

  1. AMIのスナップショットからEBSボリュームを作成

AWS Management Consoleなどのツールで簡単に作成することが可能です。

  1. 適当なインスタンス(Linux)を立ち上げ、上記のEBSボリュームをアタッチ

こちらも適当なツールで簡単にできます。

  1. インスタンスにログインしてEBSボリュームの内容からイメージファイルを作成

下記コマンドにて行えます。(EBSボリューム /dev/sdb1 は10Gを想定)

# dd if=/dev/sdb1 of=suz-lab.img count=10240 bs=1M
  1. イメージファイルを ap-southeast-1 のインスタンス(Linux)に転送

ap-southeast-1にインスタンスを用意した後、scp などで転送します。

【ap-southeast-1】

  1. 適当なインスタンス(Linux)を立ち上げ、新規のEBSボリュームをアタッチ

us-west-1 からイメージファイルを scp する前に立ち上げときます。

  1. イメージファイルの内容をEBSボリュームにコピー

下記コマンドにて行えます。(EBSボリューム /dev/sdb1 は10Gを想定)

# dd if=suz-lab.img of=/dev/sdb1 count=10240 bs=1M
  1. EBSボリュームをデタッチしたスナップショットを作成

AWS Management Console などツールで簡単に作成することが可能です。

  1. スナップショットを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の移行が完了になります。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら