0

EC2インスタンスをS3にバックアップ&AMIを作成

順調に動いてる俺々LAMP環境のAMIを作成したい時の方法です。
EC2にS3にバックアップ用のコマンドが用意されてるのでそれを使います。
イメージを作成→S3に保存→AMIを登録といった流れになります。

まずは、AWSの管理画面で発行されたPrivate Key File(pk-*******************.pem)とX.509 certificate file(cert-*******************.pem)をローカルから俺々LAMP環境に送る。
scp -i oreore.pem *.pem root@ec2-**-**-**-**.compute-1.amazonaws.com:/mnt

ローカルでの作業はこれだけで、以下、EC2の俺々LAMP環境の/mntでの作業。
ec2-bundle-vol -d /mnt --privatekey pk-*******************.pem --cert cert-*******************.pem --user (Account Number)

-privatekeyと-certはそれぞれ先程ローカルから転送したファイルを指定する。
Account NumberはAWS管理画面のAccount Activityのページにある。
「welocome, hogehoge」の下あたりにある9152-8254-1321といった数字の羅列。

Copying / into the image file /mnt/image…となって容量によるけど15分かけて大量のimageファイルとimage.manifest.xmlを生成する。
実行中、下記のようなメッセージが表示されるけどこのディレクトリ以外のものでimageファイル作りますよ〜っということ。

Excluding:
/sys
/proc
/sys/fs/fuse/connections
/dev/pts
/proc/sys/fs/binfmt_misc
/dev
/media
/mnt
/proc
/sys
/mnt/image
/mnt/img-mnt

/mntも対象外。
あくまでシステム(OS)をバックアップしてAMIを作成するということなので、/mntは対象外。

EBSで/vol以下にマウントしてたらこれもimage作成の対象となる。
これがでか過ぎるとエラーがでるので要注意。
他に手段があるかもしれないけど、一時的にアンマウントしてimageを作成する。
umount /vol

完了したら/mnt以下に大量のimage.*というファイルが出来上がるので、今度はこれをS3に転送する。
ec2-upload-bundle -b (S3の保存するディレクトリ) -m image.manifest.xml -a (Access Key ID) -s (Secret Access Key)

S3の保存するディレクトリは/hogehoge-backup/20100112/等で指定する。
予めディレクトリを作って置くこと。
Access Key IDとSecret Access Keyはそれぞれ管理画面で確認できる。
1XPzt7fLWEKJ8jQDu0lyfdscImb0といった英数字の羅列。

あとはElasticfoxでAMIを登録。
imagesタブを選択後+ボタンをクリック
S3にimage.manifest.xmlというファイルが転送されているので、これのパスを指定する。
例) /hogehoge-backup/20100112/image.manifest.xml

これでプライベートなAMIが完成です。
cronの設定も生きたままです。これによって、新たにインスタンスを起動後、予期せぬ動きをするかもしれないので、一旦cronを止めてimageファイルを生成する方が幸せになれます。

大阪のWEB屋です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です