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

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

AWS EC2 バックアップ用 NAKIVO

AWS EC2 バックアップ用 NAKIVO

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: blog-temp

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

現在、当社のEC2インスタンスには2つのボリュームがアタッチされています(blog-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 ボリューム(容量は 1 GiB)を復元しましょう。このボリュームはファイルの保存に使用されており、オペレーティングシステムはこのボリュームにはインストールされていません。

  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スナップショットから復元された2つの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スナップショットを使用して作成されたバックアップは、クラッシュ一貫性を持つものの、アプリケーション一貫性を持つものではありません。

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

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

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

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

関連記事