AWS EC2インスタンスのバックアップ及びリストア手順

現在使っているEC2インスタンスのVPCサブネットを変更したいと思い、いろいろと調べてみたのですがどうやらそれはできないようです。
「変更したい場合は新たにインスタンスを作ってください」ということみたいです。

テスト環境として使っているインスタンスではありますが、それなりに環境を構築してあるのでなんとかそれを引き継げないかといろいろと調べてみました。
その結果「AMIを作り、それを使ってインスタンスを作成すればほぼ同じ環境が復元できる」との情報を見付けたので試してみました。

注意点

インスタンスは停止状態にしておく

ここで言うバックアップはEBSボリュームのスナップショット作成です。
インスタンスが稼働していると、スナップショットと実際のボリュームの内容に差異が生じる可能性があるためインスタンスは停止してから作業を行います。

料金が発生する可能性あり

スナップショットの保存先はS3になります。
S3にプロビジョニングされたサイズによって料金が発生します。
(東京リージョンの場合だと月々$0.05/GB)

バックアップ手順

EBSボリュームのスナップショット作成になります。

  1. EC2コンソールの左ペインで「Elastic Block Store」→「スナップショット」をクリックし、「スナップショットの作成」をクリックします。
    スナップショットの作成
  2. 「Select resource type」で「Volume」を選択し、スナップショットを取りたいボリュームを選択してから「スナップショットの作成」をクリックします。
    必要情報の入力
  3. 確認画面が表示されたら「閉じる」をクリックします。
    確認画面
  4. EC2コンソールの左ペインで「Elastic Block Store」→「スナップショット」をクリックし、作成状況を確認します。
    「ステータス」が「pending」から「completed」になれば作成完了(バックアップ完了)です。

    pending
    completed

リストア手順

スナップショットからボリュームを作成し、そのボリュームをインスタンスにアタッチすることでもリストアすることは可能みたいですが、今回は前述の通りAMIを作成してリストアする方法で進めたいと思います。

  1. EC2コンソールの左ペインで「Elastic Block Store」→「スナップショット」をクリックし、当該スナップショットを選択後、「アクション」から「イメージの作成」をクリックします。
    イメージの作成
  2. 「名前」と「説明」(共にAMIに対して付与される)を入力して「作成」をクリックします。
    「名前」と「説明」の入力
  3. EC2コンソールの左ペインで「イメージ」→「AMI」をクリックし、当該AMIを選択後、「アクション」から「起動」をクリックします。
    起動
  4. EC2インスタンスの作成画面が表示されるので作成します。
    インスタンス一覧に表示されれば作成完了(リストア完了)です。

    EC2インスタンスの作成画面
    作成完了

尚、新規インスタンスを起動後、以前までのインスタンスが不要であれば余計な課金を防ぐためにも忘れずに削除しておいてください。
EBSについてもインスタンス終了時に自動的に削除されない設定にしている場合には忘れずに削除しておいてください。


まとめ

思っていたよりもずっと簡単にバックアップ及びリストアをすることができました。
このあたりの柔軟性の高さはクラウドの魅力だと思います。

尚、今回はスナップショットからAMIを作ってリストアしましたが、インスタンスの一覧からAMIを作ることも可能です。
手順としては後者の方が簡単ですが、内部では前者と同じ手順が実行されているようです。
(EBSのスナップショット一覧に自動的に追加される)

この記事がEC2インスタンスのバックアップ及びリストアの際に参考になれば幸いです。