有没有办法显示 Cloudwatch 指标,该指标显示在给定时间从给定 AMI 构建的正在运行的 EC2 实例数。我正在尝试跟踪在一天中不断扩展和缩小的系统的大小,并且如果可能的话,我想向 Cloudwatch 仪表板添加一个图表。但是,当我打开 Cloudwatch 的指标部分时,我看到的只是与查看特定 EC2 实例时获得的实例级统计信息相同的数据,并且我所有的 Google 搜索最终都会将我带回到实例级指标。
Cloudwatch 中是否有一个简单的指标可以计算 AMI 正在运行的 EC2 实例的数量,如果有,我该如何在 Cloudwatch 中添加开始跟踪?
答案1
您可以创建自定义 CloudWatch 指标来跟踪这一点。创建一个 CloudWatch 事件,当实例进入正在运行、已停止或已终止状态时触发,然后调用 Lambda 函数。使用该 Lambda 函数发布到自定义 CloudWatch 指标。此方法的唯一问题是 Lambda 不会保存状态,因此您需要对指标执行描述 api 调用以获取其最后一个数据点,然后根据事件 +/- 1,或者执行描述实例 api 调用并过滤处于运行状态的 ami 和实例,然后发布计数。请注意,我相信 CloudWatch 只会向 Lambda 发送实例 ID 和状态,因此您必须在实例 ID 上运行描述实例以确认它正在运行您想要跟踪的 ami。
我过去运行过类似的东西来跟踪实时运行的实例是否符合服务限制。
答案2
要在 CloudWatch 中跟踪事件,您需要创建一个紧急信号,该信号使用给定的阈值来控制指标。创建警报时,您可以添加“操作”来发送通知。AWS 通过 SNS(简单通知服务)处理通知。您可以订阅通知主题,然后您将收到有关警报的电子邮件消息。