自動化您的 DR 策略 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

自動化您的 DR 策略

您可以選擇性地選擇實施完全或部分自動化,以更好地控制災難復原。如果使用的是備份和還原 DR 選項,則可以使用 AWS Backup 來自動化備份,它支援所有 Amazon RDS 資料庫以及 DynamoDB、Amazon DocumentDB 和 Amazon Neptune 資料表。

災難事件偵測

若要縮短復原時間,可以考慮自動偵測整個區域的事件,它可啟動容錯移轉至 DR 區域。若要實作自動化偵測以實現積極的 RTO,您可以根據運作狀態檢查建置解決方案。這些運作狀態檢查不會停止於活動訊號 (檢查網路中的控制平面和資料平面模組是否可以彼此通訊),而是更深入地評估應用程式元件的相互關聯性質,以達到精確的預測。但是,自動化解決方案可能會帶來錯誤警報的風險,進而導致不必要的容錯移轉。在這種情況下應該謹慎行事,因為不必要的容錯移轉會為您的業務帶來可用性問題。也可以在工作流程中建立手動覆寫,以確認已執行容錯移轉。可以訂閱服務運作狀態儀表板 RSS 摘要隨時了解服務級別中斷。此外,您可以使用主要區域和 AWS 帳戶中的 AWS Health Dashboard(需要 帳戶),以隨時了解可能會影響您帳戶的事件。這些可以協助您在發生全區域事件時做出明智的容錯移轉決策。

容錯移轉

無論選擇哪種 DR 策略,都可以建置自訂 DR 自動化解決方案,以執行針對 DR 區域的容錯移轉。這種自動化可以將人工介入的需求降到最低,並在測試 DR 解決方案時提供更好的控制。您可以從AWS 服務 APIs中進行選擇,該 API AWS 提供多種語言,例如 JavaScript、Python、PHP、.NET、Ruby、Java、Go、Node.js 和 C++,視您組織的偏好而定。若要建置使用 AWS 這些服務 APIs自動化,您應該首先專注於將資料庫基礎設施轉換為 AWS CloudFormation 或 Terraform 範本形式的程式碼。這些範本可協助您自動化數個資料庫的容錯移轉,並維護 DR 區域中應用程式和資料庫元件的復原順序。

出於災難復原目的,建議您專注於以下兩個目標:

  • 現有 CloudFormation 堆疊應匯出資料庫的相關資訊,包括執行個體名稱和端點。自動化程序可參考區域內的這些匯出值,並執行有助於 DR 操作的操作。

  • 如果資源處於生產中,但沒有關聯的 CloudFormation 堆疊,則應專注於為這些資源建立堆疊。同時確保這些堆疊涵蓋正確的匯出值,如前一點所述。

當您達到這兩個目標時,可以使用組織選擇的語言建置自動化解決方案,以利用 CloudFormation 匯出的優勢,並在發生災難時自動執行所需的切換動作。例如,如果您有部署為 CloudFormation 範本的 ElastiCache (Redis OSS) 全域資料存放區,自動化程式碼可以存取 CloudFormation 匯出,提供全域資料存放區的詳細資訊。發生災難時,程式碼可以使用 ElastiCache (Redis OSS) 服務 APIs,自動將次要資料存放區提升至主要資料存放區,而不需要任何手動介入。

在一般情況下,自動化應該可針對組織內的多個資料庫進行擴展。可以使用 AWS Step FunctionsAWS Batch 為多個資料庫擴展自動化解決方案。