Amimoto AMI では Amazon EBS ボリューム上にすべてのファイルを保存しています。 そのため、サーバイメージのバックアップにはスナップショットという EBS ボリュームのバックアップ機能を使うと便利です。
ここでは、スナップショットの作成方法とスナップショットからのリストア方法について解説します。
スナップショットの作成
インスタンスに紐づけられている EBS ボリュームのスナップショットを作成する方法を解説します。
スナップショットを作成するには、対象の EC2 インスタンスのインスタンスIDを確認する必要があります。
Amazon の EC2 コンソールから「Instances」を選択してインスタンス一覧を表示し、インスタンスIDを確認しましょう。
次に EC2 コンソールの「Volumes」を選択して「Attachment Information」が先ほど確認したインスタンスIDと同一のボリュームを選択します。
上の図には乗っていませんが、上部の一覧上でも web ブラウザの幅を広げることで「Attachment Information」を確認することができます。
ボリュームが複数ある場合は、そちらから選択した方が便利です。
ボリュームを選択したら「Actions」をクリックして表示されるサブメニューから「Create Snapshot」をクリックします。
スナップショットの作成状況は EC2 コンソールの「Snapshots」から確認することができます。
しばらくして「Status」が「completed」になれば、スナップショットの取得が完了しています。
この操作は EC2 インスタンスが稼働中でも行うことができますが、スナップショットの中に含まれるデータはスナップショットを開始した時点でのものとなることに注意してください。
スナップショット作成開始後にサーバ上で何か変更を行った場合は、その操作については保存されませんので、完全なスナップショットを取りたい場合は、一度インスタンスを停止してから実行してください。
スナップショットからのリストア
次に作成されたスナップショットからボリュームをリストアする方法について解説します。
まず、EC2 コンソールの「Snapshots」からリストアしたいスナップショットを選択します。
スナップショットを選択したら「Actions」をクリックして表示されるサブメニューから「Create Volume」をクリックします。
次に表示される画面では、EBS ボリュームのタイプやサイズ、作成する先のアベイラビリティゾーンを設定します。
- Type: General Purpose (SSD)、Provisiond IOPS (SSD)、Magnetic の中から選択します(※1)
- Size: 作成するボリュームのサイズを設定します。スナップショットを取った元のボリュームよりも小さくすることができませんが、大きくすることは可能です。(※2)
- Availability Zone: ボリュームを作成する先のアベイラビリティゾーンを選択します。リストアしたい EC2 インスタンスが稼働しているアベイラビリティゾーンとあわせる必要があります。
※1: Amazon EBS ボリュームのタイプについては以下 URL を参考にしてください
Amazon EBS ボリュームの種類
※2: サイズを変更した場合は、インスタンス起動後に ssh 接続して resize2fs コマンドを実行する必要がある場合もあります。
インスタンス起動後に df コマンド等で変更後のサイズを認識しているか確認してください。
次に EC2 コンソールの「Volumes」を選択してボリュームが作成されたか確認します。
「State」が「in-use」になっているボリュームは特定のインスタンスにアタッチされているボリューム、「Available」になっているボリュームは作成されたけれども特定のインスタンスにアタッチされていなボリュームです。
ボリュームが作成されていることを確認したら EC2 コンソールの「Instances」でインスタンスを停止します。
次に現在アタッチされているボリュームをデタッチします。
EC2 コンソールの「Volumes」を選択します。
デタッチする前に現在 EC2 インスタンスにアタッチされているボリュームを探してアタッチされているデバイス名をメモしておきます。
これはボリュームの「Attachment Information」を参照することで確認できます。おそらく以下のような表示になっていると思います。
i-xxxxxxxx:/dev/sda1 (attached)
"/dev/sda1" が、アタッチされているデバイス名です。スナップショットから作成した新しいボリュームをアタッチするときも同じデバイスにアタッチする必要があります。
デバイスを確認し、控えたら「Actions」をクリックして表示されるサブメニューから「Detach Volume」をクリックします。
次にスナップショットから作成した新しいボリュームを選択して、「Actions」をクリックして表示されるサブメニューから「Attach Volume」をクリックします。
最後にアタッチする先のインスタンスIDを Instance に、デバイスを Device に入力して「Attach」をクリックすることでスナップショットからのレストアは完了です。お疲れさまでした。
ボリュームのアタッチが完了したら、通常通りインスタンスを起動してください。