EC2でバックアップからのインスタンス復旧方法

もしも内部の高負荷や、処理ミスで停止してしまい、立ち上げ直しても戻らない場合。

何が原因か不明だが、とりあえず最速で復旧させたい場合の、バックアップの取得〜復旧までの方法です。

スナップショットでストレージのみのバックアップから復旧することもできますが、ここでは簡単にマシンイメージ(AMI)の取得と、EIPの付け替えによる復旧を行います。

手動バックアップの取得

EC2の画面から、バックアップを取りたいインスタンスを右クリック→「イメージ」→「イメージの作成」

こちらの画面が表示されます。

再起動は安全に取得するためには必要ですが、もし動作を停止させるのがまずい場合にはチェックを外せば再起動無しでの取得が可能です。

名前はわかるようにユニークな名前を付けておきます。同じ名前のAMIを取っていると下記エラーが出ます。

AMI name hacknote-test-backup-AMI is already in use by AMI ami-xxxxxxxxxxxx

作成ボタンを押せば、AMIの作成が開始され、問題なく作成できれば、AMIの項目に今作成されたAMIが表示されると思います。

作成にはディスク容量などに応じて時間がかかるため、AMIの項目にすぐには表示されないからと言って連打するのはやめましょう。

バックアップからのインスタンス立ち上げ

ここからが復旧作業になります。とは言ってもそこまで難しい内容ではありません。

AMIの画面から、立ち上げたいバックアップを右クリック→「作成」

インスタンスの作成画面になります。

同一環境を立ち上げるため、復旧したいインスタンスの詳細画面などを確認して、同じVPCやセキュリティグループ、容量やタイプ、キーペアを選ぶだけです。

タグでNameを使ってる場合には同じものにすると、壊れた方とわかりにくくなるので、壊れているものの名前を帰るか、別の名前にしたあとで変更しましょう。

これで、バックアップ時点の同じインスタンスが立ち上がりました。しかし、グローバルIPは変わってしまうので、EIPを昔のインスタンスから付け替えて対応します。

EIPの付け替え

インスタンスの詳細画面より、EIPを確認します。(ここでは52.199.18.33)

こちらのEIPが青文字になっている部分をクリックすると、EIPの詳細画面に推移します。

EIPの詳細画面より、アクション→アドレスの関連付けをクリックします。

現在関連付けされているインスタンスのIDとプライベートIPが表示されています。

このインスタンスIDをクリックすると、新しくAMIから立ち上げたインスタンスがあるはずなので、選択して、「再関連付け」チェックをいれて関連付けをクリックします。

これで、新しいインスタンスへEIPの関連付けが変わったので、ドメインなどの設定をしていても平気です。

webサーバーを動かしていたのであれば、サイトがバックアップ時点の状態に戻っていることがわかると思います。

注意

自動バックアップの設定などで、もしIPではなくインスタンスIDで参照している物があれば、インスタンスIDは付け替えられないため修正が必要になります。

同じ理由でコンソールから追加したCloudWatchの設定はインスタンスIDなので同じものを手動で入れてあげましょう。

(逆に、そういったものを作るときにはインスタンスIDでなくEIPとかにしてあげて参照したいメインインスタンスが変わっても対応できるようにしておきましょう。)