Amazon Web Services (AWS)のEC2インスタンスは、仮想マシン(VM)上でワークロードを実行する便利な方法です。しかし、それらが接続されているストレージが故障したり破損したりした場合はどうなるのでしょうか?AWS EC2のバックアップについて話し合う時が来ています。
EC2インスタンスのバックアップを行うとき、Elastic Block Store(EBS)ボリューム、具体的にはEBSスナップショットについて話します。EC2はすべてのボリュームをEBSで保存し、EBSスナップショットを取ることはデータをバックアップする素晴らしい方法です。
このチュートリアルでは、AWS Management ConsoleとAWS Command Line Interface(AWS CLI)を使用してEBSスナップショットを作成する方法を学びます。
簡単な方法でEC2のバックアップ/EBSスナップショットを管理したい場合は、Veeam Backup for AWSを必ずチェックしてください。VeeamはEBSスナップショットの作成だけでなく、レプリケーションの管理、変更ブロックのインテリジェントな監視、パブリックAPIの提供も行います。
前提条件
この記事はチュートリアルです。ステップバイステップで進める予定の場合、以下が必要です:
- AWSアカウント
- AWS仮想プライベートクラウド(VPC)
- アタッチされたボリュームを持つEC2インスタンス
- IAMユーザーを使用して、
- AWS Management Consoleへのアクセス
- AWSサービスへのプログラムアクセス
- スナップショット関連のアクティビティを実行するために必要なIAMの権限を持っています。
IAMポリシーの作成およびAWSアプリケーションプログラミングインターフェース(API)の権限については、この記事の範囲外です。アクションの実行にアカウントを承認する際には、常に最小特権の原則に従ってください。
- AWS CLIがインストールされ、ローカルマシンのIAMユーザーで認証されています。
AWS Management ConsoleからEBSスナップショットを作成する
EBSスナップショットを作成する方法はいくつかあります。AWS Management Consoleを使用してスナップショットを作成する方法を始めましょう。
EBSスナップショットにはストレージ料金が発生する場合があります。EBSの請求方法についての詳細は、AWSドキュメンテーションを参照してください。
EC2コンソールへのナビゲーション
以下の手順で開始します:
- AWS管理コンソールを開き、AWS(ルート)またはIAMアカウントの資格情報を提供してAWSアカウントにサインインします。
2. 画面の左上隅にあるサービスをクリックします。

3. ドロップダウンメニューからEC2を選択します。このオプションはコンピューティングカテゴリーの下にあります。これにより、EC2コンソールに移動します。

これでリソースダッシュボードに移動します。このダッシュボードでは、選択したリージョン内で設定されているEC2関連のリソースに関するクイックな情報を提供します。以下のスクリーンショットでは、このチュートリアルのリソースダッシュボードには、サインインしているユーザーのUS East(N. Virginia)リージョンで設定されている以下のものが表示されています。

EC2コンソールでEBSスナップショットを作成する
EC2コンソールに移動し、選択したリージョンを表示している場合、EBSスナップショット(AWS EC2バックアップ)を作成する準備が整いました。以下の手順で実行してください。
- 画面左側のナビゲーションペインから、Elastic Block Storeの下にあるスナップショットを選択します。

2. 次に、画面上部からスナップショットの作成を選択します。 スナップショットの作成を選択すると、追加の入力が必要なメニューに移動します。

3. スナップショットの作成ページで、リソースのタイプを選択フィールドの下にあるボリュームを選択します。 リソースのタイプをボリュームに設定することで、AWSに単一のEBSボリュームのスナップショットをキャプチャするよう指示します。EC2インスタンスに接続されているすべてのボリュームではありません。

4. 次に、ドロップダウンメニューからスナップショットを作成するEBSボリュームのボリュームIDを選択します。 ボリュームIDは、それぞれのEBSボリュームに割り当てられた一意の識別子です。次のスクリーンショットでは、このチュートリアルのボリュームID vol-0b4f056a0b709240aが選択されていることがわかります。

5. 今度は、説明フィールドにEBSスナップショットの説明を入力します。 説明フィールドはオプションで、最大255文字まで入力できます。
この説明は、後でEBSスナップショットのプロパティとして表示されます。このチュートリアルでは、ATAブログ用のボリュームスナップショットを使用します。

6. 次に、オプションのキー/値のペアを使用して、EBSスナップショットにタグを付けることができます。タグは、AWS内でリソースを管理および整理する強力な方法です。このチュートリアルでは、サーバーの一般的な使用例を示すタグを使用します。
その他の一般的なタグには、Name、Owner、Environment、Purposeなどがあります。

7. 今、スナップショットの作成ボタンをクリックして、EBSスナップショットを作成します。

このチュートリアルでは、暗号化フィールドはカバーされていません。暗号化されていないEBSボリュームから作成されたEBSスナップショットは、EBSスナップショットの作成時には暗号化されません。暗号化されていないEBSボリュームから取得したEBSスナップショットを暗号化するには、まず暗号化されていないEBSスナップショットを完了し、暗号化を適用して暗号化されたEBSスナップショットをコピーする必要があります。暗号化されたボリュームから取得されたスナップショットは自動的に暗号化されます。
8. 完了すると、EC2コンソールが以下の成功メッセージを表示します。メッセージを閉じるために閉じるを選択してください。

これで、コンソールにEBSスナップショットが表示され、保留中の状態になります。修正されたEBSボリュームのすべてのブロックがAmazon S3に転送されるまで、この状態のままになります。

初期のEBSスナップショットは、後続の増分バックアップとは異なり、完全なバックアップなので作成に時間がかかります。スナップショットが予想よりも時間がかかる場合は、画面の右上隅にある更新アイコンをクリックしてステータスを更新してください。
スナップショットが完了したら、以下のようにステータスが completedと表示されます。

AWS EC2のバックアップが作成されました!
AWS CLIを使用してEBSスナップショットを作成する
前のセクションでは、AWSのWebベースのコンソールを使用してEBSスナップショットを作成しましたが、それ以外にも方法があります!AWS CLIを使用してEC2インスタンスのバックアップを作成することもできます。
AWS CLIをインストールしてアカウントに認証されているという前提で、AWS CLIを使用してスナップショットを作成するには:
- WindowsコンピュータのコマンドプロンプトまたはPowerShellコンソールを開く
2. aws ec2 describe-volumes
コマンドを実行し、--query
パラメーターを使用してインスタンスとボリュームIDの一覧を出力します。スナップショットを作成したいボリュームIDをメモしておいてください。
3. aws ec2 create-snapshot
コマンドを実行し、以下のパラメーターを指定します:
volume-id
– バックアップを作成するEBSボリュームの一意のボリュームIDdescription
– バックアップに適用する説明tag-specifications
– バックアップに追加するタグ
次のコマンドは、--volume-id
パラメータを使用して指定したボリュームのスナップショットを作成します。スナップショットには、AWS CLIを使用したATAブログのボリュームスナップショットという説明と、名前:FileServer01と目的:エンタープライズファイルストレージの2つのタグが付いています。

AWSでは、AWS CLIコマンドのデフォルト出力形式をユーザーの好みに基づいて設定することができます。出力形式の選択肢には、JSON、YAML、YAML-Stream、テキスト、テーブルがあります。コマンドの出力は、AWS CLIの設定に依存し、上記の出力と異なる場合があります。
4. スナップショットの状態をaws ec2 describe-snapshots
コマンドで確認するために、スナップショットのIDを--snapshot-id
パラメータに指定してください。ステップ2で返されたSnapshotID
プロパティからスナップショットのIDを見つけます。
スナップショットのIDがわからない場合は、
aws ec2 describe-snapshots --owner self
を使用してすべてのスナップショットを検索してください。
describe-snapshots
コマンドは、最終的に以下のようにProgress
が100%
で、State
がcompleted
で返されるはずです。

素晴らしい仕事です!AWS CLIを使用してEBSスナップショットをプログラムで作成しました!
次のステップ
このチュートリアルでは、ウェブベースのAWSコンソールとプログラマティックなAWS CLIを使用して、Amazon EC2インスタンスのEBSスナップショットのバックアップの作成方法を学びました。
このチュートリアルで作成したスナップショットのテストが完了したら、削除することを忘れずに、料金が発生しないようにしてください!
さらに進んで、EC2インスタンスを復元することを試してみませんか?