nkjmkzk.net

powered by Kazuki Nakajima

EC2においてEBS Snapshotでバックアップを取得しそれをリカバリする方法

EC2のインスタンスにはS3(Simple Storage Service)をルートデバイスにするタイプと、EBS(Elastic Block Storage)をルートデバイスにする2種類が存在します。S3の方はインスタンスを止めると消滅してしまい、EBSの方はインスタンスを止めても維持されます。

今回はEBSをルートデバイスとするインスタンスで、EBS Snapshotを使ってインスタンスをごっそりバックアップし、それをリカバリする手順をみていきます。AWS Management Console (Web UI) から実施できる作業もあるのですが、今回はすべてコマンドラインで攻めてみます。

*コマンドライン環境をセットアップしていない方はこちらを。
AWS EC2のコマンドラインインターフェースを使う準備

まずはSnapshotの作成からです。インスタンスに割り当てられているEBSのSnapshotを作成します。Snapshotはインスタンス起動中でも作成できますが、クリーンな状態でとりたい場合はインスタンスを停止してから作成するのが確実です。

[nkjm@mac]$ ec2-create-snapshot -d '2011_03_15 of nkjmkzk.net' vol-42aaf52a
* -d: 作成されるスナップショットの説明
* vol-42aaf52a: EBSのVolume ID(ec2-describe-instancesで確認)

次に今作成したSnapshotからAMIを作成します。AMI自体はインスタンスではなく、インスタンスを作るためのテンプレートのようなものです。

[nkjm@mac]$ ec2-register -n nkjmkzk.net-template -d 'template of nkjmkzk.net' --root-device-name /dev/sda1 -b /dev/sda1=snap-be86f0d2 -a x86_64 --kernel aki-23d43a4a --ramdisk ari-25d43a4c
* -n: 作成されるAMIの名前
* -d: 作成されるAMIの説明
* --root-device-name: インスタンスからみたルートデバイス
* -b: ルートデバイスとそれに対応するSnapshotのID(ec2-describe-snapshotsで確認)
* -a: アーキテクチャ
* --ramdisk: ramdiskのID(元のインスタンスで確認)
* --kernel: kernelのID(元のインスタンスで確認)

次に今作成したAMIからインスタンスを作成&起動します。

[nkjm@mac]$ ec2-run-instances ami-fe39cb97 -t t1.micro -k nkjmkey --ramdisk ari-24d43a4c --kernel aki-23d43a4a
* ami-fe39cb97: AMIのID(ec2-describe-imagesで確認)
* -t: インスタンスタイプ
* -k: keypair

そしてElastic IPを今作成したインスタンスに紐付けます。

[nkjm@mac]$ ec2-associate-address 50.17.222.51 -i i-f0ce229f
* 50.17.222.51: 発行済みのElastic IP
* -i: 紐づけるインスタンスのID(ec2-describe-instancesで確認)

これでリカバリ完了です。

参考

with one comment

Written by 中嶋 一樹

3月 15th, 2011 at 5:21 pm

Posted in Uncategorized

Tagged with , ,

One Response to 'EC2においてEBS Snapshotでバックアップを取得しそれをリカバリする方法'

Subscribe to comments with RSS or TrackBack to 'EC2においてEBS Snapshotでバックアップを取得しそれをリカバリする方法'.

  1. [...] 実際の手順はこのページ「EC2においてEBS Snapshotでバックアップを取得しそれをリカバリする方法」がスゴくわかりやすかったです。 [...]

Leave a Reply