REL09-BP04 定期執行資料復原以驗證備份的完整性和程序 - 可靠性支柱

REL09-BP04 定期執行資料復原以驗證備份的完整性和程序

透過執行復原測試,驗證您的備份程序實作是否符合復原時間目標 (RTO) 和復原點目標 (RPO)。

預期成果:使用妥善定義的機制定期復原來自備份的資料,以確認可在工作負載的既定復原時間點目標 (RTO) 內復原。驗證從備份中還原是否會導致資源包含原始資料 (而其中沒有任何損壞或無法存取),但在復原點目標 (RPO) 內發生資料遺失。

常見的反模式:

  • 還原備份,但不查詢或擷取任何資料,以檢查還原可用。

  • 假設備份存在。

  • 假設系統的備份可以完全運作,而且可以從中復原資料。

  • 假設從備份中還原或復原資料的時間落在工作負載的 RTO 內。

  • 假設備份上包含的資料落在工作負載的 RPO 內。

  • 在不使用執行手冊的情況下,或在建立的自動化程序外部,視需要還原。

建立此最佳實務的優勢:測試備份的復原確認可在需要時還原資料,而不必擔心資料可能丟失或損壞,也可確保還原和復原可在工作負載的 RTO 內進行,而且任何資料遺失都會落在工作負載的 RPO 內。

未建立此最佳實務時的風險暴露等級:

實作指引

測試備份和還原功能可以提高能夠在中斷期間執行這些動作的信心。定期將備份還原至新位置,並執行測試以驗證資料的完整性。某些應該執行的常用測試會檢查所有資料是否可用、未損毀、可存取,且任何資料遺失落在工作負載的 RPO 內。此類測試也可以協助確定,復原機制是否足夠快到適應工作負載的 RTO。

使用 AWS 時,您可以建立一個測試環境,還原備份來評估 RTO 和 RPO 功能,並針對資料內容和完整性執行測試。

此外,Amazon RDS 和 Amazon DynamoDB 允許時間點復原 (PITR)。使用持續備份時,您可以將資料集還原到指定日期和時間當時的狀態。

所有資料是否可用、未損壞、可存取,並且任何資料遺失都落在工作負載的 RPO 內。此類測試也可以協助確定,復原機制是否足夠快到適應工作負載的 RTO。

AWS Elastic Disaster Recovery 提供 Amazon EBS 磁碟區的持續時間點復原快照。隨著來源伺服器進行複寫,時間點狀態會根據設定的政策隨著時間進行編製。Elastic Disaster Recovery 可藉由針對測試和練習目的啟動執行個體,而不重新導向流量,協助您確認這些快照的完整性。

實作步驟

  1. 識別資料來源,這些資料來源目前正在備份,以及這些備份的存放位置。如需實作指引,請參閱 REL09-BP01 識別並備份所有需要備份的資料,或從來源複製資料

  2. 針對每個資料來源建立資料驗證準則。不同類型的資料將具有不同的屬性,可能需要不同的驗證機制。在您自信可於生產環境中使用此資料之前,請考慮如何驗證它。一些驗證資料的常用方法是使用資料和備份屬性,例如資料類型、格式、檢查總和、大小,或這些屬性與自訂驗證邏輯的組合。例如,這可能是建立備份時所還原資源與資料來源之間的檢查總和值比較。

  3. 建立 RTO 和 RPO,根據資料關鍵性還原資料。如需實作指引,請參閱 REL13-BP01 定義停機和資料遺失的復原目標

  4. 評估您的復原功能。檢閱您的備份和還原策略,以了解它是否可以符合您的 RTO 和 RPO,並視需要調整策略。使用 AWS Resilience Hub,您可以執行工作負載的評定。此評定會針對彈性政策評估您的應用程式組態,並報告您的 RTO 和 RPO 目標是否可以實現。

  5. 執行測試還原,使用在生產環境進行資料還原的目前建立程序。這些程序取決於原始資料來源的備份方式、備份本身的格式和儲存位置,或是否已從其他源重現資料。例如,如果您是使用像是 AWS Backup 的受管服務,這可能就像是將備份還原到新資源一樣簡單。如果您使用 AWS Elastic Disaster Recovery,您可以啟動復原練習

  6. 從還原的資源驗證資料復原,根據您先前為資料驗證建立的準則。還原和復原的資料是否包含備份時最新的記錄/項目? 此資料是否落在工作負載的 RPO 內?

  7. 測量還原和復原以還原和復原,並且與您的已建立 RTO 進行比較。此程序是否落在工作負載的 RTO 內? 例如,比較從還原程序開始到復原驗證完成的時間戳記,以計算此程序需要多長時間。所有 AWS API 都會加上時間戳記,而且此資訊可用於 AWS CloudTrail。儘管此資訊可以提供有關還原程序何時開始的詳細資訊,但驗證完成時的結束時間戳記應由驗證邏輯記錄。如果使用自動程序,則 Amazon DynamoDB 之類的服務可以用來存放此資訊。此外,許多 AWS 服務會提供事件歷史記錄,其中提供特定動作何時發生的時間戳記資訊。在 AWS Backup 內,備份和還原動作稱為工作,而且這些工作包含時間戳記資訊做為其中繼資料的一部分,而此中繼資料可以用來測量還原和復原所需的時間。

  8. 通知利害關係人,如果資料驗證失敗,或如果還原和復原所需的時間超出針對工作負載建立的 RTO。實作自動化來執行此動作時,例如在此實驗室中,像是 Amazon Simple Notification Service (Amazon SNS) 之類的服務可以用來將推送通知 (例如電子郵件或簡訊) 傳送給利害關係人。這些訊息也可以推送至傳訊應用程式,例如 Amazon Chime、Slack 或 Microsoft Teams,或用來使用 AWS Systems Manager OpsCenter 建立例如 OpsItems 的任務

  9. 將此程序自動化為定期執行。例如,服務 (例如 AWS Lambda 或 AWS Step Functions 中的狀態機器) 可以用來將還原和復原程序自動化,而且 Amazon EventBridge 可以用來定期觸發此自動化工作流程,如下面架構圖所示。進一步了解如何使用 AWS Backup 將資料復厡驗證自動化。此外,這個 Well-Architected 實驗室會提供實作體驗,有關在這裡為數個步驟執行自動化的方式。

圖表:顯示自動的備份和還原程序

圖 9.自動的備份和還原程序

實作計劃的工作量:中到高,取決於驗證準則的複雜性。

資源

相關文件:

相關範例: