Amazon EC2のルートデバイスのEBSボリュームを入れ替える

2020年8月13日

Amazon EBS

Amazon Linux 2 で、ルートデバイスにアタッチされた EBS ボリュームを、スナップショットから作成した EBS ボリュームに入れ替える方法を紹介します。利用シーンとしては、EC2 のストレージをルートデバイス 1 本で運用しているとき、データをスナップショットの時点に戻したいときなどに使える方法です。

以前のスナップショットを使用した Amazon EBS ボリュームの置き換え - Amazon Elastic Compute Cloud を参考にしています。

目次

  1. EC2 インスタンスを停止する
  2. ルートデバイスをデタッチする
  3. EC2 に入れ替え用の EBS ボリュームをアタッチ
  4. ルートデバイスに EBS ボリュームをアタッチさせるには
  5. EC2 インスタンスを起動する

EC2 インスタンスを停止する

ルートボリュームを入れ替えるには EC2 インスタンスを停止しておく必要があるので、まず対象の EC2 インスタンスを停止します。

ルートデバイスをデタッチする

EC2 インスタンスの詳細画面の「ルートデバイス」のリンクをクリックし、ブロックデバイスの「EBS ID」のリンクをクリックします。

EC2 詳細画面の EBS ID をクリック

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

EBS 一覧でボリュームのデタッチをクリック

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

EC2 に EBS ボリュームがアタッチされていない状態

EC2 に入れ替え用の EBS ボリュームをアタッチ

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

EBS 一覧からボリュームをアタッチ

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

デバイスをデフォルト値のままアタッチ

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

ブロックデバイスにアタッチされた

ルートデバイスに EBS ボリュームをアタッチさせるには

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

「デバイス」に /dev/xvda を入力して「アタッチ」ボタンを押します。

ルートデバイスにアタッチさせるためには

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

ルートデバイスにアタッチされた

EC2 インスタンスを起動する

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

-技術ブログ
-