どうも。病気明けの原田敦です!
サーバ構築をする際に新しい手順が必要だったりするとちょっと模索しながらやることが多いと思います。そんなこんなしているうちにどんなコマンド叩いてファイルがどんな状態になっているかがわからなくなってしまうことありますよね。
別にそれが悪影響を及ぼすものかはわからないけどサーバが無駄に汚れてしまっているのでやっぱりきれいな状態にしたかったりします。
そんなときにはサーバ初期のキレイな状態でスナップショットをとっておいて、一通り手順を把握したらリストアして最初からやり直せばキレイに出来るよ!ってインフラエンジニアさんに教えてもらったので試してみようかと。
あれこれググって迷走していたのですが、AWSならGUIで簡単にEBSのスナップショットをとれることがわかりました。やってみますね。
スナップショットを作成
CentOS 6.4を使います。
どのみち必ずやることなので、root封じと一般ユーザへのsudo権限付与、ssh接続設定を先にやっておきます。そこらへんは本題ではないので割愛するですよ。
こんな感じでEBSにボリュームがあります。2つありますが片方は別のインスタンスで使っているやつなので無視してください。上段の方が今回作成されたボリュームです。
ひととおり初期設定が出来たらスナップショットをとります。
対象のボリュームを右クリックでCreate Snapshotを選択。
Volumeが自動的に選択されているので後で識別しやすいようにName, Descriptionを入力しておくと良いです。
パシャリ!いい笑顔がとれましたね!
これでスナップショットの取得は完了です。
スナップショットから復元する
その前に。
Linuxのコマンドラインに戻って、ちゃんとリストアが出来ているかどうかの確認のためにvimでもインストールしてみます。ここはvimじゃなくてもいいし、むしろ適当なファイルを作っとくだけでも十分ですが。
1 |
sudo yum -y install vim |
では先程とは逆にスナップショットからボリュームを作成します。
Availabllity Zoneはインスタンスの方に書いてあるそれと合わせます。今回はap-northeast-1c(キャプチャ間違った…)。
これが合っていないと「No instances were found for this availability zone.」って怒られます。
ちなみにap-northeast-1は東京リージョンのこと。末尾のcがちょっとよくわからない。なんだろう。
続けてアタッチしていきます。
まず先に対象のインスタンスのをstopして、ボリュームをデタッチします。
先程スナップショットから作成したボリュームをアタッチします。
Instancesを選択して、あとはデフォルト(/dev/sdf)のままYes, Attachを選択すると「’vol-38f04d6e’ with Marketplace codes may not be attached as a secondary device.」と怒られる。
他の方のエントリを見ると/dev/sda1にしとけと書いてあるがこれも「Invalid value ‘/dev/sda1′ for unixDevice. Attachment point /dev/sda1 is already in use
」と怒られる。「それもう使われているからムリだね」って感じか?
あてずっぽうで/dev/sdaと入力してみる。あ、通った。これで良いのだろうか。
少々調べてみましたがこれで合っている模様。仕組みがわからないのですっきりしませんが次へ行っちゃいます。
インスタンスをstartして、Instance Stateがrunningにかわるのをダラダラと待ちましょう。ハキハキと待ってもかまいません。
ここまでで復元(リストア)は完了です。
SSHでログインして確認してみます(※Elastic IPを使っていないとインスタンス再起動した際にIPが変わってしまいますのでご注意)。
vimはインストールされていない状態なのでこれでOK。出来ましたね!
1 2 |
$ which vim /usr/bin/which: no vim in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/harada/bin) |
そういえば特に意識せずともEBSを利用する構成でEC2インスタンスが作成されてたけど、EBSって料金発生するんじゃなかったかなー。
まあいいかー。

原田 敦

最新記事 by 原田 敦 (全て見る)
- Rails Engineでブログ機能追加するgemを作る - 2015年3月15日
- WEBエンジニア一人だけでサービスを作りきる方法-夫婦のための自動ごはん予定お知らせサービス「GoHaaan」制作でやったこと - 2015年3月7日
- CentOS6でMariaDBのDynamic Columnsを試してみた - 2015年2月28日