AWS CloudWatch用于启动/停止EC2实例

时间:2016-07-19 12:44:06

标签: amazon-web-services amazon-ec2 amazon-cloudwatch

如果CPU利用率在另一个EC2 instacne上增加或减少,只需查看启动/停止AWS EC2实例的方法。我知道AWS中有可用的Auto Scaling服务,但我有一个无法利用此服务的方案。

所以只是看看是否有可能或任何人都可以帮助我。

只是详细说明这个问题,比如假设我在AWS账户上有2个EC2实例,名称为EC21和EC22。默认情况下,EC22实例已停止。

现在我需要设置CloudWatch或任何其他服务来检查EC21实例上的负载/ CPU利用率是否增加70%然后需要启动EC22服务器,同样如果EC21实例上的负载减少30%则停止EC22服务器。< / p>

请指教!

3 个答案:

答案 0 :(得分:2)

触发CloudWatch警报时,它将通知SNS主题。您可以拥有该SNS主题,然后调用Lambda函数,然后可以启动您的EC2实例。

  1. 创建启动EC2实例的AWS Lambda函数。
  2. 配置您的SNS主题,以便在收到消息时调用您的Lambda函数。你可以在这里阅读:Invoking Lambda functions using Amazon SNS notifications
  3. 最后,确保您的CloudWatch警报向SNS主题发送消息。

答案 1 :(得分:0)

是的,对于某些类型的EC2实例,这是可能的。查看此详细指南,您可以使用该指南根据AWS Cloud Watch指标在EC2实例中设置触发器。

http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/UsingAlarmActions.html

答案 2 :(得分:0)

我认为你的问题可能适合我现在也试图解决的问题 - 我有一些功能无法用Lambdas解决,因为它们的生命周期很短,所以我需要一个相对短暂的EC2实例来完成任务。

该解决方案类似于Matt描述的解决方案,但没有SNS,使用AWS触发器启动lambda函数来启动实例。额外的好处是lambda函数本身可以验证是否确实需要EC2启动。

  

How do I stop and start Amazon EC2 instances at regular intervals using AWS Lambda?

     

问题

     

我希望减少我的Amazon Elastic Cloud Compute(Amazon EC2)使用情况   在预定义的时间或利用率停止和启动实例   阈值。我可以配置AWS Lambda和Amazon CloudWatch以提供帮助   我自动这样做了吗?

     

简短说明

     

您可以使用CloudWatch Event触发Lambda函数启动   并按计划的时间间隔停止您的EC2实例。

来源:AWS Knowledge Center