创建停止、终止、重启或恢复实例的警报
利用 Amazon CloudWatch 警报操作,您可创建自动停止、终止、重启或恢复实例的警报。当不再需要某个实例运行时,您可使用停止或终止操作来帮助您节省资金。如果发生了系统损害,您可使用重启和恢复操作自动重启这些实例或将它们恢复到新硬件上。
AWSServiceRoleForCloudWatchEvents
服务相关角色使 Amazon 能够代表您执行警报操作。当您首次在 Amazon Web Services Management Console、IAM CLI 或 IAM API 中创建告警时,CloudWatch 会为您创建服务相关角色。
在许多情况下,您可能需要自动终止或停止实例。例如,您可能拥有专用于批工资单处理作业或科学计算任务的实例,这些实例在运行一段时间后就完成了其工作。与其让这些实例空闲 (并产生费用),不如将其停止或终止以节省开支。使用停止警报操作和使用终止警报操作的主要区别在于,停止的实例在以后需要再次运行时,可以轻松地启动,并且可以保留相同的实例 ID 和根卷,而终止的实例则无法再启动。如此就必须启动一个新的实例。
您可以向为 Amazon EC2 每个实例指标设置的任何警报添加停止、终止、重启或恢复操作,这些指标包括 Amazon CloudWatch 提供的基本和详细监控指标(在 AWS/EC2
命名空间中),以及包含 InstanceId
维度的任何自定义指标,只要其值引用有效运行的 Amazon EC2 实例。
控制台支持
可使用 Amazon EC2 控制台或 CloudWatch 控制台创建警报。本文档中的过程使用 Amazon EC2 控制台。有关使用 CloudWatch 控制台的过程,请参阅《Amazon CloudWatch 用户指南》中的创建停止、终止、重新启动或恢复实例的告警。
权限
如果您是(Amazon Identity and Access ManagementIAM)用户,您必须拥有 iam:CreateServiceLinkedRole
才能创建或修改执行 EC2 告警操作的警报。
目录
在 Amazon CloudWatch 警报中添加停止操作
可以创建当达到一定阈值后停止 Amazon EC2 实例的警报。例如,您可能运行了开发或测试实例而偶尔忘记将其关闭。可以创建当平均 CPU 使用率低于 10% 达 24 小时时触发的警报,同时告知其为空闲并不再使用。可以根据需要调整阈值、持续时间和周期,还可以添加 Amazon Simple Notification Service (Amazon SNS) 通知,以便在触发警报后,您能够收到电子邮件。
可以停止或终止将 Amazon EBS 卷用作根设备的实例,但只能终止将实例存储用作根设备的实例。
在 Amazon CloudWatch 警报中添加终止操作
可以创建当达到一定阈值时自动终止 EC2 实例的警报 (只要该实例未启用终止保护)。例如,某个实例已经完成工作,您不再需要此实例而想将其终止。如果可能在之后使用该实例,则应该选择停止而不是终止。有关为实例启用和禁用终止保护的信息,请参阅启用终止保护。
在 Amazon CloudWatch 警报中添加重启操作
您可创建监控 Amazon EC2 实例并自动重启此实例的 Amazon CloudWatch 警报。在实例运行状况检查失败时,推荐重启警报操作(与恢复警报操作相反,该操作适合系统运行状况检查失败的情况)。实例重启相当于操作系统重启。在许多情况下,只需要几分钟时间即可重启您的实例。重启实例时,其仍驻留在相同的物理主机上,因此您的实例将保留其公有 DNS 名称、私有 IP 地址及其实例存储卷上的任何数据。
与停止并重新启动您的实例不同,重启实例不会启动新的实例计费周期(最低收取一分钟的费用)。有关更多信息,请参阅重启实例。
为了避免重启操作与恢复操作之间的竞争情况,请避免为重启警报和恢复警报设置相同的评估周期数。我们建议您将重启警报设置为 3 个 1 分钟的评估期。有关更多信息,请参阅 Amazon CloudWatch 用户指南 中的评估警报。
在 Amazon CloudWatch 警报中添加恢复操作
您可以创建 Amazon CloudWatch 警报来监控 Amazon EC2 实例。如果实例因需要 Amazon 参与才能修复的基础硬件故障或问题而受损,您可自动恢复实例。无法恢复终止的实例。恢复的实例与原始实例相同,包括实例 ID、私有 IP 地址、弹性 IP 地址以及所有实例元数据。
CloudWatch 会阻止您将恢复操作添加到位于不支持恢复操作的实例上的警报。
当 StatusCheckFailed_System
警报触发且恢复操作启动时,您在创建警报及相关恢复操作时所选择的 Amazon SNS 主题将向您发出通知。在实例恢复过程中,实例将在重启时迁移,并且内存中的所有数据都将丢失。当该过程完成后,会向您已配置警报的 SNS 主题发布信息。任何订阅此 SNS 主题的用户都将收到一封电子邮件通知,其中包括恢复尝试的状态以及任何进一步的指示。您将注意到,实例会在已恢复的实例上重启。
恢复操作仅适用于 StatusCheckFailed_System
,而不能用于 StatusCheckFailed_Instance
。
下列问题可能导致系统状态检查失败:
-
网络连接丢失
-
系统电源损耗
-
物理主机上的软件问题
-
物理主机上影响到网络连接状态的硬件问题
仅具有以下特性的实例支持恢复操作。有关更多信息,请参阅恢复您的实例。
如果您的实例具有公有 IP 地址,它会在恢复后保留公有 IP 地址。
为了避免重启操作与恢复操作之间的竞争情况,请避免为重启警报和恢复警报设置相同的评估周期数。我们建议您将恢复警报设置为 2 个 1 分钟的评估期。有关更多信息,请参阅 Amazon CloudWatch 用户指南 中的评估警报。
使用 Amazon CloudWatch 控制台查看警报和操作历史记录
您可以在 Amazon CloudWatch 控制台中查看警报和操作历史记录。Amazon CloudWatch 会保留最近两周的警报和操作历史记录。
查看已触发的警报和操作的历史记录(CloudWatch 控制台)
-
通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/
。 -
在导航窗格中,选择 Alarms (警报)。
-
选择一个警报。
-
Details 选项卡显示最近的状态转换以及时间和指标值。
-
选择 History 选项卡可以查看最近的历史记录条目。
Amazon CloudWatch 警报操作场景
可以使用 Amazon EC2 控制台创建当满足一定条件时停止或终止 Amazon EC2 实例的警报操作。在下方的控制台页面屏幕截图中,您设置了警报操作,我们对设置进行了编号。我们还对后续场景中的设置进行了编号,帮助您创建合适的操作。
场景 1:停止空闲开发和测试实例
创建当用于软件开发或测试的实例空闲达到至少 1 小时时停止该实例的警报。
设置 | 值 |
---|---|
1 |
停止 |
2 |
最高 |
3 |
CPU 利用率 |
4 |
<= |
5 |
10% |
6 |
1 |
7 |
1 小时 |
场景 2:停止空闲实例
创建一个当实例空闲达到 24 小时时停止该实例并发送电子邮件的警报。
设置 | 值 |
---|---|
1 |
停止并发送电子邮件 |
2 |
平均值 |
3 |
CPU 利用率 |
4 |
<= |
5 |
5% |
6 |
24 |
7 |
1 小时 |
场景 3:发送有关出现异常高流量的 Web 服务器的电子邮件
创建一个当实例的出站网络流量每天超过 10 GB 时发送电子邮件的警报。
设置 | 值 |
---|---|
1 |
电子邮件 |
2 |
总计 |
3 |
网络输出 |
4 |
> |
5 |
10GB |
6 |
24 |
7 |
1 小时 |
场景 4:停止出现异常高流量的 Web 服务器
创建当出站流量超过每小时 1 GB 时停止实例并发送短消息 (SMS) 的警报。
设置 | 值 |
---|---|
1 |
停止并发送短消息 |
2 |
总计 |
3 |
网络输出 |
4 |
> |
5 |
1GB |
6 |
1 |
7 |
1 小时 |
场景 5:停止受损的实例
创建当实例连续 3 次状态检查 (每隔 5 分钟执行一次) 皆为故障时将其停止的警报。
设置 | 值 |
---|---|
1 |
停止 |
2 |
平均值 |
3 |
状态检查失败:系统 |
4 |
- |
5 |
- |
6 |
1 |
7 |
15 分钟 |
场景 6:在批处理作业完成时终止实例
创建当实例不再发送结果数据时终止运行批处理作业的实例的警报。
设置 | 值 |
---|---|
1 |
终止 |
2 |
最高 |
3 |
网络输出 |
4 |
<= |
5 |
100000 字节 |
6 |
1 |
7 |
5 分钟 |