資料保護基礎:如何備份 Amazon S3 儲存桶

Amazon S3 是由 Amazon Web Services (AWS) 提供的可靠雲端儲存服務。檔案會以物件的形式儲存於 Amazon S3 儲存桶中。由於 Amazon S3 具備高度可靠性,此儲存服務廣泛用於儲存資料備份。與 Amazon Elastic Block Storage (EBS) 將冗餘資料儲存於單一可用區域不同,在 Amazon S3 中,冗餘資料會分散儲存於多個可用區域。

若某個可用區域的資料中心無法運作,您仍可存取位於其他可用區域的資料。在某些情況下,您可能需要備份儲存於 Amazon S3 儲存桶中的資料,以避免因人為錯誤或軟體故障導致的資料遺失。若具有 S3 儲存桶存取權限的使用者刪除資料,或透過寫入不必要的變更而導致資料損毀,資料便可能遭刪除或損毀。軟體故障亦可能造成類似的後果。

直接備份至 AWS S3 | NAKIVO

直接備份至 AWS S3 | NAKIVO

透過簡單的 Amazon S3 整合及防勒索軟體的不可變性選項,避免單點故障。具備自動備份分層與快速還原特點。

Amazon S3 版本控制

Amazon S3 的對象版本控制是一個有效的特點,可以保護您儲存桶中的資料免受損壞、寫入不想要的更動和刪除。當對 Amazon S3 中的檔案(即儲存為物件)進行更動時,便會創建該物件的新版本。同一個物件的多個版本儲存在一個儲存桶中。您可以存取並重新儲存物件的先前版本。如果物件被刪除,將會在該物件上標記為“刪除標記”,但您可以反轉此操作,重新開放刪除前的物件版本。Amazon S3 版本控制可在無額外 S3 備份軟體的情況下使用。

您可以使用生命周期原則來定義應在 S3 儲存桶中儲存版本的時間長度,從而形成一種 Amazon S3 備份。如果適當配置生命周期原則,則儲存附加版本的額外成本不會很高,且新版本會替換掉最舊的版本。舊版本可以刪除或移動至更具成本效益的儲存(例如冷存儲)以優化成本。

如何啟用 AWS S3 版本控制

使用擁有足夠權限的帳戶登入 AWS Management Console。點擊Services,然後在S3 儲存 類別中選擇

Backup to Amazon S3 – opening the S3 storage page in AWS Management Console

在導航窗格中,點擊Buckets並選擇您要啟用版本控制的 S3 儲存桶。在此範例中,選擇名為 blog-bucket01 的儲存桶。點擊儲存桶名稱以打開其詳細資訊。

Backup to Amazon S3 – selecting a bucket

為所選儲存桶開啟Properties 標籤。

儲存桶版本控制 部分,點擊Edit

How to enable AWS S3 versioning

預設情況下,儲存桶版本控制已停用。

點擊Enable以開啟儲存桶版本控制。

點擊Save Changes

將顯示提示,您可能需要更新生命周期規則。這是下一步。

Editing Amazon S3 versioning settings

如果組態變更已應用,頁面頂部將顯示訊息: 已成功編輯儲存桶版本控制

生命周期規則

為了設定 Amazon S3 版本控制的生命周期規則,請至所選儲存桶的頁面上的Management標籤。在 生命周期規則 部分,點擊Create lifecycle rule

How to create a lifecycle rule for a bucket when AWS S3 versioning is enabled

建立生命周期規則 頁面已打開。

Lifecycle Rule configuration. 輸入生命周期規則名稱,例如, Blog lifecycle 01

選擇規則範疇。您可以應用篩選器以將生命周期規則適用於特定物件,或將規則應用於儲存桶中的所有物件。 定義物件標籤,以指定必須套用生命週期動作的物件。在相應欄位中輸入鍵值對,然後按一下 Add tag 按鈕以新增標籤,或按一下 Remove 按鈕以移除標籤。

Configuring a lifecycle rule to meet the AWS backup strategy

Lifecycle rule actions. 選擇您希望此規則執行的動作:

  • 轉換 當前 物件版本在儲存類別間的轉換
  • 轉換 先前 物件版本在儲存類別間的轉換
  • 過期 當前 物件版本
  • 永久刪除 先前 物件版本
  • 刪除已過期的刪除標記或未完成的多部分上傳

Using Amazon S3 for backup – configuring lifecycle rule actions

Transition noncurrent versions of objects between storage classes

選擇儲存類別轉換,以及物件在經過多少天後會被視為非當前。

在我的範例中,物件會在 35 天後從當前的 S3 儲存類別移至 Standard-IA

Permanently delete previous versions of objects

輸入過往版本必須被刪除的天數。此值必須大於物件被視為過期的天數。在我的範例中,物件會在 40 天後被永久刪除。

點擊 Create Rule 以建立生命週期規則。

AWS S3 backup – configuring options for a lifecycle rule

複製儲存桶

除了使用 Amazon S3 自動備份外,您也可以跨區域複製儲存桶。您需要建立另一個位於不同區域的目標儲存桶,並建立一則複製規則。建立複製規則後,來源儲存桶中的所有變更都會自動反映在目標儲存桶中。

在來源儲存桶的 Replication rules 管理 分頁中,找到 區段,然後點擊 Create replication rule

S3 bucket replication is an alternative to Amazon S3 backup

系統將開啟 建立複製規則 頁面。

輸入複製規則名稱,例如: “Blog S3 儲存桶複製”

定義規則建立時的狀態(enableddisabled)。

Configuring a replication rule for an S3 bucket

來源儲存桶。來源儲存桶已選取( blog-bucket01 )。

選擇規則範圍。您可以將複製規則套用至儲存桶中的所有物件,或設定篩選條件並將規則套用至自訂物件。

目標。 輸入目標儲存桶名稱,或點擊 Browse S3 並從清單中選取儲存桶。您可以選取此帳戶或另一個帳戶中的儲存桶。若來源儲存桶已啟用 AWS S3 版本控制,則目標儲存桶也必須啟用物件版本控制。系統會顯示所選目標儲存桶的目標區域。 Amazon S3 bucket replication – selecting a bucket

設定身分與存取管理 (IAM) 角色,然後選擇儲存類別及額外的複製選項。按一下” Save “以儲存設定,並為該儲存桶建立複製規則。

Configuring options for Amazon S3 bucket replication

AWS S3 備份(透過 CLI)

AWS CLI 是一個功能強大的命令列介面,可用於操作各種 Amazon 服務,包括 Amazon S3。 其中有一項實用的 sync 指令,可讓您將 Amazon S3 儲存桶備份至 Linux 機器,方法是將儲存桶中的檔案複製到運行於 Amazon EC2 執行個體上的 Linux 系統的本地目錄中。

AWS CLI 中 sync 指令的一項特點是,若來源 S3 儲存桶中缺少某個檔案,本地檔案系統(Amazon S3 備份目的地)中的該檔案並不會被刪除,反之亦然。 這對 AWS S3 備份至關重要,因為若 S3 儲存桶中的某些檔案不慎被刪除,同步完成後,Linux 主機的本地目錄中現有檔案並不會被刪除。

優點:

  • 支援大型 S3 儲存桶且具備可擴展性
  • 同步過程中支援多執行緒
  • 僅同步新檔案及已更新檔案的能力
  • 憑藉智慧演算法實現高速同步

缺點:

  • 在 EC2 執行個體上運行的 Linux 會佔用 EBS 卷的儲存空間。EBS 卷的儲存成本高於 S3 儲存桶。

本教學使用 Ubuntu Server 的指令。

首先,您需要安裝 AWS CLI。

更新儲存庫樹:

sudo apt-get update

安裝 AWS CLI:

sudo apt install awscli

安裝 unzip:

sudo apt install unzip

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

unzip awscli-exe-linux-x86_64.zip

sudo ./aws/install

檢查您 EC2 執行個體上 Linux 系統中的 AWS 憑證。

aws configure list

若尚未設定憑證,請從 Linux 執行個體透過 AWS CLI 新增存取 AWS 的憑證:

aws configure

輸入以下參數:

AWS 存取金鑰 ID

AWS 秘密存取金鑰

預設區域名稱

預設輸出格式

建立一個目錄來儲存您的 Amazon S3 備份。在本範例中,我建立 ~/s3/ 目錄來儲存 S3 備份,並在其中建立一個名稱與儲存桶名稱相同的子目錄。 儲存於 S3 儲存桶中的檔案應複製到 Linux 機器上的此本機目錄中。~ 代表使用者的家目錄,以我的情況為例,即 /home/ubuntu

mkdir -p ~/s3/your_bucket_name

請將 your_bucket_name 替換為您的儲存桶名稱(本範例中為 blog-bucket01 )。 mkdir -p ~/s3/blog-bucket01

將儲存桶的內容與運行 Linux 的 EC2 執行個體上的本地目錄同步:

aws s3 sync s3:// blog-bucket01 /home/ubuntu/s3/ blog-bucket01/

若憑證設定、儲存桶名稱及目標路徑均正確無誤,資料應會開始從 S3 儲存桶下載。完成此操作所需的時間取決於儲存桶中檔案的大小以及您的網際網路連線速度。

Amazon S3 自動備份

您可以透過 AWS CLI sync 設定 Amazon S3 自動備份工作。 建立一個 sync.sh 腳本檔案來執行 AWS S3 備份(將檔案從 S3 儲存桶同步到您的 Linux 執行個體上的本機目錄),然後按排程執行此腳本。

nano /home/ubuntu/s3/sync.sh

#!/bin/sh

# Display the current date and time

echo '-----------------------------'

date

echo '-----------------------------'

echo ''

# Display the script initialization message

echo 'Syncing remote S3 bucket...'

# Running the sync command

/usr/bin/aws s3 sync s3://{BUCKET_NAME} /home/ubuntu/s3/{BUCKET_NAME}/

# Echo "Script execution is completed"

echo 'Sync complete'

請將 {BUCKET_NAME} 替換為您要備份的 S3 儲存桶名稱。

完整路徑 aws (AWS CLI 二進位檔)已定義,以確保 crontab 能在其使用的 shell 環境中正確執行 aws 應用程式。

將腳本設為可執行:

sudo chmod +x /home/ubuntu/s3/sync.sh

執行腳本以檢查是否運作正常:

/home/ubuntu/s3/sync.sh

編輯當前使用者的 crontab(Linux 中的排程程式),以排程執行 Amazon S3 備份腳本。

crontab -e

您可能需要選擇一個文字編輯器來編輯 crontab 設定。

用於排程任務的 crontab 格式如下:

m h dom mon dow command

其中:m – 分鐘;h – 小時;dom – 當月日期;dow – 星期幾。

現在讓我們新增一條配置行,讓任務每小時執行同步,並將 AWS S3 備份結果儲存至日誌檔案。請將以下這行新增至 crontab 配置的末尾:

0 * * * * /home/ubuntu/s3/sync.sh > /home/ubuntu/s3/sync.log

Amazon S3 自動備份已設定完成。可透過日誌檔案檢查同步任務的執行狀況。

結論

執行 Amazon S3 備份有多種方法,本文已介紹其中兩種。 您可以為儲存桶啟用物件版本控制功能,以保留物件的先前版本,這讓您能在檔案被寫入不想要的變更時,取回原始檔案。Amazon S3 複製是另一項原生工具,可用於將儲存於 Amazon S3 儲存桶中的檔案(以物件形式)建立副本。在此情況下,物件會從一個儲存桶複製到另一個儲存桶。 您亦可透過 AWS CLI 中的同步工具來建立 Amazon S3 儲存桶的備份,此工具可讓您將儲存桶中的檔案與運行於 Amazon EC2 執行個體上的 Linux 機器之本機目錄進行同步。 您可以透過腳本和 crontab 來排程 Amazon S3 的自動備份。

一般而言,Amazon S3 雲端儲存服務非常可靠,將資料備份至 Amazon S3 也是常見的做法。如果您已制定程式碼資料保護策略和 AWS 備份策略,就應該備有備份複製。在此情況下,建議您將資料備份至 Amazon S3 以及另一個目的地位置。 使用 NAKIVO Backup & Replication 來保護您在實體與虛擬機器上的資料。NAKIVO Backup & Replication 是一款功能強大的虛擬化備份軟體,可用於保護虛擬機器(VM)、Amazon EC2 執行個體以及實體機器。

試試 NAKIVO Backup & Replication

試試 NAKIVO Backup & Replication

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

People also read