本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Multi-Region: 隔离
Multi-Region: 隔离测试会阻止两个区域之间的连接,包括网络流量、跨区域数据复制和选定的依赖关系。它可以帮助您在无法访问其他区域的资源时验证您的服务是否独立运行,并显示可能影响可用性的跨区域依赖关系。
是什么让这个测试与众不同
-
重点是区域隔离(跨区域连接中断),而不是恢复到另一个区域。
-
阻止网络流量,暂停跨区域复制(Amazon S3、DynamoDB、MemoryDB),并可选择阻止两个区域之间的依赖关系。
-
验证该区域是否可以自行运行。
如何通过这个测试
-
这是一次持续的考验。如果所有成功警报都保持
OK状态直到测试操作结束,则测试通过。
需要考虑的事情
-
选择衡量隔离区域运行状况的成功警报——验证该区域是否继续独立提供流量。
-
此测试适用于 active/active 和 active/passive 架构。
-
一个关键用例:验证您的恢复区域可以独立运行。例如,如果您的主服务器是
us-east-1,次要是us-west-2,则使用它来验证与之隔离时是否独立us-west-2运行us-east-1。 -
该测试也是一个很好的前提条件 Multi-Region:恢复 ——在测试完全故障转移之前验证独立性。该测试可以帮助发现至关重要的跨区域依赖关系。
-
确保在测试期间积极使用您的依赖关系(流量流向它们),这可以验证区块是否有效。考虑添加跟踪依赖关系使用情况(例如,请求数或连接错误)的警报或指标,以验证在测试期间是否使用了依赖关系。
-
依赖关系必须是可解析的 DNS 端点。
-
屏蔽触发运行状况检查失败的依赖关系可能会导致计算(例如 Amazon ECS 任务)被替换。丢包操作不会重新应用于替换任务,可能会报告为失败。
关键测试参数
-
隔离区域 -您正在测试的独立运行区域。
-
目标区域 -被封锁的区域(与该区域的连接中断)。
-
持续时间 -测试操作运行的时间长度。之后还需要几分钟才能在测试结束之前收集最终结果。首次创建测试时的默认值为 3 小时。
-
要封锁的依赖关系(可选)-如果启用依赖项发现,则列表会显示从隔离区域到目标区域的依赖关系。您可以从该列表中选择,也可以按 DNS 域名手动添加。默认情况下不选择任何依赖关系。无论如何,此测试中的其他操作(网络连接、复制暂停)都会运行。此处添加的其他依赖项仅用于此测试,不会保存到服务的依赖项发现中。这些默认值适用于控制台;使用 API 时,您可以明确提供依赖关系。
操作
此测试运行以下 AWS FIS 操作以减少流向您选择的依赖项的流量。操作会给亚马逊 EC2 实例、亚马逊 ECS 任务(亚马逊 EC2 和 Fargate)和亚马逊 EKS 容器(亚马逊 EC2)注入 100% 的数据包丢失。如果您的服务没有与操作目标类型相匹配的资源,则会跳过该操作。
注意
用于阻止依赖关系的操作需要额外的设置:安装在亚马逊 EC2 实例上的 SSM 代理、亚马逊 ECS 任务定义中的 SSM 代理容器或亚马逊 EKS 容器的 Kubernetes 服务账户。
| 处理建议 | 说明 |
|---|---|
aws:network:transit-gateway-disrupt-cross-region-connectivity |
阻止通过 Transit Gateway 对等连接到达目标区域的跨区域流量。 |
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 |
将流量从亚马逊 EKS Pod 转移到选定的依赖项。 |
要查看此测试的参数及其默认值,请使用get-test-template。