まずは、公開鍵と証明証をEC2インスタンスにコピー。
$scp -i id_rsa-gsg-keypair pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem root@domU-12-34-31-00-00-05.usma1.compute.amazonaws.com:/mnt
そして、バックアップ出来ているかの確認の為に、適当にファイルを作りましょう。
#touch /var/www/hoge.html
EC2インスタンスの保存。結構な時間が掛かります。
uの部分がAccount Numberです。忘れたらActivity summaryのページにログインしましょう。使用料金の一番上の所に載っています。
※下の例は、Amazonのスターティングガイドに載っているサンプルIDです。自分のIDは、外には晒さないようにしましょう。
# ec2-bundle-vol -d /mnt -k /mnt/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem -c /mnt/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem -u 495219933132 -r i386 Copying / into the image file /mnt/image.img... Excluding: /sys /dev/shm /proc /dev/pts /proc/sys/fs/binfmt_misc /dev /media /mnt /proc /sys /tmp/image.img /mnt/img-mnt 1+0 records in 1+0 records out mke2fs 1.38 (30-Jun-2005) warning: 256 blocks unused. Splitting /mnt/image.gz.crypt... Created image.part.00 Created image.part.01 Created image.part.02 Created image.part.03 ... Created image.part.22 Created image.part.23 Generating digests for each part... Digests generated. Creating bundle manifest... Bundle Volume complete.
結構時間がかかります。数十分は待ちましょう
S3にアップロードします。
aがアクセスIDです。sがアクセス秘密IDです。共にAWS Access Identifiersにログインすると確認できます。bはバケットの名前です。自分が認識出来れば、何でも良いです。例えばバックアップした日付にしたければ、-b `date +%Y%m%d`といった感じで出来ます。しかし、バケット名はAmazon内でのドメインのように存在なので、一つとって同じバケット名を使い続けるのがよいでしょう。
# ec2-upload-bundle -b <your-s3-bucket> -m /mnt/image.manifest.xml -a <aws-access-key-id> -s <aws-secret-access-key> Encrypting bundle manifest... Completed encryption. Uploading encrypted manifest... Uploaded encrypted manifest to https://s3.amazonaws.com/<your-s3-bucket>/image.manifest.xml. Uploading bundled AMI parts to https://s3.amazonaws.com/<your-s3-bucket>/image... Uploaded image.part.00 to https://s3.amazonaws.com/<your-s3-bucket>/image.part.00. Uploaded image.part.01 to https://s3.amazonaws.com/<your-s3-bucket>/image.part.01. Uploaded image.part.02 to https://s3.amazonaws.com/<your-s3-bucket>/image.part.02. Uploaded image.part.03 to https://s3.amazonaws.com/<your-s3-bucket>/image.part.03. ... Uploaded image.part.23 to https://s3.amazonaws.com/<your-s3-bucket>/image.part.23. Uploaded image.part.24 to https://s3.amazonaws.com/<your-s3-bucket>/image.part.24. Upload Bundle complete.
S3にアップロードしたイメージをAMIとして登録します。これにより使用可能なインスタンスのリストに出て来るようになります。
ローカルのPCから
PROMPT> ec2-register <your-s3-bucket>/image.manifest.xml IMAGE ami-5bae4b32
正常に終了したら、起動中のインスタンスを停止しましょう。
ec2-terminate-instances i-06e7166f
再度、使用可能なインスタンスの一覧を見てみましょう
先ほどのインスタンスが追加されているので、起動。ログイン
$ec2-describe-images -o self -o amazon IMAGE ami-5bae4b32 ec2-20080127/image.manifest.xml 021010746129 available private $ ec2-run-instances ami-5bae4b32 -k gsg-keypair $ssh -i id_rsa-gsg-keypair root@****.z-1.compute-1.amazonaws.com #ls /var/www/htdocs index.html
ちゃんと出来ています。
注意点としては、バックアップの対象は/dev/sda1のみということ。データ等は、/dev/sda2に置く事が多いと思いますが、その場合別途S3に保存しておく必要があります。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 9.9G 981M 8.4G 11% / /dev/sda2 147G 189M 140G 1% /mnt