本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
多區域:隔離
多區域:隔離測試會封鎖兩個區域之間的連線,包括網路流量、跨區域資料複寫和選取的相依性。它可協助您在無法存取另一個區域中的資源時,驗證您的服務是否獨立運作,並顯示可能影響可用性的跨區域相依性。
此測試有何獨特之處
-
專注於區域隔離 (失去跨區域連線),而不是復原至另一個區域。
-
封鎖網路流量、暫停跨區域複寫 (Amazon S3、DynamoDB、MemoryDB),以及選擇性地封鎖兩個區域之間的相依性。
-
驗證區域是否可以自行運作。
如何通過此測試
-
這是持續的測試。如果測試動作結束之前,所有成功警示都保持
OK狀態,則測試會通過。
要考慮的事項
-
選擇衡量隔離區域運作狀態的成功警示 – 驗證它是否繼續獨立服務流量。
-
此測試同時適用於主動/主動和主動/被動架構。
-
金鑰使用案例:驗證您的復原區域可以獨立運作。例如,如果您的主要 是
us-east-1,次要 是us-west-2,請使用此 來驗證在與 隔離時獨立us-west-2運作us-east-1。 -
此測試也是多區域的最佳前綴:復原 – 在測試完全容錯移轉之前驗證獨立性。測試可協助探索重要的跨區域相依性。
-
確保您的相依性在測試期間被主動使用 (流量流向它們) – 這會驗證區塊是否有效。請考慮新增追蹤相依性用量的警示或指標 (例如,請求計數或連線錯誤),以確認在測試期間正在執行相依性。
-
相依性必須是可解析的 DNS 端點。
-
封鎖觸發運作狀態檢查失敗的相依性可能會導致運算 (例如,Amazon ECS 任務) 遭到取代。封包遺失動作不會重新套用至取代任務,且可能回報為失敗。
金鑰測試參數
-
隔離區域 – 您要測試獨立操作的區域。
-
目的地區域 – 正在封鎖的區域 (連線中斷至此區域)。
-
持續時間 – 測試動作執行的時間長度。之後需要幾分鐘的時間,才能在測試結束前收集最終結果。第一次建立測試時,預設為 3 小時。
-
要封鎖的相依性 (選用) – 如果啟用相依性探索,清單會顯示從隔離區域到目的地區域的相依性。您可以從此清單中選取 ,或依 DNS 網域名稱手動新增 。預設不會選取相依性。無論如何,此測試中的其他動作 (網路連線、複寫暫停) 都會執行。此處新增的其他相依性僅用於此測試,不會儲存至服務的相依性探索。這些預設值適用於 主控台;使用 API 時,您可以明確提供相依性。
動作
此測試會執行下列 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:network:transit-gateway-disrupt-cross-region-connectivity |
透過傳輸閘道對等至目的地區域來封鎖跨區域流量。 |
aws:network:route-table-disrupt-cross-region-connectivity |
封鎖從子網路到目的地區域的跨區域流量。 |
aws:network:disrupt-vpc-endpoint |
封鎖跨區域 VPC 端點到目的地區域的流量。 |
aws:s3:bucket-pause-replication |
暫停 Amazon S3 跨區域複寫至目的地區域。 |
aws:dynamodb:global-table-pause-replication |
暫停 DynamoDB 全域資料表複寫。 |
aws:memorydb:multi-region-cluster-pause-replication |
暫停 MemoryDB 多區域叢集複寫。 |
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。