【问题标题】:SNS notification for ec2 instance creation and terminationec2 实例创建和终止的 SNS 通知
【发布时间】:2018-06-21 22:01:27
【问题描述】:

每当在我的 AWS 账户中创建/终止 ec2 实例时,我希望通过电子邮件收到通知。我怎样才能做到这一点?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-lambda


    【解决方案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】:

    我可以想到两种方法来解决这个问题:

    1. 启用 Cloudtrail 并将其流式传输到 Cloudwatch。在 Cloudwatch 中,您创建规则以在创建实例时发送 SNS。 Cloudtrail 和 Cloudwatch 会产生一些费用。
    2. 使用 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 不能立即传递消息!!
    猜你喜欢
    • 1970-01-01
    • 2015-12-13
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    相关资源
    最近更新 更多