ec2 实例创建和终止的 SNS 通知
Posted
技术标签:
【中文标题】ec2 实例创建和终止的 SNS 通知【英文标题】:SNS notification for ec2 instance creation and termination 【发布时间】:2018-06-21 22:01:27 【问题描述】:每当在我的 AWS 账户中创建/终止 ec2 实例时,我希望通过电子邮件收到通知。我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:最简单的方法 (IMO) 是使用 CloudWatch Events 服务以及配置为向您的电子邮件 ID 发送电子邮件的 SNS 主题。
在 AWS Web 控制台中,转到 CloudWatch -> 事件(在左侧面板上)-> 规则 -> '创建规则'
在“事件源”中选择“事件模式”。然后选择“服务事件”。在“服务名称”前面选择“EC2”,对于“事件类型”,选择“EC2 实例状态更改通知”。您可以选择“任何状态”以获取有关每个状态更改的通知,也可以选择您感兴趣的特定状态(“正在运行”和“已终止”|“已停止”可能对您感兴趣)。在右侧,单击“添加目标”,然后从下拉列表中选择“SNS 主题”。然后选择您已配置的 SNS 主题,以向您的电子邮件 ID 发送通知电子邮件。
希望这会有所帮助!
【讨论】:
但是在启动 ec2 实例时这样做不会通知我。有什么方法可以在新实例启动时收到通知? @VineethVenugopal 这将在每次任何实例更改状态时通知您,包括新实例转换为挂起然后运行。 如果您只对创建或终止实例时的通知感兴趣,如 OP 所示,那么您可以将事件规则配置为分别针对“待处理”和“终止”状态。这避免了无关的通知,例如重新启动。另见:docs.aws.amazon.com/AWSEC2/latest/UserGuide/…【参考方案2】:我可以想到两种方法来解决这个问题:
-
启用 Cloudtrail 并将其流式传输到 Cloudwatch。在 Cloudwatch 中,您创建规则以在创建实例时发送 SNS。 Cloudtrail 和 Cloudwatch 会产生一些费用。
使用 Lambda:当 CloudTrail 在 S3 中创建对象时,触发一个导致 Lambda 函数执行的事件。然后 Lambda 函数解析 S3 对象并检查
RunInstances
事件。如果找到RunInstances
,则提取实例的其他属性并使用 AWS SES 发送邮件。
解决方案 1:AWS 处理一切。产生少量 AWS 费用(Cloudwatch + SNS)。了解事情如何运作的机会并不多。
解决方案 2:从 Cloudtrail 开始,您可以控制流程。 Lambda 和 SES 实际上是免费的(Lambda 执行在一定限度内是免费的,在 SES 沙盒模式下最多可以免费发送 200 封电子邮件)。有机会了解 S3/Lambda/SES。
【讨论】:
问题是那个 cloudtrail 不能立即传递消息!!以上是关于ec2 实例创建和终止的 SNS 通知的主要内容,如果未能解决你的问题,请参考以下文章