当某些硬件消耗指标达到一定水平时,我想终止特定实例。如果我为扩展组创建警报(例如,将最大 CPU 消耗阈值设置为 >=50),它将终止最老的实例,而不是行为不当的实例。终止特定实例的一种方法是为该实例创建警报,而不是为扩展组创建警报。但是,如果我启动新实例(具有自动扩展功能),则此新实例不会有警报。
有没有办法启动具有预配置 ec2 级别警报的实例?
答案1
Cloudformation 的AWS::CloudWatch::警报对于设置特定于机器的警报非常有用。它与自动缩放、ELB 和 EC2 实例结合使用效果特别好。以下是与自动缩放组一起使用的代码片段。也许有人可以建议进行编辑以提供特定于 EC2 的示例。
"appCPUAlarmHigh": {
"Type": "AWS::CloudWatch::Alarm",
"Properties": {
"EvaluationPeriods": "7",
"Dimensions": [
{
"Name": "AutoScalingGroupName",
"Value": {
"Ref": "appServerGroup"
}
}
],
"AlarmActions": [
{
"Ref": "appStatusTopic"
}
],
"AlarmDescription": "Notify if CPU high for > 7m",
"Namespace": "AWS/EC2",
"Period": "60",
"ComparisonOperator": "GreaterThanThreshold",
"Statistic": "Average",
"Threshold": "50",
"MetricName": "CPUUtilization"
}
},
否则,你可以用Cloudinit和mon-启用警报操作。或者使用 OpsWorks,呃,我不知道。