目的
EBSタイプのサーバを、AMIイメージにして複製する。複数作ってロードバランスなど。
活用は色々ありそうなので記載しておく。
EBSタイプ AMIの作成方法
手順
コマンドラインで
バンドルイメージコマンドで、作成
バンドルイメージは分割されるので、再統合処理
AWS上で
展開するEBSブロックを作成
サーバで
EBSをアタッチ
アタッチしたEBSに対してデータの流し込みをする。
展開したディスクからスナップショットを作成
スナップショットから起動する。
イメージを取る。
ec2-bundle-vol --privatekey pk-XXXXXXXXX.pem --cert cert-XXXXXXXXXX.pem -d /mnt --user XXXXXXXXXXX(AWSコンソールから確認できる)
作成されたバンドルイメージを一つのファイルにまとめる。
ec2-unbundle -k ~pk-XXXXXXXXX.pem -m /mnt/image.manifest.xml -s /mnt/ -d /mnt/
8.6GB利用のため 10GB必要だった。
ec2-create-volume --private-key pk-XXXXXXXXX.pem --cert cert-XXXXXXXXXX.pem --size 10 --region ap-northeast-1 -z ap-northeast-1a -U https://ec2.ap-northeast-1.amazonaws.com
東京リージョンを指定。
返答 出来たボリューム名を控える。
VOLUME vol-XXXXXXXX 10 ap-northeast-1a creating 2011-04-26T10:08:45+0000
インスタンスIDの確認
# ec2-metadata -i
instance-id: i-1234b12345
EBSディスクの接続(アタッチ)
さきほど確認したインスタンスIDと、EBSボリューム名を利用する。
ec2-attach-volume vol-XXXXXXXX --instance i-1234b12345 --device /dev/sdh
mkdir /mnt/ebs
yes | mkfs -t ext3 /dev/xvdh
イメージの流し込み
まとめた、マウントイメージを、DDで流し込む
dd if=/mnt/image of=/dev/xvdh
(XEN)の仕様らしいけどXがついてしまうようだ。
mount /dev/xvdh /mnt/ebs/
df -k にてマウントを確認する。
中身の確認
ファイルが作成されているか確認する。
ls -la /mnt/ebs
さきほどのEBSのボリューム名を指定して、スナップショットの作成を行う。
ヴォリューム名称の確認
ec2-create-snapshot -K pk-XXXXXXXXX.pem -C cert-XXXXXXXXXX.pem \
vol-XXXXXXXX --description "AP-tokyo webfront development 20110426-1"
出力結果
SNAPSHOT snap-XXXXXXXX vol-XXXXXXXX pending 2011-04-26T11:28:02+0000 369479053063 10 AP-tokyo webfront development 20110426-1
しばらくして出来たスナップショットから、AMIイメージを作成する。
スナップショットID の確認
ec2-register -K pk-XXXXXXXXX.pem -C cert-XXXXXXXXXX.pem \
--name "media-test-server EBS-20110426" --snapshot snap-XXXXXXXX --description=" WebFront AP-tokyo EBS" \
--architecture x86_64 --root-device-name /dev/sda1
まだできてないと怒られる
Client.IncorrectInstanceState: Snapshot 'snap-XXXXXXXX is not 'completed'
今日はここまで。