【AWS】スナップショットからボリュームを作成し、そのボリュームにEC2インスタンスをアタッチしてリカバリーする

前回はAMIを作成することで、EC2のバックアップをしましたが、今回はスナップショットとしてバックアップしたものから、ボリュームを作成してそれをデタッチ状態のEC2インスタンスにアタッチすることで、EC2をリカバリーします。

EC2はリカバリーされますが、ElasticIPやELB配下のEC2の認識は変わらないので、Route53のElasticIP設定し直しや、ELBのEC2再設定などは必要なく、リカバリできます。

AMIからEC2を再生成した場合には、AMI作成時のEC2に行っていた設定は反映されていますが、EC2インスタンスとして再生成されるので、前のEC2がElasticIPを使っていたり、ELB配下に入っていた場合には、再設定が必要になります。

それではまずEC2インスタンスのバックアップとして、スナップショットを作成するところから行います。

AMI作成やスナップショット作成では、EC2インスタンスまたはファイルを更新するサービスを停めておくことが推奨されています。
作成時にファイルシステムが更新されると整合性の取れていない状態になるので、復元時に問題が発生する可能性があるようです。
一応、AWSでは、EC2インスタンスを停止しなくても、AMIやスナップショットは取得することができると謳っており、実際に停止せずに操作を行うと、自動でシャットダウンとリスタートが走って、オペレーション的にはなにもしないでも良いのですが、新しく動かすときには「動作確認はして下さい」とのことなので、インスタンスは停止して行うことにしておいた方がベターかと思います。

(ちなみに、画面イメージのインスタンス、ボリュームは削除してしまったので、現在は存在しませんので、ある程度そのままの画面キャプチャーです)

AWSのスナップショット

インスタンスを停止します
インスタンスを停止します
停止しました
停止しました
「ボリュームID」をクリックして、ボリューム画面に移動する
ボリューム画面でボリュームを指定して、右クリックから「スナップショットの作成」をクリック
ボリューム画面でボリュームを指定して、右クリックから「スナップショットの作成」をクリック
「スナップショットの作成」をクリック
「スナップショットの作成」をクリック
スナップショットが作成されました
スナップショットが作成されました
スナップショット一覧にも追加された
スナップショット一覧にも追加された

AWSのスナップショットからのリカバリー

現状(復元前)のボリューム情報を確認する。
[サービス]⇒[EC2]⇒[ボリューム]⇒ボリュームを選択⇒[説明]タブ
サイズ、ボリュームタイプ、アベイラビリティゾーンの3つを確認する

スナップショットからボリュームを作成する
スナップショットからボリュームを作成する
確認した、サイズ、ボリュームタイプ、アベイラビリティゾーンと同じものにする
確認した、サイズ、ボリュームタイプ、アベイラビリティゾーンと同じものにする
状態が[available]になっている
状態が[available]になっている
インスタンスを停止する
インスタンスを停止する
ボリュームのデタッチをする
ボリュームのデタッチをする
デタッチされたか確認する ←[状態]が[available]、[アタッチ済み情報]が空欄
インスタンスを起動するとエラになる

アタッチするサーバーのルートデバイスを確認する

スナップショットから作成したボリュームをアタッチする
スナップショットから作成したボリュームをアタッチする
デバイス名(/dev/xvda)に注意!!
デバイス名(/dev/xvda)に注意!!

復元前のボリュームのデバイス名(/dev/xvda)と合わせて指定いなければエラーとなる。

アタッチされたか確認する:[状態]が[in use]になっていること
アタッチされたか確認する:[状態]が[in use]になっていること
インスタンスを開始する
インスタンスを開始する
インスタンスを開始する
インスタンスを開始する

AWS TIPS はこちら!