LoginSignup
3
2

More than 1 year has passed since last update.

EBSスナップショットを利用してEC2インスタンスを複製したりリストアしたりしてみた

Posted at

はじめに

Amazon Data Lifecycle Managerなどでバックアップ用に作成したEBSスナップショットを使い、EC2インスタンスを複製する手順をまとめてみます。
また、EBSスナップショットを使いリストアする方法についても触れてみようと思います。

インスタンス情報の確認

EC2インスタンスの詳細情報から、複製元のインスタンスの情報を確認します。

インスタンスID、インスタンスタイプ、IAMロール(インスタンスプロファイル)、VPC ID、サブネットID、プライベートIPアドレス、アベイラビリティゾーン、NIC、セキュリティグループ設定などを確認しておきます。
image.png
ストレージタブで、インスタンスにアタッチされているボリュームの情報を確認します。
image.png
この例では、インスタンスには、3つのEBSボリュームがアタッチされており、以下のような構成になっています。

ボリュームID デバイス名 ボリュームサイズ(GiB) ルートデバイス
vol-09XXXXXXXXXXXXXXX /dev/sda1 100
vol-06XXXXXXXXXXXXXXX /dev/sdg 100 ×
vol-0aXXXXXXXXXXXXXXX /dev/sdh 100 ×

どのボリュームIDのEBSが、どのデバイスとしてアタッチされているかを確認しておきます。

EBSスナップショットの確認

EBSスナップショットの一覧から、上記EBSボリュームから作成されたスナップショットを確認します。

EBSスナップショット作成の際に、NameタグにEC2インスタンスのNameタグと同じものを付けておくようにすると、対象となるスナップショットが探しやすくなります。

今回の例では、3つのスナップショットがあるため、どのスナップショットが、どのEBS(ボリュームID)から作成されたものかを確認します。

スナップショット作成元のボリュームIDは、スナップショットの詳細画面を開かないと確認できないため、以下の例のように、スナップショットのNameタグで絞り込んでから、各スナップショットとEBSの対応関係を確認するか、
image.png
スナップショット一覧の検索窓で、ボリュームIDを指定して検索して確認します。
image.png
上の例では、スナップショット作成元のボリュームIDがvol-09で始まるものなので、/dev/sda1のルートデバイスのスナップショットという事が分かります。

この例では、EBSとスナップショットの関係は、以下のようになっている事が確認できました。

ボリュームID デバイス名 ボリュームサイズ(GiB) ルートデバイス スナップショットID
vol-09XXXXXXXXXXXXXXX /dev/sda1 100 snap-00XXXXXXXXXXXXXXX
vol-06XXXXXXXXXXXXXXX /dev/sdg 100 × snap-0fXXXXXXXXXXXXXXX
vol-0aXXXXXXXXXXXXXXX /dev/sdh 100 × snap-0dXXXXXXXXXXXXXXX

ここまでで、事前の確認は終わりです。

この後、インスタンスの複製やリストアを行いますが、ここまでの確認が不十分だったり間違っていたりすると、複製やリストアに失敗するため、確認はしっかり行っておきます。

EC2インスタンスを複製する

ここからは、EC2インスタンスを複製する手順です。

EBSスナップショットからAMIを作成

まず、EBSスナップショットからAMIを作成します。

スナップショットの一覧から、ルートデバイスのスナップショット(この例では、snap-00XXXXXXXXXXXXXXX)を選択し、アクションから「スナップショットからイメージを作成」を選択します。
image.png
イメージ名と説明を入力し、ルートデバイス名が正しい事を確認します。
image.png
次に、ブロックデバイスマッピングの設定をします。
image.png
デバイスタイプ、デバイス名、サイズ、ボリュームタイプが複製元と同じである事を確認します。

今回の複製元インスタンスは、ルートデバイス以外に2つのボリュームがあるので、「ボリュームを追加」をクリックし、デバイス名/dev/sdg、/dev/sdhのEBSスナップショットもイメージに追加します。
image.png
事前に確認しておいた、デバイス名とボリュームサイズ、スナップショットIDの組み合わせと同様にマッピングされている事を確認します。

ボリュームID デバイス名 ボリュームサイズ(GiB) ルートデバイス スナップショットID
vol-09XXXXXXXXXXXXXXX /dev/sda1 100 snap-00XXXXXXXXXXXXXXX
vol-06XXXXXXXXXXXXXXX /dev/sdg 100 × snap-0fXXXXXXXXXXXXXXX
vol-0aXXXXXXXXXXXXXXX /dev/sdh 100 × snap-0dXXXXXXXXXXXXXXX

設定に問題ない事が確認できたら、「イメージを作成」をクリックしてAMIを作成します。
image.png

作成したAMIからEC2インスタンスを起動

AMIの一覧で、作成したAMIを選択し、EC2インスタンスを起動します。
image.png
インスタンスタイプを複製元と同じにし、キーペアの設定、セキュリティグループの設定を行います。
image.png
ストレージの設定を確認し、設定に問題がなければ「インスタンスを起動」をクリックし、インスタンスを起動します。

起動後、動作確認を行い、動作に問題がなければ、インスタンスの複製は完了です。

EBSスナップショット作成時に、データの整合性がとれていなかったり、ルートデバイスの指定が間違っていた場合、インスタンスの起動に失敗したり、動作がおかしくなる場合があります。その際には、スナップショットの再作成などを行ってください。

EC2インスタンスのリストア

障害などが発生し、バックアップしたEBSスナップショットからEC2インスタンスのリストアを行う必要がある場合、大きく以下の2つの方法があります。

  1. EBSスナップショットからAMIを作成し、EC2インスタンスを複製する(上述してきた内容)
  2. EBSスナップショットからEBSを作成し、EC2インスタンス停止後、EBSのデタッチ、スナップショットから作成したEBSのアタッチを行いインスタンスを起動する

1の方法の場合、元のインスタンスを止めずに残しておけるのがメリットではありますが、リストア(というより複製)により、プライベートIPアドレスが変わってしまうデメリットがあります。

その為、固定IPを変えずにリストアしたい場合は、2の方法でリストアする必要があります。

以下では、2の方法でのリストアについて記載します。

EBSスナップショットからEBSを作成

スナップショットからEBSボリュームを作成します。
image.png
今回の例では、以下3つのスナップショットからEBSを作成します。

ボリュームID デバイス名 ボリュームサイズ(GiB) ルートデバイス スナップショットID
vol-09XXXXXXXXXXXXXXX /dev/sda1 100 snap-00XXXXXXXXXXXXXXX
vol-06XXXXXXXXXXXXXXX /dev/sdg 100 × snap-0fXXXXXXXXXXXXXXX
vol-0aXXXXXXXXXXXXXXX /dev/sdh 100 × snap-0dXXXXXXXXXXXXXXX

ボリュームを作成する際、ボリュームタイプやサイズの他に、EC2インスタンスがあるアベイラビリティゾーン(AZ)も指定する必要があるため、あらかじめAZを確認しておきます。
image.png
ボリュームの情報を入力、確認後、「作成」をクリックしてEBSボリュームを作成します(この例では3つ作成)。

EC2インスタンスを停止

リストアする対象のEC2インスタンスを停止します。

EBSボリュームのデタッチ

ボリュームの一覧で、停止したEC2インスタンスにアタッチされているEBSボリュームをデタッチします。
image.png
この例では、3つのボリュームをそれぞれ選択し、「アクション」から「ボリュームのデタッチ」を選択してデタッチします。

スナップショットから作成したEBSボリュームをEC2インスタンスにアタッチ

ボリュームの一覧で、スナップショットから作成したEBSボリュームを選択し、リストアするEC2インスタンスにアタッチします。
image.png
この例では、3つのボリュームをそれぞれ選択し、「アクション」から「ボリュームのアタッチ」を選択してアタッチします。
image.png
アタッチするインスタンスのIDとデバイス名を正しく入力し、ボリュームをインスタンスにアタッチします(この例では3つのEBSボリュームをアタッチ)。

アタッチ完了後、EC2インスタンスを起動します。
起動および動作確認で問題がなければ、リストア完了です。

おわりに

バックアップとして取得したEBSスナップショットから、EC2インスタンスを複製する方法、リストアする方法について記載しました。

今回記載した方法以外にも、一部のファイルのみリストアしたい場合は、スナップショットから作成したEBSボリュームを、ルートボリューム以外のボリュームとして一時的にアタッチし、OSからマウントしてファイルをコピーなどしてリストアする方法もあります。

バックアップを取得していても、リストア・リカバリできなければ意味がありません。
きちんとリストア・リカバリできるようバックアップしつつ、いざという時にリストア・リカバリできるよう、手順などを整理しておきましょう。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2