
Amazon EBSボリュームのスナップショットを作成し、リストアしてみる
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、クラスメソッドのキム・ジェウク(Kim Jaewook)です。
今回は、Amazon EBSボリュームのスナップショットを作成して、リストアする方法を整理してみました。
スナップショットを作成
EBSボリュームをリストアする前に、スナップショットを作成する必要があります。
スナップショットとはEBSボリュームの中のデータを意味します。

まず、対象インスタンスに接続して「test-1」というテキストファイルを作成します。

そして、Cドライブ内には「test-2」というテキストファイルを作成します。

- 
スナップショットを作成するため、ボリュームに入ります。
 - 
スナップショットを作成したいボリュームを選択します。
 - 
「アクション」→「スナップショットの作成」をクリックします。
 

- スナップショットの説明を入れます。
 - タグには「EC2-1-snapshot」というNameタグを入れます。
 - 「スナップショットの作成」をクリックします。
 

スナップショットに入って確認してみると、先作成したスナップショットを確認できます。

現在、対象インスタンスに「test-1」と「test-2」のテキストファイルが作成された状態のスナップショットを作成しました。
テストのため「test-1」と「test-2」のテキストファイルを削除し、リストアを行ってみます。
Dドライブにリストア

- スナップショットに入ります。
 - リストアしたいスナップショットを選択します。
 - 「アクション」→「スナップショットからボリュームを作成」をクリックします。
 

タグだけ入れて「ボリュームの作成」をクリックします。

- 対象インスタンスにボリュームをアタッチするため、「ボリューム」に入ります。
 - 先程、作成した「EC2-1-D」ボリュームを選択します。
 - 「アクション」→「ボリュームのアタッチ」をクリックします。
 

- ボリュームをアタッチする対象インスタンスを選択します。
 - デバイス名を入れますが、Windows用の推奨デバイス名はルートボリュームの場合は「/dev/sda1」になりますし、データボリュームの場合は xvd[f-p]になります。詳細は下記のURLをご参考ください。
 - 「ボリュームのアタッチ」をクリックします。
 

ボリュームを確認してみると「/dev/sad1」がCドライブ(ルートボリューム)としてアタッチされていますし「xvdf」が追加ドライブとしてアタッチされている状態です。

追加したボリュームはまだ、オフラインの状態ですので、オンラインに変更する必要があります。
対象インスタンスに接続して、スタートで「ディスク」を検索して「ハードディスクパーティションの作成とフォーマット」を開きます。

その後、オフライン状態のボリュームを「オンライン」に変更します。

最後にDドライブが追加され、Dドライブの内に「test-2」のテキストファイルもリストアされたのを確認できます。
Cドライブにリストア

「EC2-1-D」と同じくスナップショットからボリュームを作成します。
スナップショットからボリュームを作成する方法は、上記の「EC2-1-D」を作成した方法と同じです。
既存のCドライブを置き換えるためルートボリュームをデタッチする必要があります。

ルートボリュームをデタッチするためには、まず、対象のインスタンスを停止する必要があります。
- 対象のインスタンスを停止しましたら、ルートボリュームを選択します。
 - 「アクション」→「ボリュームのデタッチ」をクリックします。
 

「デタッチ」をクリックします。

デタッチされたらボリュームの状態は「使用可能」状態になります。

- 先程、作成した「EC2-1-C」ボリュームを選択します。
 - 「アクション」→「ボリュームのアタッチ」をクリックします。
 

- ボリュームをアタッチするEC2インスタンスを選択します。
 - 今回は、ルートボリュームを置き換えますので「/dev/sda1」を入れます。詳細は下記のURLをご参考ください。
 - 「ボリュームのアタッチ」をクリックします。
 
アタッチが終わったら、対象インスタンスを再起動し、接続します。

対象のインスタンスに接続してみると「test-1」と「test-2」のテキストファイルがリストアされたことを確認できます。
ルートボリュームを復元
最後に、直接EBSボリュームを作成せず、ルートボリュームを置き換える方法について説明します。
考慮事項としては、下記の通りになります。
- インスタンスは running の状態である必要があります。
 - インスタンスは、プロセス中に自動的に再起動されます。メモリ (RAM) の内容は、再起動中に消去されます。
 - インスタンスストアボリュームの場合、ルートボリュームを復元することはできません。
 - メタルインスタンスのルートボリュームを復元することはできません。
 - インスタンスの以前のルートボリュームのいずれかと同じ系統に属する任意のスナップショットを使用できます。
 

- 対象インスタンスを選択します。
 - 「アクション」→「モニタリングとトラブルシューティング」→「ルートボリュームを置き換える」をクリックします。
 

- スナップショットを選択します。
 - リストアしたいスナップショットを選択します。
 - ルートボリュームを置き換えた後、既存のルートボリュームを削除したい場合、チェックをします。
 - 「置き換えタスクを作成」をクリックします。
 

ルートボリュームの状態は、対象インスタンスのストレージで確認できます。
タスクの状態は下記の通りになります。
- pending — 置換ボリュームが作成されています。
 - in-progress — 元のボリュームがデタッチされ、置換ボリュームがアタッチされています。
 - succeeded — 置換ボリュームはインスタンスに正常にアタッチされ、インスタンスは利用可能です。
 - failing — 置換タスクが失敗を処理しています。
 - failed — 置換タスクは失敗しましたが、元のルートボリュームはまだアタッチされています。
 - failing-detached — 置換タスクが失敗を処理しています。インスタンスにルートボリュームがアタッチされていない可能性があります。
 - failed-detached — 置換タスクが失敗し、インスタンスにルートボリュームがアタッチされていません。
 

その後、対象インスタンスに接続すると、問題なくファイルがリストアされたのを確認できます。






