本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用停止和启动测试实例 AWS FIS
您可以使用 AWS 故障注入服务 (AWS FIS) 来测试您的应用程序如何处理实例停止和启动。使用本教程创建实验模板,该模板使用 AWS FISaws:ec2:stop-instances
操作停止一个实例,然后停止第二个实例。
先决条件
要完成本教程,请确保您已做好以下准备:
-
在您的账户中启动两个测试EC2实例。启动实例后,请记下IDs两个实例的情况。
-
创建使 AWS FIS服务能够代表您执行
aws:ec2:stop-instances
操作的IAM角色。有关更多信息,请参阅 适用于 AWS FIS 实验的 IAM 角色。 -
确保您可以访问 AWS FIS。有关更多信息,请参阅AWS FIS策略示例。
步骤 1:创建实验模板
使用 AWS FIS控制台创建实验模板。您可以在模板中指定两项操作,分别按顺序运行三分钟。第一个操作会停止其中一个随机 AWS FIS选择的测试实例。第二项操作会停止所有测试实例。
创建实验模板
从 AWS FIS 打开 https://console.aws.amazon.com/fis/
控制台。 -
在导航窗格中,选择实验模板。
-
选择创建实验模板。
-
对于步骤 1,指定模板详细信息,请执行以下操作:
-
在描述和名称中,输入模板的描述,例如
Amazon S3 Network Disrupt Connectivity
。 -
选择 “下一步”,然后移至步骤 2,指定操作和目标。
-
-
对于操作,请执行以下操作:
-
选择添加操作。
-
输入操作名称。例如,输入
stopOneInstance
。 -
对于操作类型,选择 aws:ec2:stop-instances。
-
对于 Targ et,请保留为您 AWS FIS创建的目标。
-
对于操作参数,在持续时间后启动实例,指定 3 分钟 (PT3M)。
选择保存。
-
-
对于目标,请执行以下操作:
-
为在上一步中 AWS FIS自动为您创建的目标选择 “编辑”。
-
将默认名称替换为更具描述性的名称。例如,输入
oneRandomInstance
。 -
验证资源类型是否为 aws:ec2:instance。
-
对于 Target 方法IDs,选择资源,然后选择两个测试实例中的一个。IDs
-
对于选择模式,选择计数。对于资源数量,输入
1
。 选择保存。
-
-
选择添加目标,然后执行以下操作:
-
输入目标名称。例如,输入
bothInstances
。 -
对于资源类型,选择 aws:ec2:instance。
-
对于 Target 方法IDs,选择资源,然后选择两个测试实例中的一个。IDs
-
对于选择模式,选择全部。
选择保存。
-
-
通过操作部分,选择添加操作。执行以下操作:
-
对于名称,输入操作名称。例如,输入
stopBothInstances
。 -
对于操作类型,选择 aws:ec2:stop-instances。
对于稍后开始,选择您添加的第一项操作 (
stopOneInstance
)。-
对于目标,选择您添加的第二个目标 (
bothInstances
)。 -
对于操作参数,在持续时间后启动实例,指定 3 分钟 (PT3M)。
选择保存。
-
-
选择下一步进入步骤 3,配置服务访问权限。
-
对于 S ervice Acces s,选择 “使用现有IAMIAM角色”,然后选择您按照本教程先决条件中所述创建的角色。如未显示此角色,请验证其是否具有必要的信任关系。有关更多信息,请参阅 适用于 AWS FIS 实验的 IAM 角色。
-
选择 “下一步” 进入步骤 4 “配置可选设置”。
-
(可选)对于标签,选择添加新标签,然后指定标签键和标签值。您添加的标签将应用于实验模板,而不是应用于使用此模板运行的实验。
-
选择 “下一步” 进入步骤 5,“查看并创建”。
-
查看模板并选择创建实验模板。当提示您确认时,输入
create
,然后选择创建实验模板。
(可选)查看实验模板 JSON
选择导出选项卡。以下是通过前面的控制台过程JSON创建的示例。
{ "description": "Test instance stop and start", "targets": { "bothInstances": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:
region
:123456789012
:instance/instance_id_1
", "arn:aws:ec2:region
:123456789012
:instance/instance_id_2
" ], "selectionMode": "ALL" }, "oneRandomInstance": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:region
:123456789012
:instance/instance_id_1
", "arn:aws:ec2:region
:123456789012
:instance/instance_id_2
" ], "selectionMode": "COUNT(1)" } }, "actions": { "stopBothInstances": { "actionId": "aws:ec2:stop-instances", "parameters": { "startInstancesAfterDuration": "PT3M" }, "targets": { "Instances": "bothInstances" }, "startAfter": [ "stopOneInstance" ] }, "stopOneInstance": { "actionId": "aws:ec2:stop-instances", "parameters": { "startInstancesAfterDuration": "PT3M" }, "targets": { "Instances": "oneRandomInstance" } } }, "stopConditions": [ { "source": "none" } ], "roleArn": "arn:aws:iam::123456789012
:role/AllowFISEC2Actions
", "tags": {} }
步骤 2:开始实验
您可以使用创建好的实验模板开始实验。
开始实验
-
您应该位于刚刚创建的实验模板的详细信息页面。否则,请选择实验模板,然后选择实验模板 ID,打开详细信息页面。
-
请选择开始实验。
-
(可选)要为实验添加标签,请选择添加新标签,然后输入标签键和标签值。
-
请选择开始实验。当系统提示您确认时,输入
start
,然后选择开始实验。
步骤 3:跟踪实验进度
您可以跟踪正在运行的实验进度,直到实验完成、停止或失败。
跟踪实验进度
-
您应该位于刚开始的实验的详细信息页面。否则,请选择实验,然后选择实验 ID,打开详细信息页面。
-
要查看实验状态,请在详细信息窗格中选择状态。有关更多信息,请参阅实验状态。
-
当实验状态为正在运行时,转到下一步。
步骤 4:验证实验结果
您可以验证实验是否如预期般停止并启动实例。
验证实验结果
-
在新的浏览器选项卡或窗口https://console.aws.amazon.com/ec2/
中打开 Amazon EC2 控制台。这使您可以继续在 AWS FIS控制台中跟踪实验进度,同时在 Amazon EC2 控制台中查看实验结果。 -
在导航窗格中,选择实例。
-
当第一个操作的状态从 “待处理” 变为 “正在运行”(AWS FIS控制台)时,其中一个目标实例的状态将从 “正在运行” 变为 “已停止”(Amazon EC2 控制台)。
-
三分钟后,第一项操作和第二项操作的状态会分别更改为已完成和正在运行,同时另一个目标实例的状态会更改为已停止。
-
三分钟后,第二项操作的状态更改为已完成,目标实例的状态更改为正在运行,实验状态更改为已完成。
步骤 5:清除
如果您不再需要为此实验创建的测试EC2实例,则可以将其终止。
终止实例
-
打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择实例。
-
选择两个测试实例,然后依次选择 Instance state(实例状态)、Terminate instance(终止实例)。
-
当系统提示您确认时,选择终止。
如果您不再需要实验模板,可以将其删除。
使用 AWS FIS控制台删除实验模板
从 AWS FIS 打开 https://console.aws.amazon.com/fis/
控制台。 -
在导航窗格中,选择实验模板。
-
选择实验模板,然后依次选择操作和删除实验模板。
-
当系统提示您确认时,输入
delete
,然后选择删除实验模板。