もふもふ技術部

AWS EC2(EBS)でのスナップショットの作成と復元(リストア)


どうも。病気明けの原田敦です!
サーバ構築をする際に新しい手順が必要だったりするとちょっと模索しながらやることが多いと思います。そんなこんなしているうちにどんなコマンド叩いてファイルがどんな状態になっているかがわからなくなってしまうことありますよね。

別にそれが悪影響を及ぼすものかはわからないけどサーバが無駄に汚れてしまっているのでやっぱりきれいな状態にしたかったりします。
そんなときにはサーバ初期のキレイな状態でスナップショットをとっておいて、一通り手順を把握したらリストアして最初からやり直せばキレイに出来るよ!ってインフラエンジニアさんに教えてもらったので試してみようかと。

あれこれググって迷走していたのですが、AWSならGUIで簡単にEBSのスナップショットをとれることがわかりました。やってみますね。

スナップショットを作成

CentOS 6.4を使います。
どのみち必ずやることなので、root封じと一般ユーザへのsudo権限付与、ssh接続設定を先にやっておきます。そこらへんは本題ではないので割愛するですよ。

こんな感じでEBSにボリュームがあります。2つありますが片方は別のインスタンスで使っているやつなので無視してください。上段の方が今回作成されたボリュームです。
snapshot_01

ひととおり初期設定が出来たらスナップショットをとります。
対象のボリュームを右クリックでCreate Snapshotを選択。
snapshot_02

Volumeが自動的に選択されているので後で識別しやすいようにName, Descriptionを入力しておくと良いです。
snapshot_03

パシャリ!いい笑顔がとれましたね!
これでスナップショットの取得は完了です。
snapshot_04

スナップショットから復元する

その前に。
Linuxのコマンドラインに戻って、ちゃんとリストアが出来ているかどうかの確認のためにvimでもインストールしてみます。ここはvimじゃなくてもいいし、むしろ適当なファイルを作っとくだけでも十分ですが。

では先程とは逆にスナップショットからボリュームを作成します。
snapshot_05

Availabllity Zoneはインスタンスの方に書いてあるそれと合わせます。今回はap-northeast-1c(キャプチャ間違った…)。
これが合っていないと「No instances were found for this availability zone.」って怒られます。

ちなみにap-northeast-1は東京リージョンのこと。末尾のcがちょっとよくわからない。なんだろう。
snapshot_06

さくっとボリュームの出来上がり。
snapshot_07

続けてアタッチしていきます。
まず先に対象のインスタンスのをstopして、ボリュームをデタッチします。
snapshot_08

snapshot_09

先程スナップショットから作成したボリュームをアタッチします。
snapshot_10

Instancesを選択して、あとはデフォルト(/dev/sdf)のままYes, Attachを選択すると「’vol-38f04d6e’ with Marketplace codes may not be attached as a secondary device.」と怒られる。
snapshot_11

他の方のエントリを見ると/dev/sda1にしとけと書いてあるがこれも「Invalid value ‘/dev/sda1′ for unixDevice. Attachment point /dev/sda1 is already in use
」と怒られる。「それもう使われているからムリだね」って感じか?
snapshot_12

あてずっぽうで/dev/sdaと入力してみる。あ、通った。これで良いのだろうか。
少々調べてみましたがこれで合っている模様。仕組みがわからないのですっきりしませんが次へ行っちゃいます。

インスタンスをstartして、Instance Stateがrunningにかわるのをダラダラと待ちましょう。ハキハキと待ってもかまいません。
ここまでで復元(リストア)は完了です。
snapshot_13

SSHでログインして確認してみます(※Elastic IPを使っていないとインスタンス再起動した際にIPが変わってしまいますのでご注意)。
vimはインストールされていない状態なのでこれでOK。出来ましたね!

そういえば特に意識せずともEBSを利用する構成でEC2インスタンスが作成されてたけど、EBSって料金発生するんじゃなかったかなー。
まあいいかー。

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。