AWS EC2バックアップの処理方法(EBSスナップショットを使用)

Amazon Web Services (AWS)のEC2インスタンスは、仮想マシン(VM)上でワークロードを実行する便利な方法です。しかし、それらが接続されているストレージが故障したり破損したりした場合はどうなるのでしょうか?AWS EC2のバックアップについて話し合う時が来ています。

EC2インスタンスのバックアップを行うとき、Elastic Block Store(EBS)ボリューム、具体的にはEBSスナップショットについて話します。EC2はすべてのボリュームをEBSで保存し、EBSスナップショットを取ることはデータをバックアップする素晴らしい方法です。

このチュートリアルでは、AWS Management ConsoleAWS Command Line Interface(AWS CLI)を使用してEBSスナップショットを作成する方法を学びます。

簡単な方法でEC2のバックアップ/EBSスナップショットを管理したい場合は、Veeam Backup for AWSを必ずチェックしてください。VeeamはEBSスナップショットの作成だけでなく、レプリケーションの管理、変更ブロックのインテリジェントな監視、パブリックAPIの提供も行います。

前提条件

この記事はチュートリアルです。ステップバイステップで進める予定の場合、以下が必要です:

IAMポリシーの作成およびAWSアプリケーションプログラミングインターフェース(API)の権限については、この記事の範囲外です。アクションの実行にアカウントを承認する際には、常に最小特権の原則に従ってください。

  • AWS CLIがインストールされ、ローカルマシンのIAMユーザーで認証されています。

AWS Management ConsoleからEBSスナップショットを作成する

EBSスナップショットを作成する方法はいくつかあります。AWS Management Consoleを使用してスナップショットを作成する方法を始めましょう。

EBSスナップショットにはストレージ料金が発生する場合があります。EBSの請求方法についての詳細は、AWSドキュメンテーションを参照してください。

EC2コンソールへのナビゲーション

以下の手順で開始します:

  1. AWS管理コンソールを開き、AWS(ルート)またはIAMアカウントの資格情報を提供してAWSアカウントにサインインします。

2. 画面の左上隅にあるサービスをクリックします。

AWS Management Console showing services drop-down menu.

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

AWS Management Console showing services drop-down menu and EC2 selection.

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

EC2 Console Resources Dashboard showing established resources.

EC2コンソールでEBSスナップショットを作成する

EC2コンソールに移動し、選択したリージョンを表示している場合、EBSスナップショット(AWS EC2バックアップ)を作成する準備が整いました。以下の手順で実行してください。

  1. 画面左側のナビゲーションペインから、Elastic Block Storeの下にあるスナップショットを選択します。
EC2 Console showing Snapshots selection.

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

Snapshots section of the EC2 Console showing Create Snapshot selection.

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

Create Snapshot menu showing Volume and Instance selection.

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

Create Snapshot menu showing completed Volume field.

5. 今度は、説明フィールドにEBSスナップショットの説明を入力します。 説明フィールドはオプションで、最大255文字まで入力できます。

この説明は、後でEBSスナップショットのプロパティとして表示されます。このチュートリアルでは、ATAブログ用のボリュームスナップショットを使用します。

Create Snapshot menu showing the completed Description field.

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

その他の一般的なタグには、Name、Owner、Environment、Purposeなどがあります。

Create Snapshot menu showing completed Tag field.

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

Create Snapshot menu showing Create Snapshot selection.

このチュートリアルでは、暗号化フィールドはカバーされていません。暗号化されていないEBSボリュームから作成されたEBSスナップショットは、EBSスナップショットの作成時には暗号化されません。暗号化されていないEBSボリュームから取得したEBSスナップショットを暗号化するには、まず暗号化されていないEBSスナップショットを完了し、暗号化を適用して暗号化されたEBSスナップショットをコピーする必要があります。暗号化されたボリュームから取得されたスナップショットは自動的に暗号化されます。

8. 完了すると、EC2コンソールが以下の成功メッセージを表示します。メッセージを閉じるために閉じるを選択してください。

Message indicating success Snapshot Create Request.

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

Snapshots section of the EC2 Console showing pending snapshot.

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

スナップショットが完了したら、以下のようにステータスが completedと表示されます。

Snapshots section of the EC2 Console showing completed snapshot.

AWS EC2のバックアップが作成されました!

AWS CLIを使用してEBSスナップショットを作成する

前のセクションでは、AWSのWebベースのコンソールを使用してEBSスナップショットを作成しましたが、それ以外にも方法があります!AWS CLIを使用してEC2インスタンスのバックアップを作成することもできます。

AWS CLIをインストールしてアカウントに認証されているという前提で、AWS CLIを使用してスナップショットを作成するには:

  1. WindowsコンピュータのコマンドプロンプトまたはPowerShellコンソールを開く

2. aws ec2 describe-volumesコマンドを実行し、--queryパラメーターを使用してインスタンスとボリュームIDの一覧を出力します。スナップショットを作成したいボリュームIDをメモしておいてください。

aws ec2 describe-volumes --query 'Volumes[*].Attachments[].{VolumeID:VolumeId,InstanceID:InstanceId}' --output text

3. aws ec2 create-snapshotコマンドを実行し、以下のパラメーターを指定します:

  • volume-id – バックアップを作成するEBSボリュームの一意のボリュームID
  • description – バックアップに適用する説明
  • tag-specifications – バックアップに追加するタグ

次のコマンドは、--volume-idパラメータを使用して指定したボリュームのスナップショットを作成します。スナップショットには、AWS CLIを使用したATAブログのボリュームスナップショットという説明と、名前:FileServer01目的:エンタープライズファイルストレージの2つのタグが付いています。

# ボリュームIDを挿入してください
aws ec2 create-snapshot --volume-id <your volume ID> --description 'Volume Snapshot for ATA Blog via the AWS CLI' --tag-specifications 'ResourceType=snapshot,Tags=[{Key=Name,Value=FileServer01},{Key=Purpose,Value=Enterprise File Storage}]' 
AWS CLI output showing successful command output.

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を使用してすべてのスナップショットを検索してください。

# スナップショットIDを挿入してください
aws ec2 describe-snapshots --snapshot-id <your snapshot ID>

describe-snapshotsコマンドは、最終的に以下のようにProgress100%で、Statecompletedで返されるはずです。

AWS CLI output showing completed EBS Snapshot.

素晴らしい仕事です!AWS CLIを使用してEBSスナップショットをプログラムで作成しました!

次のステップ

このチュートリアルでは、ウェブベースのAWSコンソールとプログラマティックなAWS CLIを使用して、Amazon EC2インスタンスのEBSスナップショットのバックアップの作成方法を学びました。

このチュートリアルで作成したスナップショットのテストが完了したら、削除することを忘れずに、料金が発生しないようにしてください!

さらに進んで、EC2インスタンスを復元することを試してみませんか?

Source:
https://adamtheautomator.com/aws-ec2-backup/