ルートデバイスにアタッチされたボリュームをスナップショットから作成したボリュームに入れ替える方法

Amazon Linux 2 のインスタンスにおいて、ルートデバイスにアタッチされたボリュームをスナップショットから作成したボリュームに入れ替える手順を確認する機会がありました。備忘録として残しておきます。
2019.08.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、岩城です。

Amazon Linux 2 のインスタンスにおいて、ルートデバイスにアタッチされたボリュームをスナップショットから作成したボリュームに入れ替える手順を確認する機会がありました。 備忘録として残しておきます。

目次

やってみた

前提

本エントリで利用する検証環境の構築手順を省略します。検証で利用するインスタンスの OS は、Amazon Linux 2 です。

ボリュームのスナップショットを作成

ボリュームのスナップショットを作成する方法は以下の 2 つあります。

  • AMI を作成する
  • ボリュームからスナップショットを作成する

AMI を作成

対象のインスタンスを選択して AMI を作成します。

この際、再起動しない にチェックを付けて AMI を作成します。 チェックを付け忘れると、再起動が行われるために時間が掛かります。

ボリュームからスナップショットを作成

対象のボリュームを選択して スナップショットの作成 をします。

スナップショットからボリュームを作成

上記いずれかの方法でスナップショットを作成できますので、次はスナップショットから ボリュームの作成 をします。

インスタンスにアタッチ済みのボリュームをデタッチ

アタッチ済みのボリュームをデタッチするにはインスタンスを停止する必要があります。 対象のボリュームを選択し、 Detach Volume をします。

新しいボリュームをインスタンスにアタッチ

新しく作成したボリュームを選択し、 ボリュームのアタッチ をします。

アタッチするインスタンスを選択、ルートデバイス名を /dev/xvda としてアタッチします。OS によってルートデバイス名が変わりますので注意してください。

ここまでの作業が完了しましたらインスタンスを起動して入れ替え作業は完了です。

おまけ

ボリュームに AWS Marketplace 製品コードがある場合

ボリュームを確認すると 製品コード を確認できます。 marketplaceCodes が空であれば製品コードはありません。

もし、製品コードが設定されている場合は以下の点にご注意ください。

インスタンスへの Amazon EBS ボリュームのアタッチ

  • ボリュームは停止されたインスタンスにのみアタッチできる
  • ボリューム上に存在する AWS Marketplace コードをサブスクライブしている必要がある
  • インスタンスの構成 (インスタンスタイプ、オペレーティングシステム) は、その特定の AWS Marketplace コードをサポートするものであること
    • たとえば、Windows インスタンスからのボリュームを Linux インスタンスにアタッチすることはできない
  • AWS Marketplace 製品コードがボリュームからインスタンスにコピーされる
  • 別のインスタンスにセカンダリボリュームとしてアタッチすることはできない

おわりに

本エントリがどなたかのお役に立てれば幸いです。