亚马逊AWS官方博客
AWS Fault Injection Simulator – 通过对照实验提高弹性
AWS 为您提供构建高度可靠的系统所需的组件:多区域(每个都有多个可用区)、Amazon CloudWatch(指标、监控和警报)、Auto Scaling、负载均衡、多种形式的跨区域复制等等。如果您根据架构完善的框架中提供的指南将这些组件构建在一起,即使单个组件出现故障,您的系统应该也能继续运行。
但是,只有执行了正确的测试后,您才会知道情况确实如此。混沌工程(以“灾难大师”Jesse Robbins 在Amazon.com 早期所做的开创性工作为基础,随后由 Netflix Chaos Monkey 发扬光大)这一相对较新的领域着重于通过创建破坏性事件、观察系统的响应方式以及实施改进来向应用程序施加压力。除了指出需要改进的领域之外,混沌工程还可帮助发现需要进一步监控和发出警报的盲点、发现曾经隐藏的实施问题,并为您提供提高运营技能的机会,同时缩短恢复时间。要了解有关此主题的更多信息,请首先从我的同事 Adrian Hornsby 撰写的混沌工程 – 第 1 部分开始。
隆重推出 AWS Fault Injection Simulator (FIS)
今天,我们隆重推出AWS Fault Injection Simulator (FIS)。这项新服务将通过注入故障并让您了解发生的情况,来帮助您对 AWS 工作负载执行对照实验。您将了解系统如何应对各种类型的故障,而且您还将更好地了解故障模式。您可以首先在预生产环境中运行实验,然后逐步将其作为 CI/CD 工作流的一部分运行,最终在生产环境中运行。
每个 AWS Fault Injection Simulator (FIS) 实验针对一组特定的 AWS 资源并对其执行一系列操作。我们将推出对 Amazon Elastic Compute Cloud (EC2)、Amazon Elastic Container Service (ECS)、Amazon Elastic Kubernetes Service (EKS) 和 Amazon Relational Database Service (RDS) 的支持,并将对更多资源和操作的支持纳入 2021 年的路线图。您可以按类型、标记、ARN 或对特定属性的查询来选择目标资源。如果满足一个或多个停止条件(根据 CloudWatch 警报的定义),您也可以停止实验。因此,如果实验对关键业务或运营指标产生意外影响,可以快速终止实验。
使用 AWS Fault Injection Simulator (FIS)
让我们创建一个实验模板来运行实验吧! 我将使用四个 EC2 实例,并且所有实例都标记为测试模式:
我首先打开 FIS 控制台,并单击 Create experiment template (创建实验模板):
我输入 Description (描述) 并选择 IAM 角色。角色授予 FIS 对选定资源执行操作所需的权限,以便执行实验:
接下来,我来执行实验所需的操作。首先,我单击 Add action (添加操作):
然后我来定义我的第一个操作 – 我想让部分 EC2 实例(在本例中标记为测试模式)停止五分钟,并确保我的系统仍然保持运行状态。我做出选择,单击 Save (保存):
接下来,我为实验选择目标资源(本例中为 EC2 实例)。我单击 Add target (添加目标),为目标命名,并指出它由我的所有 EC2 实例(在当前区域中)组成,这些实例的标签为 Mode,值为 Test。我还可以选择随机实例或所有与标签或“资源”过滤条件匹配的实例的百分比。再次,我做出选择,单击 Save (保存):
我可以为实验选择一个或多个停止条件(CloudWatch 警报)。如果触发警报,实验将停止。这是一种安全机制,可确保本地故障不会引发全面停机。
最后,我为实验添加标签,并单击 Create experiment template (创建实验模板):
可以将我的模板作为实验基础进行使用了:
要运行实验,我先选择一个模板,然后从 Actions (操作) 菜单中选择 Start experiment (开始实验):
随后,单击 Start experiment (开始实验)(我还决定添加一个标签):
我确认自己的意图,因为它可能会影响我的 AWS 资源:
我的实验开始运行,我可以对操作进行观察:
不出所料,目标实例停止了:
我的实验得出了结论,我现在了解到如果这些实例停止,我的系统仍可继续运行:
我还可以使用 FIS API 和 FIS CLI 来创建、运行和查看实验。例如,您可以对同一目标运行不同的实验,或者对不同的目标运行同一实验。
现已推出
AWS Fault Injection Simulator (FIS) 现已推出,您可以立即使用它来运行对照实验。目前,除亚太地区(大阪)以及中国的两个区域外,所有商业 AWS 区域都已推出。这三个商业区域也正在列入路线图之中。
我们根据操作运行的分钟数来进行定价,两个或多个操作并行运行时不收取额外费用。
我们将在 2021 年增加对其他服务和其他操作的支持,敬请关随时注!
– Jeff;