当ec2实例终止时获取电子邮件通知

时间:2015-05-20 11:39:54

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

我需要在我的实例终止时收到通知。我知道它可以通过cloudtrail完成,然后使用sns和sqs来获取它的电子邮件,如果你收到终止事件。

  

有更简单的方法吗?

任何解决方案都会受到赞赏,但我更喜欢使用boto。

3 个答案:

答案 0 :(得分:1)

虽然终止实例时无法直接从Amazon EC2收到通知,但有几种方法可以实现:

Auto Scaling 可以在Auto Scaling 管理的实例终止时发送通知。请参阅:Configure Your Auto Scaling Group to Send Notifications

AWS Config 还可以配置为在资源更改时发送简单通知服务(SNS)通知。这将发送许多通知,因此您需要检查并过滤通知以找到指示实例终止的通知。请参阅:Set Up AWS Config Using the ConsoleExample Amazon SNS Notification and Email from AWS Config中的SNS参考。

Amazon Simple Notification Service(SNS)还可以将消息推送到Amazon Queuing Service(SQS),可以使用 boto python SDK轻松查询。

通过 CloudTrail和CloudWatch Logs 接收通知有些麻烦,因此我建议使用AWS Config方法。

答案 1 :(得分:0)

现在,AWS在AWS CloudWatch的“事件”下引入了“规则”。在您的情况下,您可以选择EC2作为事件选择器,选择SNS或SQS作为目标。

https://aws.amazon.com/blogs/aws/new-cloudwatch-events-track-and-respond-to-changes-to-your-aws-resources/

答案 2 :(得分:0)

根据AWS doc: Spot Instance Interruptions,可以合并实例元数据,以便获得终止时间的近似值。您可以围绕它构建任何自定义监视解决方案。

> curl http://169.254.169.254/latest/meta-data/spot/instance-action
{"action": "stop", "time": "2017-09-18T08:22:00Z"}

如果该实例未安排终止,则会返回http:400