教程:模拟连接事件 - AWS 故障注入服务

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

教程:模拟连接事件

您可以使用 AWS 故障注入服务 (AWS FIS) 来模拟各种连接事件。 AWS FIS 通过以下方式之一阻止网络连接来模拟连接事件:

  • all:拒绝所有往返于子网的流量。请注意,此选项允许子网内流量,包括往返于子网中网络接口的流量。

  • availability-zone:拒绝往返于其他可用区子网的 VPC 内流量。

  • dynamodb:拒绝往返于当前区域中 DynamoDB 区域端点的流量。

  • prefix-list:拒绝往返于指定前缀列表的流量。

  • s3:拒绝往返于当前区域中 Amazon S3 区域端点的流量。

  • vpc:拒绝往返于 VPC 的流量。

使用本教程创建实验模板,该模板使用 AWS FIS aws:network:disrupt-connectivity 操作在目标子网中引入与 Amazon S3 的连接中断。

先决条件

在开始本教程之前,您需要在您的角色中拥有相应权限 AWS 账户,并需要一个测试 Amazon EC2 实例:

在你中拥有权限的角色 AWS 账户

创建一个角色并附加一个策略,使 AWS FIS 能够代表您执行aws:network:disrupt-connectivity操作。

IAM 角色需要以下策略:

注意

为简单起见,本教程使用 AWS 托管策略。亚马逊建议您仅授予用例所需的最低生产权限。

有关如何创建 IAM 角色的更多信息,请参阅 I AM 用户指南中的用 AWS 于 FIS 实验的 IAM 角色 (AWS CLI) 或创建 IAM 角色(控制台)

测试版 Amazon EC2 实例

启动并连接测试版 Amazon EC2 实例。您可以使用以下教程启动和连接亚马逊 EC2 实例:教程:亚马逊 EC2 用户指南中的亚马逊 EC2 Linux 实例入门

步骤 1:创建 AWS FIS 实验模板

使用 AWS FI AWS Management Console S 创建实验模板。 AWS FIS 模板由动作、目标、停止条件和实验角色组成。有关模板工作原理的更多信息,请参阅适用于 AWS FIS 的实验模板

在开始之前,请确保您做好以下准备:

  • 具有适当权限的 IAM 角色。

  • 亚马逊 EC2 实例。

  • 您的 Amazon EC2 实例的子网 ID。

创建试验模板
  1. 打开 AWS FIS 控制台,网址https://console.aws.amazon.com/fis/为。

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

  3. 选择创建实验模板

  4. 对于步骤 1,指定模板详细信息,请执行以下操作:

    1. 描述和名称中,输入模板的描述,例如Amazon S3 Network Disrupt Connectivity

    2. 选择 “下一步”,然后移至步骤 2,指定操作和目标

  5. 操作下,选择添加操作

    1. 对于名称,输入 disruptConnectivity

    2. 对于操作类型,选择 aws:network:disrupt-connectivity

    3. 操作参数下,将持续时间设置为 2 minutes

    4. 范围下,选择 s3

    5. 选择顶部的保存

  6. 目标下,您会看到已自动创建的目标。选择编辑

    1. 验证资源类型是否为 aws:ec2:subnet

    2. 目标方法下,选择资源 IDs,然后在先决条件步骤中选择您在创建 Amazon EC2 实例时使用的子网。

    3. 验证选择模式全部

    4. 选择保存

  7. 选择下一步进入步骤 3,配置服务访问权限

  8. 服务访问权限下,选择您按照本教程先决条件中所述创建的 IAM 角色。如未显示此角色,请验证其是否具有必要的信任关系。有关更多信息,请参阅 适用于 AWS FIS 实验的 IAM 角色

  9. 选择下一步进入步骤 4,配置可选设置

  10. (可选)在 “停止” 条件下,您可以选择一个 CloudWatch警报,以便在条件出现时停止实验。有关更多信息,请参阅 AWS FIS 停止条件

  11. (可选)在 “日志” 下,您可以选择一个 Amazon S3 存储桶,或者将日志发送到 CloudWatch 进行实验。

  12. 选择 “下一步” 进入步骤 5,“查看并创建”

  13. 查看模板并选择创建实验模板。当提示您确认时,输入create,然后选择创建实验模板

步骤 2:对 Amazon S3 端点执行 Ping 操作

确认您的亚马逊 EC2 实例能够访问 Amazon S3 终端节点。

  1. 连接到您在先决条件步骤中创建的 Amazon EC2 实例。

    要进行故障排除,请参阅 Amazon EC2 用户指南中的排除与您的实例的连接问题

  2. 查看您的实例 AWS 区域 所在的位置。您可以在 Amazon EC2 控制台中或通过运行以下命令来执行此操作。

    hostname

    例如,如果您在中启动了 Amazon EC2 实例us-west-2,则会看到以下输出。

    [ec2-user@ip-172.16.0.0 ~]$ hostname ip-172.16.0.0.us-west-2.compute.internal
  3. Ping 您的 Amazon S3 终端节点 AWS 区域。将 AWS 区域 替换为您的区域。

    ping -c 1 s3.AWS 区域.amazonaws.com

    您会在输出结果中看到丢包率为 0% 的成功 Ping 操作,如以下示例所示。

    PING s3.us-west-2.amazonaws.com (x.x.x.x) 56(84) bytes of data. 64 bytes from s3-us-west-2.amazonaws.com (x.x.x.x: icmp_seq=1 ttl=249 time=1.30 ms --- s3.us-west-2.amazonaws.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.306/1.306/1.306/0.000 ms

第 3 步:开始你的 AWS FIS 实验

使用刚刚创建的实验模板开始实验。

  1. 打开 AWS FIS 控制台,网址https://console.aws.amazon.com/fis/为。

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

  3. 选择创建的实验模板 ID,打开详细信息页面。

  4. 请选择开始实验

  5. (可选)在确认页面中为实验添加标签。

  6. 在确认页面中,选择开始实验

第 4 步:追踪您 AWS 的 FIS 实验进度

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

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

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

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

步骤 5:验证 Amazon S3 网络中断

您可以对 Amazon S3 端点执行 Ping 操作,以验证实验进度。

  • 在您的亚马逊 EC2 实例中,ping 您的中的亚马逊 S3 终端节点 AWS 区域。将 AWS 区域 替换为您的区域。

    ping -c 1 s3.AWS 区域.amazonaws.com

    您会在输出结果中看到丢包率为 100% 的失败 Ping 操作,如以下示例所示。

    ping -c 1 s3.us-west-2.amazonaws.com PING s3.us-west-2.amazonaws.com (x.x.x.x) 56(84) bytes of data. --- s3.us-west-2.amazonaws.com ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms

第 5 步:清理

如果您不再需要为此实验创建的 Amazon EC2 实例或 AWS FIS 模板,则可以将其删除。

移除 Amazon EC2 实例
  1. 打开 Amazon 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,然后选择删除实验模板