nkjmkzk.net

powered by Kazuki Nakajima

EC2でEBSベースのAMIをRegion間移行する方法

EC2をしばらく使っていると、クラウドといえどRegionというのはかなりハードなパーティションであることがわかります。あるRegionで作成したSnapshot, Volume, AMI, InstanceはそのRegionでしか利用することができませんし、Region間通信にPrivateセグメントは利用できません。

S3ベースのAMIに関してはRegion間移行するためのAPIが用意されているのですが、EBSベースのAMIについてはRegion間移行を行う手段は提供されていません。つまり、例えばUS Eastで作成したAMIをAP North Eastでも使えるようにしたい場合にそれを簡単に実現するためのツールがないということです。Amazonさんの勢いからするとその内ec2-migrate-imageがEBSもサポートしそうな気もしないでもないのですが、まさに今時点でこのEBSベースのAMIをRegion間移行を手動で行う方法を見ていきたいと思います。

*AWS Management Consoleで行える作業でについては詳細な画面操作は割愛します。

移行先Regionでの作業

  • まず移行元AMIのEBSボリュームと同じサイズでボリュームを作成します。
  • なんでもいいのでLinuxインスタンスをLaunchします。ここではAmazon Linux AMI 64bitを使うこととします。
  • 先ほど作成した空のEBSボリュームをインスタンスにattachします。ここでは/dev/sdfとしてattachすることとします。
  • インスタンスにログインし、ec2-userのパスワードを設定します。
  • あと、セキュリティグループでこのインスタンスに対してSSH接続ができるように設定しておきます。

 

移行元Regionでの作業

  • 移行したいAMIのEBSボリュームのSnapshotを作成します。
  • このSnapshotからボリュームを作成します。
  • なんでもいいのでLinuxインスタンスをLaunchします。ここではAmazon Linux AMI 64bitを使うこととします。
  • このインスタンスに先程作成したボリュームをattachします。ここでは/dev/sdfとしてattachすることとします。
  • インスタンスにログインし、下記のddコマンドで/dev/sdfの情報を吸い上げながらそれをSSH経由で移行先インスタンスに送信して同じくddで書き出します。EBSボリュームのサイズにもよりますがそれなりに時間がかかります。僕が実施したときの実績では転送スピードは1.4MB/sくらいでしたのでそれを目安に計算してください。なお、screenで作業する等して、もしセッションが切れても泣かないようにしてのぞみましょう。
[ec2-user@sender]$ sudo dd if=/dev/sdf | ssh [移行先RegionのインスタンスのIP] sudo dd of=/dev/sdf

 

再び移行先Regionでの作業

  • インスタンスを停止します。
  • EBSボリュームをインスタンスからdetachします。
  • EBSボリュームのSnapshotを作成します。
  • ec2-registerコマンドで、作成したSnapshotからAMIを登録・作成します。このとき、–kernelパラメータや–ramdiskパラメータに注意してください。これらのオプションに渡す値はRegionで異なります。これはkernelイメージやramdiskイメージもRegion毎に管理されているため、別Regionのイメージを指定することはできないからです。僕はUser Provided Kernelを使用するため、今回の移行先Region (AP North East)でそれに応じたAKIとなるaki-d409a2d5を指定しました。
[nkjm@mac]$ ec2-register -n 'Oracle Linux 5.6 64bit customized by nkjm' -d 'Oracle Linux optimized for Grid Infrastructure and Oracle Database' --root-device-name /dev/sda1 -b /dev/sda1=snap-215ef049 -a x86_64 --kernel aki-d409a2d5

これでAMIの移行は完了です。

without comments

Written by 中嶋 一樹

3月 20th, 2011 at 10:18 pm

Posted in Uncategorized

Tagged with , ,

Leave a Reply