【发布时间】:2017-02-22 07:05:29
【问题描述】:
当我们接近我们账户当前允许的 EC2 实例限制时,是否可以设置 CloudWatch 警报?
例如,如果 EC2 实例的限制当前为 250,则在预置实例号 240 时,我希望触发警报。
【问题讨论】:
标签: amazon-web-services amazon-cloudwatch cloudwatch
当我们接近我们账户当前允许的 EC2 实例限制时,是否可以设置 CloudWatch 警报?
例如,如果 EC2 实例的限制当前为 250,则在预置实例号 240 时,我希望触发警报。
【问题讨论】:
标签: amazon-web-services amazon-cloudwatch cloudwatch
如果您有一个启动新实例的 Auto Scaling 组并且您想控制它,您可以使用 GroupInServiceInstances,它会为您提供作为 ASG 一部分运行的实例数量。阅读更多here。
【讨论】:
是的,您可以使用 Lambda 函数、CloudWatch 指标和 CloudWatch 警报来执行此操作。
如果指标超过某个阈值(阈值是您的实例限制),您的警报将被配置为针对指标发出警报。
您的 Lambda 函数将按计划运行,例如每 5 分钟一次,并且会执行以下操作:
使用ec2:DescribeAccountAttributes API 获取账户实例限制,cloudwatch:DescribeAlarms 获取当前告警阈值。如果它们不同,则应通过cloudwatch:PutMetricAlarm API 将警报阈值更新为实例限制。
使用ec2:DescribeInstances API 并计算正在运行的实例数,并使用cloudwatch:PutMetricData API 将值发布到自定义 CloudWatch 指标。
如果发布到指标的值超过警报的阈值,它将触发。 lambda 函数会将警报阈值配置为实例的限制,并将根据当前运行的实例数将数据点发布到指标。
【讨论】: