View a markdown version of this page

多區域:復原 - AWS 彈性中樞

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

多區域:復原

多區域:復原測試會在一個區域中的相依性中引入故障,以驗證您的服務是否可以從復原目標中的復原區域復原用戶端並為用戶端提供服務。此測試同時適用於主動/主動和主動/被動架構。例如,您可以啟動復原程序,並確認服務在復原區域中定義的復原時間目標 (RTO) 內復原。

此測試有何獨特之處
  • 根據您的復原目標驗證另一個區域的復原,而不只是區域內的復原能力。

  • 您可以選擇要影響主要區域中的相依性,以便練習偵測和復原。

  • 測試與 ARC 區域切換整合,因此您可以在測試報告中追蹤計劃執行詳細資訊。

如何通過此測試
  • 這是復原測試。RTO 倒數計時會在測試動作開始時開始。如果所有成功警示在您的多區域 RTO 中回到 OK 狀態,並保留在那裡直到測試動作結束,則測試會通過。您的服務必須具有已定義多區域 RTO 的彈性政策。

要考慮的事項
  • 在受損區域中選擇足夠重要的相依性,以觸發您的復原程序。選擇硬相依性或 DNS 端點,如果遭到封鎖,會嚴重損害該區域。

  • 測試會在受損的區域注入故障 – 您自行執行復原動作 (例如,觸發容錯移轉/ARC 區域切換計畫)。測試會評估警示狀態,以觀察您的復原區域在 RTO 內是否正常運作。

  • 在復原區域中選擇成功警示,以驗證其為流量提供服務,或使用反映整體客戶體驗的全域/應用程式層級警示。

  • 請考慮設定比 RTO 更長的持續時間,以驗證可維持復原。

  • 確保您的相依性在測試期間被主動使用 (流量流向它們) – 這會驗證區塊是否有效。考慮新增追蹤相依性用量的警示或指標 (例如,請求計數或連線錯誤),以確認在測試期間正在執行相依性。

  • 相依性必須是可解析的 DNS 端點。

  • 封鎖觸發運作狀態檢查失敗的相依性可能會導致運算 (例如,Amazon ECS 任務) 遭到取代。封包遺失動作不會重新套用至取代任務,且可能回報為失敗。

金鑰測試參數
  • 受損區域 – 注入故障的區域。

  • 復原區域 – 您預期服務會復原的區域。

  • 持續時間 – 測試動作執行的時間長度。之後需要幾分鐘的時間,才能在測試結束前收集最終結果。預設為服務政策中的多區域 RTO,加上您第一次建立測試時的 30 分鐘。

  • 要封鎖的相依性 – 選擇如果封鎖,將嚴重損害您的服務並協助驗證容錯移轉到另一個 區域的相依性。根據預設,會預先選取具有最高查詢磁碟區的探索到硬相依性。如果沒有將相依性分類為硬性,則不會選取任何相依性。您可以依 DNS 網域名稱調整或手動新增相依性。此處新增的其他相依性僅用於此測試,不會儲存至服務的相依性探索。這些預設值適用於 主控台;使用 API 時,您可以明確提供相依性。

  • 區域切換計畫 (選用) – 連接 ARC 區域切換計畫可讓新一代 Resilience Hub 在您的測試結果和報告中包含實際的容錯移轉時間表。如果您使用手動容錯移轉或自訂自動化,請將此保留空白。

動作

此測試會執行下列 AWS FIS 動作,將流量捨棄至您選取的相依性。動作會在 Amazon EC2 執行個體、Amazon ECS 任務 (Amazon EC2 和 Fargate) 和 Amazon EKS Pod (Amazon EC2) 上注入 100% 封包遺失。如果您的服務沒有資源符合動作的目標類型,則會略過該動作。

注意

用於封鎖相依性的動作需要額外設定:安裝在 Amazon EC2 執行個體上的 SSM 代理程式、Amazon ECS 任務定義中的 SSM 代理程式容器,或 Amazon EKS Pod 的 Kubernetes 服務帳戶。

Action 說明
aws:ssm:send-command 將流量從 Amazon EC2 執行個體捨棄至選取的相依性。
aws:ecs:task-network-packet-loss 將流量從 Amazon ECS 任務捨棄至選取的相依性。
aws:eks:pod-network-packet-loss 將流量從 Amazon EKS Pod 捨棄至選取的相依性。

若要查看此測試的參數及其預設值,請使用 get-test-template。