Amazon Linux 2 で、ルートデバイスにアタッチされた EBS ボリュームを、スナップショットから作成した EBS ボリュームに入れ替える方法を紹介します。利用シーンとしては、EC2 のストレージをルートデバイス 1 本で運用しているとき、データをスナップショットの時点に戻したいときなどに使える方法です。
以前のスナップショットを使用した Amazon EBS ボリュームの置き換え - Amazon Elastic Compute Cloud を参考にしています。
目次
- EC2 インスタンスを停止する
- ルートデバイスをデタッチする
- EC2 に入れ替え用の EBS ボリュームをアタッチ
- ルートデバイスに EBS ボリュームをアタッチさせるには
- EC2 インスタンスを起動する
EC2 インスタンスを停止する
ルートボリュームを入れ替えるには EC2 インスタンスを停止しておく必要があるので、まず対象の EC2 インスタンスを停止します。
ルートデバイスをデタッチする
EC2 インスタンスの詳細画面の「ルートデバイス」のリンクをクリックし、ブロックデバイスの「EBS ID」のリンクをクリックします。

ルートデバイスにアタッチされている EBS ボリュームが選択された状態になるので、「アクション」プルダウンをクリックし「ボリュームのデタッチ」をクリックします。

EC2 インスタンスの詳細画面に戻ると、インスタンスに EBS ボリュームが何もアタッチされない状態になりました。

EC2 に入れ替え用の EBS ボリュームをアタッチ
EBS の一覧からアタッチしたい EBS を選択し、「アクション」プルダウンをクリックして「ボリュームのアタッチ」をクリックします。今回は、事前にスナップショットから作成した EBS ボリュームを選択しています。

インスタンス選択すると「デバイス」にデフォルト値が入っています。「デバイス」をそのまま変更せずにアタッチをしてみます。

ルートデバイスではなく、ブロックデバイスとしてアタッチされてしまいます。

ルートデバイスに EBS ボリュームをアタッチさせるには
ルートデバイスとしてアタッチさせるには、デタッチ前に設定されていたルートデバイス名を入力する必要があります。冒頭の画像にあるように、今回のルートデバイス名は /dev/xvda
です。ルートデバイス名は AMI によって違うので、詳しくは Linux インスタンスでのデバイスの名前付け - Amazon Elastic Compute Cloud を確認してください。
「デバイス」に /dev/xvda
を入力して「アタッチ」ボタンを押します。

EC2 インスタンスの詳細画面を見ると、ルートデバイスにアタッチされました。

EC2 インスタンスを起動する
インスタンスを起動し、データが元に戻っているか確認して完了です。