share facebook facebook twitter menu hatena pocket slack

AMIを別のリージョンに移行する方法

鈴木 宏康

WRITTEN BY 鈴木 宏康

以前にも、us-west-1のAMI(EBS)をap-southeast-1にて同じような内容を紹介していますが、AWS環境もいろいろなアップデートがされているので、再度下記にまとめておきます。

(1) 移行元リージョンでの作業
(1-1) Amazon Linuxを立ち上げ、ログインします。
尚、ログインはec2-userなので注意が必要です。
(1-2) rootにスイッチします。

$ sudo su -

(1-3) 作業用EBSの作成とアタッチをします。
15G(適宜必要なサイズ)でEBSを作成し、/dev/sdf1にアタッチします。
(1-4)ファイルシステムを作成してマウントします。

# mkfs.ext4 /dev/xvdf1
# mount -t ext4 /dev/xvdf1 /mnt/

(1-5) AMIのスナップショットからEBSを作成しアタッチします。
該当するスナップショットから6G(スナップショットのサイズ)で作成して/dev/sdf2にアタッチします。
(1-6) AMIのルートディスクイメージをファイルに出力し、圧縮します。

# dd if=/dev/xvdf2 of=/mnt/suz-lab.img
# bzip2 /mnt/suz-lab.img

(2) 移行先リージョンでの作業
(2-1) Amazon Linuxを立ち上げログインします。
尚、ログインはec2-userなので注意が必要です。
(2-2) rootにスイッチします。

$ sudo su -

(2-3) 作業用EBSの作成とアタッチをします。
15G(適宜必要なサイズ)でEBSを作成し、/dev/sdf1にアタッチします。
(2-4)ファイルシステムを作成してマウントします。

# mkfs.ext4 /dev/xvdf1
# mount -t ext4 /dev/xvdf1 /mnt/

(3) 移行元リージョンのインスタンスから移行先リージョンのインスタンスにAMIのルートディクスイメージファイルを転送
(4) 再び移行先リージョンでの作業
(4-1) AMIのルートディスクイメージ用EBSを作成しアタッチします。
6G(ルートディスクイメージのサイズ)でEBSを作成し、/dev/sdf2にアタッチします。
(4-2) 転送されたルートディスクイメージファイルを解凍しEBSへ書き込みます。

# bzip2 -d /mnt/suz-lab.img.bz2
# dd if=/mnt/suz-lab.img of=/dev/xvdf2

(5) ルートディスクイメージのスナップショットをAMIとして登録

require_once("/opt/aws/php/sdk.class.php");
define("AWS_KEY"       , "AAAAAAAA");
define("AWS_SECRET_KEY", "SSSSSSSS");
$ec2 = new AmazonEC2();
$ec2->set_region(AmazonEC2::REGION_US_E1);
$response = $ec2->register_image(array(
    "Name"               => "suz-lab_ebs_centos-core-i386-6.0.1",
    "Architecture"       => "i386",
    "KernelId"           => "aki-805ea7e9",
    "RootDeviceName"     => "/dev/sda1",
    "BlockDeviceMapping" => array(
        array(
            "DeviceName" => "/dev/sda1",
            "Ebs"        => array(
                "SnapshotId" => "snap-078cd466"
            )
        )
    )
));
var_dump($response);

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

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。