AWS EC2 データ保護のための EC2 インスタンスのスナップショット作成方法

Elastic Compute Cloud(EC2)でEC2インスタンス(VM)を実行するためにAmazon Web Services(AWS)をご利用の場合、ソフトウェアの障害、マルウェア感染、誤削除などによるデータ損失からワークロードを保護する方法はいくつかあります。 その選択肢の一つが、EC2インスタンス向けのAWS標準機能である"EBSスナップショット"です。本ブログ記事では、EBSボリュームスナップショットを使用してEC2インスタンスのスナップショットを作成する方法について、設定プロセスの詳細な例を交えて解説します。

NAKIVO for AWS EC2 バックアップ

NAKIVO for AWS EC2 バックアップ

Amazon EC2インスタンスのEC2、AWS S3、およびオンプレミスへのバックアップ。ランサムウェア対策オプション。インスタンスおよびアプリケーションオブジェクトの迅速な復旧。

EBSスナップショットとは何ですか?

EBSスナップショットは、Elastic Block Store(EBS)ボリュームの増分コピーであり、Amazon S3に保存されます。つまり、初めてEBSスナップショットを作成する際にはフルバックアップが作成され、その後のEBSスナップショットでは変更されたデータのみがコピーされます。EBSボリュームは、EC2インスタンスにアタッチされた仮想ディスクです。

EBSスナップショットはAmazon S3に保存されますが、S3ストレージ内のスナップショットに手動でアクセスすることはできません。 これらのスナップショットは、EC2管理コンソールで管理できます。

注: "AWS EC2 スナップショット"や"Amazon スナップショット"という用語は、EBS スナップショットを指す場合にも使われることがあります。

EBSスナップショットの仕組み

EBSスナップショットは、EC2インスタンスのデータをブロック単位でバックアップしたものであり、スナップショットコマンドが実行された特定の時点におけるEBSボリュームの状態を表しています。つまり、インスタンスが稼働中の場合、スナップショットの取得が開始された後にEBSボリュームに書き込まれたデータブロックは ではない スナップショットに保存されます。その結果、EBSスナップショットは クラッシュ一貫性のあるバックアップと、アプリケーション一貫性のないバックアップ.

EBSスナップショットは、VMware vSphereやMicrosoft Hyper-Vにおけるスナップショットとは異なる点に注意してください。Hyper-Vおよび VMwareのスナップショットはバックアップではありません また、適切なバックアップの代わりにはなりません。

ただし、 EBSスナップショットの制限事項これには、スケジュール設定や保存期間のオプションがないこと、オンプレミスでのコピーを作成できないこと、および復旧を簡素化するためのアプリケーション一貫性のあるEC2スナップショットの作成が複雑であることが含まれます。

AWSコンソールでEC2インスタンスのスナップショットを作成する方法

AWS Management Console は、EBS スナップショットの作成を含め、AWS のすべてのコンピューティング、ストレージ、およびその他のリソースを管理するために使用される GUI ウェブインターフェースです。

スナップショットを作成したい EC2 インスタンスにアクセスするには:

  1. EC2インスタンス、EBSボリューム、およびEBSスナップショットを作成するための必要な権限を持つアカウントを使用して、AWS Management Consoleにサインインしてください。
  2. クリック Services そして、その Compute セクションで、[クリック] EC2 EC2インスタンス、EBSボリューム、およびその他のEC2機能の管理コンソールを開くには。

Using AWS Management Console to create snapshot of EC2 instance (EBS snapshot)

EBSスナップショットの作成手順を説明するために、EC2インスタンスを用意しました。EBSスナップショットを使用してバックアップおよび復元を行うこのEC2インスタンスのパラメータは、以下の通りです:

Name: ブログ用テンプレート

EC2インスタンスID: i-0071290000000cb84

インスタンスタイプ: t2.micro

アベイラビリティゾーン: eu-central-1c

EBS 第1巻: vol-0617000000000763c

ボリュームの種類: gp2

巻数: 8 GB

EC2インスタンス上で動作しているゲストOSは、Ubuntu Server(Linux)です。

EBSボリュームへのファイル書き込み

スナップショットを作成する前に、EC2インスタンスにアタッチされた仮想ディスク上に2つのファイルを作成しましょう。こうすることで、EBSスナップショットからインスタンスを復元した後、これらのファイルが復元されているかどうかを確認できます。ユーザーホームディレクトリに2つのファイルを作成します:

lspci > file01.txt

echo "test EC2 snapshot 01" > snapshot01.txt

Creating files on an instance before taking snapshot of EC2 instance

インスタンスの準備

スナップショットに一貫性のあるデータが含まれるように、EC2インスタンスを停止してください。その理由は、EBSボリュームがブロックレベルで動作するためです。EBSスナップショットが作成されると、その時点でのEBSボリュームの状態が保存されます。ストレージブロックはそのままの状態で保存されます。システムは、その時点でファイルシステムレベルで行われたファイル操作を認識しません。スナップショット作成時にEBSボリュームへのファイル書き込みが行われている場合、スナップショットには一貫性のないデータが含まれてしまいます。 この影響は、ファイルの書き込み中に物理コンピュータの電源ケーブルを抜くのと同様です。

非システム用 EBS ボリュームのスナップショットを取得する場合は、ボリューム上でファイル書き込み操作が行われていないことを確実にするために、オペレーティングシステムからファイルシステムをアンマウントできます。EC2 インスタンスのスナップショットを取得するには、ハイバネーションを無効にする必要があります。

EC2 インスタンスをスナップショット取得用に準備するには:

  1. EC2管理コンソールで、EC2インスタンスの一覧が表示されたページを開きます。インスタンス名を右クリックし、コンテキストメニューから Stop instance.

Stopping the EC2 instance before creating a new snapshot in AWS

  1. EC2インスタンスが使用しているボリュームを探します。[ ] をクリックします。 Storage タブをクリックし、該当するEBSボリュームのボリュームIDをクリックします(vol-0617000000000763c (当方のケースでは)。

Selecting the EBS volume attached to the EC2 instance to create snapshot of EC2 instance

スナップショットを撮る

EC2インスタンスのスナップショットを作成する準備が整いました:

  1. EBSボリュームを選択し(行の左側にあるチェックボックスをクリック)、[クリック] Actions > Create Snapshot.

Selecting the Create Snapshot option in the Actions menu

  1. 説明を入力し、暗号化設定を行い、タグを追加します。私は以下のパラメータを使用しています:
  • 説明: EBSスナップショットブログ 01
  • 暗号化: 暗号化されていない

クリック Create Snapshot.

注: 暗号化されていないボリュームを使用し、暗号化されていないスナップショットを作成します。この場合、スナップショットの暗号化設定は手動で設定できます。暗号化されたボリュームのスナップショットを作成すると、そのスナップショットは自動的に暗号化されます。

Setting description, encryption, and tags in the Create Snapshot window

  1. 次のようなメッセージとスナップショットIDが表示されるはずです:

スナップショットの作成リクエストが成功しました
snap-0778000000000ab40

スナップショットのIDをクリックすると、スナップショットのオプションとステータスが表示されたページが開きます。

EC2 Create snapshot request succeeded

  1. その 保留中 "スナップショット作成中"というステータスは、EBSボリュームのデータが現在Amazon S3へ転送されていることを意味します。スナップショットの作成が完了するまでお待ちください(ステータスが 完了)。所要時間は、スナップショットに保存されるデータのサイズによって異なります。

The create ebs snapshot process is in progress

複数ボリュームのスナップショットを作成する方法

EC2インスタンスが複数のEBSボリュームを使用しているケースはよくあります。この場合、Amazon EC2のバックアップとして、そのEC2インスタンスにアタッチされているすべてのEBSボリュームを対象としたマルチボリュームスナップショットを作成できます。

このセクションでは、以下の内容について説明します:

EC2インスタンス用に2つ目のEBSボリュームを作成する

まず、デモ用に使用しているEC2インスタンスに、2つ目のEBSボリュームを追加してみましょう:

  1. EC2管理コンソールのナビゲーションペインで、[ ] に移動します Elastic Block Store > Volumes. クリック Create Volume.

Adding a volume for steps on how to take snapshots in aws of multiple EBS volumes

  1. ~のために アベイラビリティゾーン、その領域はインスタンスの領域と同じでなければなりません(eu-central-1c (当方のケースでは)。

ボリュームの種類とサイズを入力し、暗号化オプションを設定して、タグを入力します。タグは、ボリュームの一覧から目的のボリュームを見つけるのに役立ちます。ここでは、ボリュームサイズを 1 GiB に設定し、以下のタグを使用します:

  • 凡例: ブログ

  • 値: 『temp』第2巻

クリック Create Volume.

Options to create an EBS volume

  1. ボリュームのIDを覚えておく(または書き留めておく) (vol-0b4a0000000003d01 (当方の環境では)。ボリュームIDをクリックして、ボリュームのプロパティを開きます。

The ebs volume has been created

  1. ボリュームをEC2インスタンスにアタッチします。ボリュームを右クリックするか、[クリック] をクリックします。 Actions そして、表示されるメニューで、[クリック] Attach Volume.

Attaching the EBS volume to the EC2 instance

  1. EBSボリュームをアタッチするインスタンスを選択してください。EC2インスタンスIDを選択する必要があります。今回の例では、インスタンスIDは i-0071290000000cb84.

ゲストOS上で、接続されたボリュームにアクセスするために使用するデバイスを選択できます。今回のケースでは /dev/sdf が使用されます。

クリック Attach 新しいボリュームをEC2インスタンスにアタッチします。

注: ディスクデバイスの名前変更に関する有用な情報が注記に表示されています。今回のケースでは /dev/sdf は次のように名前が変更されます /def/xvdf ゲストOS内で。
Options to attach the EBS volume to the EC2 instance

現在、2つのボリュームが当社のEC2インスタンスにアタッチされています(ブログ-temp):

vol-0617000000000763c

vol-0b4a0000000003d01

Two EBS volumes are attached to instance to create snapshot of EC2 instance

2番目のEBSボリュームへのデータ書き込み

次に、2つ目のEBSボリューム上にファイルを作成します。このファイルは、EBSスナップショットからボリュームを復元した後、すべてのデータが復旧されているかを確認するために使用されます。そのため、パーティションを作成し、ファイルシステムを作成して、EC2インスタンス上で実行されているゲストLinux OSにそのファイルシステムをマウントします。

ここでは、EC2インスタンス上で実行されているゲストLinux OSでの操作ではなく、EBSスナップショットを用いた操作に焦点を当てていますが、ボリュームの操作をより深く理解するために、使用するコマンドを記載します。

Managing storage

  • 使用 lsblk Linuxでブロックデバイスの詳細を表示するには。
  • 使用 df -h マウントされたディスクの空き容量を確認するには。
  • 使用 mount マウントされたディスクを確認するには。

パーティションの作成とマウント

parted を使用して 2 番目の EBS ボリュームにパーティションを作成し、フォーマットする:

sudo parted -l

parted /dev/xvdf

(parted) mklabel msdos

(parted) print

(parted) mkpart primary ext4 1MB 955MB

(parted) print

(parted) quit

準備したパーティションにファイルシステムを作成する:

mkfs.ext4 /dev/xvdf1

マウントポイントとして使用するディレクトリを作成します:

mkdir disk2

ファイルシステムを含むパーティションを作成したディレクトリにマウントする:

mount /dev/xvdf1 /disk2/

マウントされたパーティションのディレクトリに移動します:

cd /disk2

2つのEBSボリュームへの変更内容を記録する

  1. Linux を実行している EC2 インスタンスにアタッチされた 2 番目の EBS ボリューム上のパーティションに、ファイルを作成します:

echo "EBS snapshot for disk 2" > /disk2/d2-file01.txt

Creating a file to be restored on the EBS volume by using a snapshot in AWS

  1. 最初のディスクに変更を加え、EC2インスタンスで使用されている最初のボリュームの新しいEBSスナップショットを作成します。両方のボリュームには、前回のスナップショットが作成された時点からの変更が含まれている必要があります。

私たちは snapshot02.txt 第1ボリュームのファイルに保存することで、第1ボリュームの新しいスナップショットに保存された変更をより簡単に検出できるようにします。

Adding a file to the home directory stored on the first EBS volume

新しいデータを含む2つのEBSボリュームをEC2インスタンスにアタッチしたら、マルチボリュームスナップショットを作成できます。

複数ボリュームのスナップショットの作成

  1. 移動 Elastic Block Store > Snapshots EC2インスタンス管理ページのナビゲーションペインで。クリック Create Snapshot.

Clicking the Create Snapshot button in the Amazon web interface to take EC2 snapshots in AWS

  1. リソースの種類を選択してください: インスタンス.
  2. EBSスナップショットを使用してボリュームをバックアップしたいEC2インスタンスのインスタンスIDを入力してください。

選択したインスタンスにアタッチされているすべてのボリュームが自動的に選択されます。

  1. 必要に応じてAWSでEBSスナップショットを検索しやすいように、説明を入力してください。この例では、説明は EBSスナップショットブログ 02.
  2. [選択] ボリュームからタグをコピーする EBSボリュームに割り当てられたタグを使用する場合は、このチェックボックスにチェックを入れてください。
  3. 一度当たると Create Snapshot、選択されたすべてのボリュームのスナップショットが作成されます。

How to take snapshot in AWS for multiple EBS volumes

処理が正常に完了すると、次のようなメッセージが表示されます:

スナップショットの作成リクエストが成功しました

2つのAmazonスナップショット識別子が表示されます: snap-0f95000000000de71 そして パチン0a91000000000769b 私たちの場合。

これらのID値を保存しておき、そのうちの1つをクリックしてスナップショットの作成状況を確認できます。スナップショットの作成を開始した直後、操作の状態は 保留中 および変更点 完了 処理が完了したら。

The EC2 create snapshot operation is started for multiple EBS volumes

各ボリュームに対して新しいスナップショットが作成されました。

AWS CLI を使用したスナップショットの作成

コマンドラインインターフェースを好む場合や、スナップショットの作成を自動化する必要がある場合は、AWS Management Consoleの代わりにAWS CLIを使用できます。

AWS CLIでEBSスナップショットを作成するコマンドは次のとおりです:

aws ec2 create-snapshot --volume-id vol-0b4a51e1cea333d01 --description "This is a test snapshot for the blog"

出力は次のようになります:

{

"Description": "This is a test snapshot for the blog",

"Tags": [],

"Encrypted": false,

"VolumeId": "vol-0b4a51e1cea333d01",

"State": "pending",

"VolumeSize": 8,

"StartTime": "2021-08-28T21:06:01.000Z",

"Progress": "",

"OwnerId": "012345678910",

"SnapshotId": "snap-0689749a39a7b822b"

}

タグ付きスナップショットを作成するコマンド:

aws ec2 create-snapshot --volume-id vol-0b4a51e1cea333d01 --description 'Prod backup' --tag-specifications

'ResourceType=snapshot,Tags=[{Key=Blog,Value=Test},{Key=AWS,Value=EC2-snapshot}]'

EBSスナップショットを使用してEC2インスタンスを復元する方法

Amazon EC2インスタンスにアタッチされたEBSボリュームのスナップショットを作成しました。これらのスナップショットは、AWSにおけるデータバックアップの一種です。それでは、スナップショットからEC2インスタンスを復元して作成する方法を見ていきましょう。

  • AWS内の特定のEBSボリューム
  • EC2インスタンス全体

2番目のEBSボリュームの復元

スナップショットから2番目のEBSボリューム(サイズ1GiB)を復元しましょう。このボリュームはファイルの保存に使用されており、オペレーティングシステムはこのボリュームにはインストールされていません。

  1. EC2管理コンソールのナビゲーションペインで、[ ] に移動します Elastic Block Store > Snapshots.

""と入力しますブログ検索フィールドに""と入力すると、このブログ記事の作成に使用したEC2インスタンスのEBSボリュームに対して作成されたすべてのスナップショットが表示されます。これが、説明文やタグを追加する価値がある理由の一例です。

  1. 1 GiBのボリュームのスナップショットを選択し、そのスナップショットから新しいボリュームを作成します。スナップショットを右クリックし、表示されるメニューで Create Volume.

how to create EC2 instance from snapshot in AWS

  1. 必要なボリュームパラメータを ボリュームを作成する ページ:ボリュームの種類を選択し、ボリュームのサイズ、アベイラビリティゾーン、暗号化オプション、タグ、キー、および値を指定します。

アベイラビリティゾーンは、EC2インスタンスのものと同じである必要があります(eu-central-1c (今回のケースでは)。

この例では、ボリュームサイズは元のバックアップ対象ボリュームのサイズ(1 GiB)と同じです。

タグキーは ブログ そして、その値は 復元された巻1.

 

  1. ヒット Create Volume EBSスナップショットを使用してEBSボリュームの作成を完了します。

recovering the EBS volume to create EC2 instance from snapshot

次のメッセージが表示されます:

ボリューム作成リクエストが成功しました

ボリュームIDを保存できます。新しいボリュームIDは vol-09cd000000000b502 私たちの場合。

successful recovery of the volume from the ebs snapshot

システムボリュームの復元

EC2インスタンスを復元するには、オペレーティングシステムがインストールされているEBSボリュームを復元する必要があります。この場合、ゲストオペレーティングシステムで使用されているEBSボリュームのスナップショットからイメージを作成し、そのイメージを使用してインスタンスを起動することができます(これが復元されたEC2インスタンスとなります)。

画像の作成

  1. EC2管理コンソールで、[ ] に移動します Elastic Block Store > Snapshots そして、ゲストOSがインストールされているEBSボリュームの必要なスナップショットを選択します。

ゲストOS(Ubuntu Server)で使用されている8 GiBのボリュームの最新のスナップショットを選択します。このEBSボリュームのスナップショットは、EC2インスタンスのマルチボリュームスナップショットを作成した際に作成されたものです。

スナップショットを右クリックし、表示されるメニューから Create Image.

 

How to create EC2 instance from snapshot – creating an image

  1. 開いたウィンドウで、必要な情報を入力し、EBSスナップショットからイメージを作成するためのオプションを選択します。ここでは、以下のパラメータを使用します。

名前: ブログが復旧しました

説明: EBSスナップショットから復元(ブログ)

その他の設定はデフォルトのままにします。

ヒット Create.

How to create EC2 instance from snapshot by using AMI

  1. その 画像作成のリクエストを受信しました ダイアログボックスが表示されます。画像のIDをクリックすると、その画像に関する情報を表示できます(ami-08ed800000000872a (当方のケースでは)。画像の作成が完了するまでお待ちください。

creating the image from the ec2 snapshot

画像の表示

画像を作成したら、その画像を右クリックして Launch.

Launching the AMI to create EC2 instance from snapshot

新しいEC2インスタンス作成ウィザードが開きます。インスタンスのオプションを選択する必要があります。バックアップ元のVMで選択されていたものと同じオプションを選択することも可能です。また、より高性能な新しいEC2インスタンスにインスタンスを復元することもできます。

注: 次のページにリダイレクトされます Step 2 ウィザードの(代わりに Step 1. Choose AMI) すでに選択済みですので、 ブログが復旧しました AMI一覧ページからAMIを選択します。

Step 2: Choose an Instance Type. 私たちは選定します t2.micro インスタンスタイプとして。クリック Next ウィザードの各ステップで、続行してください。

restoring the EC2 instance from ec2 snapshots

Step 3: Configure Instance. 要件に応じて、ネットワーク設定、IAMロール、シャットダウン時の動作など、詳細を設定してください。

Step 4: Add Storage EBSスナップショットを使用してEC2インスタンスを復元する際は、これが重要です。クリック Add New Volume. このページに、ボリュームのオプションを含む新しい行が追加されます。必要なボリュームスナップショットのIDを Snapshot フィールド。

入力します snap-0a91000000000769b, これは、1 GiBのボリュームのスナップショットのIDです。この例では、デフォルトで8 GiBのボリュームサイズが選択されています。元のEBSボリュームの設定に合わせて、ボリュームサイズを1 GiBに設定することも可能です。また、ストレージデバイス、ボリュームタイプ、暗号化、および終了時に削除するオプションも選択できます。

Attaching the EBS volume recovered from the AWS snapshot to the EC2 instance

Step 5: Add Tags. タグが検索に役立つものであることを確認してください。タグはすべてのボリュームおよびインスタンスに適用されます。この例では、タグのキーは ブログ そして、その値は 復旧したVM 01.

adding tags to a recovered EC2 instance

Step 6: Configure Security Group. EC2インスタンスのネットワークトラフィックを制御するために、パラメータを編集してください。

Step 7: Review Instance Launch. インスタンスの起動詳細を確認し、[実行]をクリックしてください Launch 完了するには、EC2インスタンスにアクセスするためにキーペアを選択するか、新しいキーペアを作成する必要があります。

  1. その 打ち上げ状況 ページが表示されます。クリックしてください View instances.

launching ec2 instance from an EBS volume snapshot

  1. 復元するインスタンスの名前を入力してください(ブログが復旧しました (当方のケースでは)。復元されたE2インスタンスの状態は 走行中EBSスナップショットから復元された両方のEBSボリュームは、EC2インスタンスにアタッチされています(下のスクリーンショットを参照)。

the EC2 instance has been restored from ebs snapshots

復元されたファイルの確認

最新のスナップショットを作成する前に作成されたファイルが復元されているか確認してみましょう:

接続されているブロックデバイスを一覧表示します:

lsblk

ユーザーの現在の(ホーム)ディレクトリにあるファイルを一覧表示します:

ls -al

その snapshot01.txt そして snapshot2.txt OSがインストールされているEBSボリュームの1回目および2回目のスナップショットを撮影する前に作成されたファイルが存在します。

2番目のディスク(EBSボリューム)にあるパーティションをマウントします:

sudo mount /dev/xvdb1 /disk2/

パーティション名が変更されました /dev/xvdb1. 必要に応じて編集する必要があるかもしれないことに留意してください /etc/fstab インスタンスを復元した後、自動マウントを行う。

ls -al /disk2/

d2-file01.txt 復元後、2番目のEBSボリュームに保存されたファイルシステム上に存在します。

snapshots of ec2 instance were used to restore EBS volumes with files stored on them

AWS EC2インスタンスおよびそれにアタッチされているすべてのEBSボリュームは、EBSスナップショットから正常に復元されました。必要なデータはすべて保持されています。

結論

単一のボリュームをバックアップすることも、マルチボリュームスナップショットを使用してすべてのボリュームをバックアップすることも可能です。これは、データ保護や災害復旧において非常に便利なAWSのネイティブ機能です。 ただし、AmazonクラウドにEBSスナップショットを保存する際は、追加のクラウドストレージが使用されるため、追加費用が発生することに注意してください。さらに、EBSスナップショットをバックアップに使用する場合、スナップショット作成システムがスナップショット取得の瞬間に書き込まれているファイルを認識できないなど、その他の制限もあります。その結果、EBSスナップショットを使用して作成されたバックアップは、クラッシュ一貫性(crash-consistent)は保たれますが、アプリケーション一貫性(application-consistent)は保たれません。

NAKIVO Backup & Replication は、以下の作成をサポートするデータ保護ソリューションです アプリケーションを意識したバックアップ およびAmazon EC2インスタンスのレプリカ。また、このソリューションを活用することで、バックアップと復旧のプロセスを大幅に簡素化・自動化できます。EBSボリュームの復旧やEC2インスタンスの作成、作成したEC2インスタンスへのボリュームの手動アタッチといった作業を行うことなく、バックアップからEC2インスタンス全体を迅速に復旧できます。

試してみてください NAKIVO Backup & Replication

試してみてください NAKIVO Backup & Replication

無料トライアルをご利用いただき、本ソリューションのデータ保護機能をすべてお試しください。15日間無料です。機能や容量の制限は一切ありません。クレジットカードも不要です。

People also read