下一代 AWS Resilience Hub 中的推荐韧性测试

下一代 AWS Resilience Hub 中的推荐韧性测试

💡 原文英文,约2900词,阅读约需11分钟。
📝

内容提要

AWS Resilience Hub 推出推荐韧性测试,基于 AWS FIS 自动生成故障注入实验,并按韧性策略和 RTO 判定通过或失败。首批提供可用区恢复、依赖验证、多区域隔离与恢复四项测试。依赖验证可自动发现依赖、区分软硬依赖,验证服务在依赖失效时能否保持健康并生成报告,帮助团队持续验证架构韧性。

🔎

延伸解读

从“知道架构”到“证明架构”

文章强调,团队完成韧性策略定义和应用评估后,常见缺口是验证故障下的实际行为。推荐韧性测试把原本需要手动设计的 FIS 实验变成预配置测试,并依据策略中的 RTO 和成功标准自动判定通过或失败。这意味着韧性验证从依赖专家经验转向可重复执行的流程,每次运行还会生成报告,便于持续跟踪和合规汇报。

软硬依赖分类决定测试解读

依赖验证测试的核心不是简单看通过或失败,而是对照依赖分类判断架构是否符合预期。软依赖被阻断后测试通过,说明降级逻辑有效;若失败,可能分类有误或降级路径有缺口。硬依赖被阻断后测试失败属于预期,重点应确认失败是否被限制在特定业务流内,没有级联故障、数据损坏或挂起连接。文章建议先从单个软依赖开始,逐步扩大范围。

成功标准应衡量业务健康而非资源状态

文章明确提醒,故障注入时被影响的资源本来就会不健康,因此成功标准应选择反映服务整体健康和客户体验的指标,例如订单成功率或端到端可用性,而不是单个资源状态。恢复类测试要求所有成功标准在策略定义的 RTO 内恢复并保持到测试结束;持续类测试则要求从注入故障到测试结束始终满足阈值。额外告警只用于观察,不影响判定结果。

运行测试前需关注的配置与权限边界

依赖验证测试通过 AWS FIS 动作在计算层注入 100% 丢包,支持 EC2、ECS 和 EKS,但不同计算类型有额外前置条件,例如 SSM Agent、ECS 任务定义中的容器或 EKS 服务账户。测试时长可设为 1 分钟到 12 小时,默认 30 分钟。停止条件告警必须位于测试运行账户和注入故障的区域;多账户场景还需要编排角色和目标角色。文章提示,修改测试设置可能改变所需 IAM 权限,应始终复核角色说明。

❓

Q&A

AWS Resilience Hub 的推荐韧性测试是什么?它如何工作?

推荐韧性测试是 AWS Resilience Hub 的一项新功能,它基于 AWS FIS 自动生成故障注入实验,利用 Resilience Hub 已知的服务资源、依赖关系和韧性策略,自动创建实验、注入故障,并根据成功标准和恢复时间目标(RTO)评估结果,判定通过或失败。

推荐韧性测试首批提供哪些测试类型?各自验证什么?

首批提供四种测试:可用区恢复(验证服务在单个可用区故障时能检测并恢复)、依赖验证(验证服务在依赖不可用时的行为)、多区域隔离(验证服务在区域间连接中断时能独立运行)、多区域恢复(验证服务在区域故障后能在 RTO 内恢复)。

依赖验证测试如何工作?软依赖和硬依赖有什么区别?

依赖验证测试通过阻断对选定依赖的访问,观察服务行为。软依赖是指服务降级但仍能继续运行的依赖(如分析 API),测试应通过;硬依赖是指服务失效的依赖(如主数据库),测试可能失败但能确认其关键性。测试通过条件是从故障注入到测试结束所有成功告警保持 OK 状态。

如何配置依赖验证测试?需要哪些前提条件?

前提条件:在下一代 Resilience Hub 中至少创建并评估一个服务,并拥有一个 IAM 服务角色。配置步骤:在服务仪表板的 Testing 选项卡选择依赖验证测试,编辑配置,包括基本设置(测试时长、依赖区域)、选择要阻断的依赖(默认预选查询量最高的软依赖,最多10个)、故障操作(自动匹配计算资源)、测试告警(成功告警和可选附加告警)、停止条件、报告和日志、测试权限。

依赖验证测试的结果如何解读?通过或失败分别意味着什么?

结果需结合依赖分类解读:软依赖被阻断且测试通过,说明降级正常;软依赖被阻断但测试失败,可能依赖被误分类或降级逻辑有缺口;硬依赖被阻断且测试失败,确认分类正确,需检查失败是否优雅;硬依赖被阻断但测试通过,可能依赖被误分类或未被调用,需调查。

推荐韧性测试如何判定通过或失败?成功标准应该怎么选?

对于恢复测试(可用区恢复和多区域恢复),当所有成功标准在策略定义的 RTO 内恢复正常并保持到测试结束,测试通过。对于持续测试(依赖验证和多区域隔离),当所有成功标准从故障注入到测试结束始终满足阈值,测试通过。成功标准应反映服务健康和客户体验,如订单成功率或端到端可用性,而非单个资源状态。

🏷️

标签

➡️

继续阅读