Nick Hardiman が Amazon EC2 マシンのバックアップ方法をいくつか解説します。また、スナップショットバックアップの復元手順も詳しく説明します。
運用準備の一環として、インターネットサービスの復旧が可能かどうかを確認したいと考えています。前回の投稿では、開発者が好む方法であるアプリケーションレベルのバックアップについて説明しました。
OSレベルのバックアップとリカバリ
システム管理者はファイルシステムの一部をバックアップすることを好みます。多くの優れたLinuxバックアップユーティリティは、ファイルシステムの管理、バージョン管理の複雑さ、自動化、複数のメディアに分散したバックアップ、適切なファイルへのロールバックなどに役立ちます。
OSレベルのバックアップは数十年にわたって注目を集めてきました。しかし、今では少し時代遅れとなり、新しいモデルのVMスナップショットが注目を集めています。しかし、ご安心ください。OSレベルのバックアップこそが最善のソリューションです。
VMレベルのバックアップとリカバリ
絶対にすべてをバックアップする必要がある場合の強力なアプローチは、EC2マシンのコンテンツをコピーすることです。実際にはマシン自体をコピーするのではなく、ディスクボリュームをコピーします。裏では、ボリュームは1つの大きなイメージファイルといくつかのメタデータに縮小されます。
AWS は、バックアップでストレージを溢れさせてしまうことを容易にします。企業がこれらのボリュームをバックアップ戦略として利用すると、ストレージ使用量は急増します。企業は最終的に、多数のクラウドストレージ領域に数千ものファイルを保管することになり、何がどれだけ保存され、どれだけのコストがかかっているかを把握するのは大変な作業です。企業のスパナを握る担当者は AWS S3 のようなストレージサービスを使って作業をアーカイブし、経理担当者は Uptimecloud のようなコスト監視サービスを使って財務への影響を監視します。
AWS コンソールを使用してバックアップスナップショットを作成する
これは、1つのスナップショットを作成してEBSに保存するシンプルなバックアップ手順です。スナップショットとは、ディスクボリュームのコピーです。スナップショットは完全なコピーではなく、前回のスナップショット以降に変更されたビットのみのコピーです。
この手順は、新しい VM を起動する場合と似ています。
バックアップするボリュームの名前を見つけます。
- AWS コンソールを開きます。
- EC2マシンのリストに移動します。パンくずリストは、EC2タブ > インスタンス > インスタンスです。
- バックアップするマシンのルートデバイス名を表示します。上部ペインの行にチェックを入れ、下部ペインのsda1リンクをクリックすると、ボリュームのEBS ID名(例:vol-12345678)がポップアップ表示されます。スナップショットを作成します。
- スナップショット ダイアログ ボックスを開きます。上部のペインで、ELASTIC BLOCK STORE | スナップショット | スナップショットの作成ボタンをクリックします。
- フォームに記入してください。ベースラインとして名前を入力しましたが、説明はインストール済みのアプリのみで、コンテンツはまだありません。
- 「作成」ボタンをクリックします。AWSアプリがバックグラウンドで数分以内にバックアップを作成します。
新しいEC2マシンを起動してバックアップスナップショットを復元する
復元方法の一つは、EC2マシン全体を再作成することです。この復元手順は、私が最初にEC2マシンを作成した時の手順と似ています。
- スナップショットからイメージを作成します。私の場合はimg01という名前です。EC2 タブ | ELASTIC BLOCK STORE | スナップショット | ベースライン行 | イメージの作成。
- 画像を表示します。 画像 | AMI | 更新します。
- イメージからインスタンスを作成します。「インスタンス」→「インスタンスの起動」→「新規インスタンスの作成」を選択します。「My AMIs」タブに123456789012/img01という名前が表示されます。この長い数字が私のAWSアカウント番号です。
既存のEC2マシンにマウントしてバックアップスナップショットを復元する
もう1つの方法は、スナップショットからボリュームを作成し、既存のEC2マシンにマウントしてファイルをコピーすることです。新しいEC2マシンのカーネルが古いスナップショットのボリュームのマウントを拒否したときに、この方法を試しました。
まず最初に少し調べてみましょう。あるゾーンのボリュームを別のゾーンのマシンにマウントすることはできません。
EC2 マシンを確認します。
- インスタンスを選択します。EC2 タブ | インスタンス | インスタンス。
- EC2 マシンのアベイラビリティゾーンをメモします。
ボリュームを作成します。
- ファイルをコピーしたいスナップショットを見つけて、ボックスにチェックを入れます。ELASTIC BLOCK STORE | スナップショット
- 「ボリュームの作成」ボタンをクリックし、フィールドに入力します。
- サイズはスナップショットのサイズより大きくする必要があります (無料のマイクロインスタンスでは 8 GB のボリュームが提供されます)。
- アベイラビリティゾーンは EC2 マシンと同じである必要があります。
- スナップショットはすでに選択されており、ほぼsnap12345678 (私の説明)のようになっています。
- 「はい、作成」ボタンをクリックします。ボリュームテーブルに新しい行が表示されます。ELASTIC BLOCK STORE | ボリューム
ボリュームを接続します。
- 「ボリュームの接続」ボタンをクリックし、フィールドに入力します。
- ボリューム値はすでに存在します。
- インスタンスのドロップダウン リストからマシン名i-12345678 (実行中)を選択します。
- Devices フィールドには、/dev/sdfのように、利用可能な最初のデバイス名が表示されます。この値を変更する人はいますか?
- 「はい、作成」ボタンをクリックします。EC2マシンに新しいデバイスが自動的に表示されます。
- AWS コンソールを閉じます。
ファイルをコピーします。
- CLI を開きます。
- 新しいボリュームをマウントします。sudo
mount /dev/sdf /mnt/ - 必要なファイルを古いボリュームにコピーします。cp
/mnt/home/ec2-user/my-old-file.txt /home/ec2-user/
掃除。
- 新しいボリュームをアンマウントします。sudo
umount /mnt/ - CLI を閉じます。

ニック・ハーディマン
ニック・ハーディマンは、ウェブなどのインターネットサービスに必要なインフラストラクチャの構築と保守を担当しています。ニックはインターネットの下位層、つまりマシン、ネットワーク、オペレーティングシステム、アプリケーションを担当しています。ニックの仕事はそこで終わり、顧客が利用する最上位層を構築する設計者と開発者に引き継ぎます。