当Cloudwatch警报触发时,如何重新启动在EC2实例上运行的应用程序?

时间:2014-11-24 04:09:22

标签: events amazon-ec2 alarm amazon-cloudwatch

我目前的设置有AWS Couldwatch警报触发发送电子邮件通知,例如。 n分钟内CPU使用率低于x%。这很容易通过AWS管理控制台进行设置。但是,根据这种安排,我需要远程登录到实例并手动重启失败的应用程序。我想使用相同的Cloudwatch警报事件自动执行此操作,而不是触发脚本的运行(在与我的应用程序相同的EC2实例上),然后重新启动我的应用程序。怎么做?

如果有办法从运行应用程序的实例中捕获Cloudwatch警报事件,那么这可能是一种简单的方法,但我无法找到如何做到这一点。

此处发布了类似的问题(How to restart EC2 instance from CloudWatch alarm)。但就我而言,我不认为Auto Scaling是一个可行的选择;因为对实例上运行的某些其他软件的许可限制。

我正在运行基于Windows的EC2实例。

谢谢, YUG

1 个答案:

答案 0 :(得分:0)

AWS CloudWatch 警报可用于触发:

  • 自动缩放策略(例如,在自动缩放组中添加/删除实例)
  • 停止/终止EC2实例
  • 通过亚马逊简单通知服务(SNS)
  • 发送通知

然后,SNS可以以各种格式向订阅者发送通知:

  • 发送短信(仅限美国)
  • 将消息推送到HTTP / S端点(例如您编写的应用程序)
  • 将消息推送到Amazon Simple Queue Service(SQS)
  • 向移动设备发送通知(例如Android,iPhone)

根据您的方案,可以使用HTTP或SQS通知,但您必须编写程序来响应通知。但是,您只能使用代理来实现应用程序的运行状况(例如CPU利用率),而不是实际监控应用程序的运行状况。

您可以将自定义指标从应用程序发送到CloudWatch,然后根据此自定义指标配置要触发的警报。但是,如果您遇到所有麻烦,那么检测问题的代码应该直接修复它,而不是通过CloudWatch。