如何為 AWS EC2 資料保護功能擷取 EC2 執行個體的快照

如果您正在使用 Amazon Web Services (AWS) 在 Elastic Compute Cloud 中運行 Amazon EC2 執行個體(虛擬機器),您可以透過多種方式保護工作負載,避免因軟體故障、惡意軟體感染、誤刪等原因導致的資料遺失。 其中一種可用的選項是 AWS 為 EC2 執行個體內建的備份特點,稱為 EBS 快照。這篇部落格文章將說明如何透過 EBS 卷宗快照來建立 EC2 執行個體的快照,並附有詳細的設定流程範例。

NAKIVO 適用於 AWS EC2 備份

NAKIVO 適用於 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) 是一個用於管理所有 AWS 運算、儲存及其他資源的圖形化網頁介面,包括建立 EBS 快照。

若要存取您要為其建立快照的 EC2 執行個體:

  1. 請使用具備建立 EC2 執行個體、EBS 卷宗及 EBS 快照所需權限的帳戶,登入 AWS 管理主控台。
  2. 點擊 Services 以及在 Compute 區段,點擊 EC2 以開啟用於管理 EC2 執行個體、EBS 儲存卷及其他 EC2 特點的控制台。

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

我們已準備好一個 EC2 執行個體,用以示範建立 EBS 快照的步驟。我們即將透過 EBS 快照進行備份與還原的 EC2 執行個體參數如下:

名稱: 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 執行個體的虛擬磁碟上建立兩個檔案。這樣一來,我們就能在從 EBS 快照還原執行個體後,檢查這些檔案是否已恢復。我們在使用者主目錄中建立兩個檔案:

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 卷的卷識別碼(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 卷。在此情況下,您可以為該 EC2 執行個體所掛載的所有 EBS 卷建立多卷快照,以進行 Amazon EC2 備份。

本節將探討:

為 EC2 執行個體建立第二個 EBS 儲存卷

首先,讓我們在用於示範的 EC2 執行個體上新增第二個 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,並使用以下標籤:

  • 說明: 部落格

  • 值: 暫存卷 2

點擊 Create Volume.

Options to create an EBS volume

  1. 請記住(或寫下)該磁碟區的識別碼 (vol-0b4a0000000003d01 (在我們的情況下)。點擊磁碟區識別碼以開啟磁碟區屬性。

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.

您可以在客體作業系統中選取用於存取已掛載磁碟區的裝置。在我們的情況下 /dev/sdf 被使用。

點擊 Attach 將新磁碟區掛載至 EC2 執行個體。

註: 該註解中顯示了有關重新命名磁碟裝置的有用資訊。在我們的情況下 /dev/sdf 已重新命名為 /def/xvdf 在客體作業系統中。
Options to attach the EBS volume to the EC2 instance

目前已有兩個卷掛載至我們的 EC2 執行個體(blog-temp):

vol-0617000000000763c

vol-0b4a0000000003d01

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

將資料寫入第二個 EBS 卷

接下來,我們將在第二個 EBS 卷上建立一個檔案。此檔案將用於檢查從 EBS 快照還原卷後,所有資料是否已成功恢復。因此,我們將建立一個分割區、建立檔案系統,並將該檔案系統掛載至運行於 EC2 執行個體上的 Linux 虛擬機器作業系統。

儘管我們主要關注 EBS 快照的操作,而非 EC2 執行個體上運作的 Linux 客體作業系統的操作,但我們仍列出相關指令,以便更深入理解磁碟區的操作。

Managing storage

  • 使用 lsblk 用來顯示 Linux 中區塊裝置的詳細資訊。
  • 使用 df -h 檢查已掛載磁碟的儲存空間。
  • 使用 mount 檢查已掛載的磁碟。

建立並掛載分割區

在 parted 中於第二個 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 執行個體所連接的第二個 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 將檔案存放在第一個卷上,以便更方便地偵測儲存至第一個卷新快照中的變更。

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

一旦將兩個包含新資料的 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

如果操作成功,您將看到以下訊息:

建立快照請求成功

顯示兩個 Amazon 快照識別碼: snap-0f95000000000de71 以及 0a91000000000769b 就我們的情況而言。

您可以儲存這些 ID 值,並點選其中一個來查看快照建立狀態。在啟動快照建立後,操作狀態為 待定 以及對 已完成 一旦流程結束。

The EC2 create snapshot operation is started for multiple EBS volumes

已為每個卷建立了一個新的快照。

使用 AWS CLI 建立快照

如果您偏好使用命令列介面,或需要自動化快照建立流程,可以使用 AWS CLI 作為 AWS 管理主控台的替代方案。

在 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 執行個體

還原第二個 EBS 卷

現在讓我們從快照還原第二個 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. 點擊 Create Volume 完成並使用 EBS 快照建立 EBS 卷。

recovering the EBS volume to create EC2 instance from snapshot

您將會看到以下訊息:

建立卷宗請求成功

您可以儲存此卷標識碼。新的卷標識碼是 vol-09cd000000000b502 就我們的情況而言。

successful recovery of the volume from the ebs snapshot

還原系統磁碟區

若要還原 EC2 執行個體,您需要還原安裝了作業系統的 EBS 儲存卷。在此情況下,您可以從客體作業系統所使用的 EBS 儲存卷快照建立映像檔,並使用此映像檔啟動執行個體(即還原後的 EC2 執行個體)。

建立圖像

  1. 在 EC2 管理主控台中,前往 Elastic Block Store > Snapshots 並選取安裝了客體作業系統的 EBS 卷所需要的快照。

我們選取客體作業系統(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 執行個體建立精靈隨即開啟。您必須選擇執行個體選項。您可以選擇與原始備份虛擬機器所選選項相同的設定。您也可以將執行個體還原至一台效能更強大的新 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. 本頁新增了一行,其中包含卷快照選項。請在 Snapshot 欄位。

我們輸入 snap-0a91000000000769b, 這是我們 1 GiB 卷快照的 ID。在本範例中,預設選取的卷大小為 8 GiB。我們可以將卷大小設定為 1 GiB,與原始 EBS 卷的配置一致。您也可以選取儲存裝置、卷類型、加密以及終止時刪除等選項。

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 在對安裝作業系統的 EBS 卷執行第一次和第二次快照之前所建立的檔案仍然存在。

掛載位於第二個磁碟(EBS 卷)上的分割區:

sudo mount /dev/xvdb1 /disk2/

分區名稱已變更為 /dev/xvdb1請注意,您可能需要編輯 /etc/fstab 在還原實例以進行自動掛載後。

ls -al /disk2/

d2-file01.txt 還原後,該檔案會存在於儲存於第二個 EBS 卷上的檔案系統中。

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

包含所有已掛載 EBS 卷的 AWS EC2 執行個體已成功從 EBS 快照還原。所有必要資料均已完整保留。

結論

您可以備份單一卷,或透過多卷快照來備份所有卷。這是 AWS 為資料保護與災難還原所提供的一項非常實用的原生功能性。 但請注意,將 EBS 快照儲存於 Amazon 雲端時會產生額外費用,因為這會佔用額外的雲端儲存空間。此外,使用 EBS 快照進行備份還存在其他限制,例如快照建立系統無法偵測到快照擷取當下正在寫入的檔案。因此,透過 EBS 快照所做的備份僅具備"崩潰一致性",而非"應用程式一致性"。

NAKIVO Backup & Replication 是一款資料保護解決方案,可支援建立 應用程式感知備份 以及 Amazon EC2 執行個體的複本。您亦可透過此解決方案,大幅簡化並自動化備份與還原流程。無需手動還原 EBS 儲存卷、建立 Amazon EC2 執行個體,並將儲存卷手動掛載至已建立的 Amazon EC2 執行個體,即可從備份中快速還原整個 Amazon EC2 執行個體。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read