本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:模拟连接事件
您可以使用 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 角色需要以下策略:
-
AWSFaultInjectionSimulatorNetworkAccess
— 授予 AWS FIS 服务在 Amazon EC2 联网和其他必需服务中的权限,以执行与网络基础设施相关 AWS 的 FIS 操作。
注意
为简单起见,本教程使用 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。
创建试验模板
打开 AWS FIS 控制台,网址https://console.aws.amazon.com/fis/
为。 -
在左侧导航窗格中,选择实验模板。
-
选择创建实验模板。
-
对于步骤 1,指定模板详细信息,请执行以下操作:
-
在描述和名称中,输入模板的描述,例如
Amazon S3 Network Disrupt Connectivity
。 -
选择 “下一步”,然后移至步骤 2,指定操作和目标。
-
-
在操作下,选择添加操作。
对于名称,输入
disruptConnectivity
。对于操作类型,选择 aws:network:disrupt-connectivity。
在操作参数下,将持续时间设置为
2 minutes
。在范围下,选择 s3。
选择顶部的保存。
-
在目标下,您会看到已自动创建的目标。选择编辑。
验证资源类型是否为
aws:ec2:subnet
。在目标方法下,选择资源 IDs,然后在先决条件步骤中选择您在创建 Amazon EC2 实例时使用的子网。
验证选择模式为全部。
选择保存。
-
选择下一步进入步骤 3,配置服务访问权限。
-
在服务访问权限下,选择您按照本教程先决条件中所述创建的 IAM 角色。如未显示此角色,请验证其是否具有必要的信任关系。有关更多信息,请参阅 适用于 AWS FIS 实验的 IAM 角色。
-
选择下一步进入步骤 4,配置可选设置。
-
(可选)在 “停止” 条件下,您可以选择一个 CloudWatch警报,以便在条件出现时停止实验。有关更多信息,请参阅 AWS FIS 停止条件。
-
(可选)在 “日志” 下,您可以选择一个 Amazon S3 存储桶,或者将日志发送到 CloudWatch 进行实验。
-
选择 “下一步” 进入步骤 5,“查看并创建”。
-
查看模板并选择创建实验模板。当提示您确认时,输入
create
,然后选择创建实验模板。
步骤 2:对 Amazon S3 端点执行 Ping 操作
确认您的亚马逊 EC2 实例能够访问 Amazon S3 终端节点。
-
连接到您在先决条件步骤中创建的 Amazon EC2 实例。
-
查看您的实例 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
-
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 实验
使用刚刚创建的实验模板开始实验。
打开 AWS FIS 控制台,网址https://console.aws.amazon.com/fis/
为。 -
在左侧导航窗格中,选择实验模板。
-
选择创建的实验模板 ID,打开详细信息页面。
-
请选择开始实验。
-
(可选)在确认页面中为实验添加标签。
-
在确认页面中,选择开始实验。
第 4 步:追踪您 AWS 的 FIS 实验进度
您可以跟踪正在运行的实验进度,直到实验完成、停止或失败。
-
您应该位于刚开始的实验的详细信息页面。否则,请选择实验,然后选择实验 ID,打开其详细信息页面。
-
要查看实验状态,请在详细信息窗格中选择状态。有关更多信息,请参阅实验状态。
-
当实验状态为正在运行时,移至下一步。
步骤 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 实例
打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择实例。
-
选择测试实例,然后依次选择实例状态和终止实例。
-
当系统提示您确认时,选择终止。
使用 AWS FIS 控制台删除实验模板
打开 AWS FIS 控制台,网址https://console.aws.amazon.com/fis/
为。 -
在导航窗格中,选择实验模板。
-
选择实验模板,然后依次选择操作和删除实验模板。
-
当系统提示您确认时,输入
delete
,然后选择删除实验模板。