教程:使用在实例上运行 str CPU ess AWS FIS - AWS 故障注入服务

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:使用在实例上运行 str CPU ess AWS FIS

您可以使用 … AWS 故障注入服务 (AWS FIS) 来测试您的应用程序如何处理 str CPU ess。使用本教程创建使用以下内容的实验模板 AWS FIS运行在实例上运行 stress CPU 的预配置SSM文档。当实例的CPU利用率超过配置的阈值时,本教程使用停止条件来停止实验。

有关更多信息,请参阅 预先配置 AWS FISSSM的文档

先决条件

在你可以使用之前 AWS FIS要运行 str CPU ess,请完成以下先决条件。

创建 IAM 角色

创建角色并附加可启用的策略 AWS FIS代表您使用该aws:ssm:send-command操作。有关更多信息,请参阅 适用于 AWS FIS 实验的 IAM 角色

验证访问权限 AWS FIS

确保您可以访问 AWS FIS。有关更多信息,请参阅 AWS FIS政策示例

准备测试EC2实例
  • 按照预EC2SSM配置文档的要求,使用 Amazon Linux 2 或 Ubuntu 启动实例。

  • 实例必须由管理SSM。要验证实例是否由管理SSM,请打开队列管理器控制台。如果实例不是由管理的SSM,请验证SSM代理是否已安装以及该实例是否具有具有 A mazonSSMManaged InstanceCore 策略的附加IAM角色。要验证已安装的SSM代理,请连接到您的实例并运行以下命令。

    Amazon Linux 2

    yum info amazon-ssm-agent

    Ubuntu

    apt list amazon-ssm-agent
  • 对实例启用详细监控。此操作会提供时长 1 分钟的数据,需要额外付费。选择所需实例,然后依次选择操作监控和问题排查,以及管理详细监控

步骤 1:为停止条件创建 CloudWatch 警报

配置 CloudWatch 警报,以便在CPU利用率超过您指定的阈值时可以停止实验。以下过程将目标实例的CPU使用率阈值设置为 50%。有关更多信息,请参阅 停止条件

创建警报以指示CPU利用率何时超过阈值
  1. 打开亚马逊EC2控制台,网址为https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择目标实例,然后选择操作监控和故障排除管理 CloudWatch警报

  4. 对于警报通知,请使用切换开关关闭 Amazon SNS 通知。

  5. 对于警报阈值,请使用以下设置:

    • 样本分组依据最大值

    • 要采样的数据类型CPU利用率

    • 百分比50

    • 周期1 Minute

  6. 配置完警报后,选择创建

步骤 2:创建实验模板

使用创建实验模板 AWS FIS控制台。在模板中,您可以指定要运行的以下操作:aws: ssm: send-comm AWSFIS and/-Run--Stress。CPU

创建实验模板
  1. 打开 AWS FIS控制台位于https://console.aws.amazon.com/fis/

  2. 在导航窗格中,选择实验模板

  3. 选择创建实验模板

  4. 对于描述和名称,输入模板的描述和名称。

  5. 对于操作,请执行以下操作:

    1. 选择添加操作

    2. 输入操作名称。例如,输入 runCpuStress

    3. 对于操作类型,选择 aws: ssm: send-comm AWSFIS and/-Run--Stress。CPU这会自动将SSM文档ARN的添加到 “文档” ARN

    4. 对于 Targ et 来说,保持目标 AWS FIS为你创作。

    5. 对于操作参数文档参数,输入以下内容:

      {"DurationSeconds":"120"}
    6. “操作” 参数持续时间” 中,指定 5 分钟 (PT5M)。

    7. 选择保存

  6. 对于目标,请执行以下操作:

    1. 为目标选择编辑 AWS FIS在上一步中自动为您创建。

    2. 将默认名称替换为更具描述性的名称。例如,输入 testInstance

    3. 验证资源类型是否为 aws:ec2:instance

    4. 对于目标方法,选择资源 IDs,然后选择测试实例的 ID。

    5. 对于选择模式,选择全部

    6. 选择保存

  7. 对于 S ervice Acces s,选择 “使用现有IAMIAM角色”,然后选择您按照本教程先决条件中所述创建的角色。如未显示此角色,请验证其是否具有必要的信任关系。有关更多信息,请参阅 适用于 AWS FIS 实验的 IAM 角色

  8. 对于停止条件,请选择您在步骤 1 中创建的 CloudWatch 警报。

  9. (可选)对于标签,选择添加新标签,然后指定标签键和标签值。您添加的标签将应用于实验模板,而不是应用于使用此模板运行的实验。

  10. 选择创建实验模板

(可选)查看实验模板 JSON

选择导出选项卡。以下是通过前面的控制台过程JSON创建的示例。

{ "description": "Test CPU stress predefined SSM document", "targets": { "testInstance": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:region:123456789012:instance/instance_id" ], "selectionMode": "ALL" } }, "actions": { "runCpuStress": { "actionId": "aws:ssm:send-command", "parameters": { "documentArn": "arn:aws:ssm:region::document/AWSFIS-Run-CPU-Stress", "documentParameters": "{\"DurationSeconds\":\"120\"}", "duration": "PT5M" }, "targets": { "Instances": "testInstance" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:region:123456789012:alarm:awsec2-instance_id-GreaterThanOrEqualToThreshold-CPUUtilization" } ], "roleArn": "arn:aws:iam::123456789012:role/AllowFISSSMActions", "tags": {} }

步骤 3:开始实验

您可以使用创建好的实验模板开始实验。

开始实验
  1. 您应该位于刚刚创建的实验模板的详细信息页面。否则,请选择实验模板,然后选择实验模板 ID,打开详细信息页面。

  2. 请选择开始实验

  3. (可选)要为实验添加标签,请选择添加新标签,然后输入标签键和标签值。

  4. 请选择开始实验。当系统提示进行确认时,输入 start。请选择开始实验

步骤 4:跟踪实验进度

您可以跟踪正在运行的实验进度,直到实验完成、停止或失败。

跟踪实验进度
  1. 您应该位于刚开始的实验的详细信息页面。否则,请选择实验,然后选择对应 ID 打开详细信息页面。

  2. 要查看实验状态,请在详细信息窗格中选择状态。有关更多信息,请参阅实验状态

  3. 当实验状态为正在运行时,转到下一步。

步骤 5:验证实验结果

在实验运行期间,您可以监控实例的CPU利用率。当CPU利用率达到阈值时,将触发警报,实验因停止条件而停止。

验证实验结果
  1. 选择停止条件选项卡。绿色边框和绿色勾选图标表示警报的初始状态为 OK。红线则表示警报阈值。如需更详细的图表,请在小组件菜单中选择放大

    该图显示,在经历了大约50%的低活动期之后,CPU利用率飙升至100%。
  2. 当CPU利用率超过阈值时,“停止条件” 选项卡中的红色边框和红色感叹号图标表示警报状态已更改为ALARM详细信息窗格中的实验状态显示为已停止。如果选择此状态,则会显示“实验因停止条件而停止”的消息。

    该图显示了一段时间内的CPU利用率,红色阈值线为 50%。
  3. 当CPU利用率降低到阈值以下时,绿色边框和绿色复选标记图标表示警报状态已更改为OK

  4. (可选)在小组件菜单中选择在警报中查看。这将打开 CloudWatch 控制台中的警报详细信息页面,您可以在其中获取有关警报的更多详细信息或编辑警报设置。

步骤 6:清理

如果您不再需要为此实验创建的测试实EC2例,则可以将其终止。

终止实例
  1. 打开亚马逊EC2控制台,网址为https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择测试实例,然后依次选择实例状态终止实例

  4. 当系统提示您确认时,选择终止

如果您不再需要实验模板,可以将其删除。

要删除实验模板,请使用 AWS FIS控制台
  1. 打开 AWS FIS控制台位于https://console.aws.amazon.com/fis/

  2. 在导航窗格中,选择实验模板

  3. 选择实验模板,然后依次选择操作删除实验模板

  4. 当系统提示您确认时,输入 delete,然后选择删除实验模板