Amazon EC2 Auto Scaling
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 Amazon CloudWatch 监控 Auto Scaling 组和实例

利用 Amazon CloudWatch,您可以按一组有序的时间序列数据(称为指标)来检索统计数据。您可使用这些指标来验证您的系统是否按预期运行。

Amazon EC2 将向 CloudWatch 发送描述 Auto Scaling 实例的指标。这些指标对任何 EC2 实例(而不仅仅是 Auto Scaling 组中的实例)可用。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的实例指标

Auto Scaling 组可以向 CloudWatch 发送描述该组本身的指标。您必须启用这些指标。

Auto Scaling 组指标

AWS/AutoScaling 命名空间包括以下指标。

指标 说明
GroupMinSize

Auto Scaling 组的最小大小。

GroupMaxSize

Auto Scaling 组的最大大小。

GroupDesiredCapacity

Auto Scaling 组试图维护的实例数量。

GroupInServiceInstances

作为 Auto Scaling 组的一部分运行的实例数量。该指标不包括处于挂起或终止状态的实例。

GroupPendingInstances

处于挂起状态的实例数量。挂起的实例尚不可用。该指标不包括处于可用状态或终止状态的实例。

GroupStandbyInstances

处于 Standby 状态的实例数。处于此状态的实例仍在运行,但不能有效使用。

GroupTerminatingInstances

正处于终止过程中的实例的数量。该指标不包括处于可用状态或挂起状态的实例。

GroupTotalInstances

Auto Scaling 组中的实例总数。该指标用于标识处于可用状态、挂起状态和终止状态的实例的数量。

Auto Scaling 组指标的维度

要按组名称筛选 Auto Scaling 组的指标,请使用 AutoScalingGroupName 维度。

启用 Auto Scaling 组指标

启用 Auto Scaling 组指标后,Auto Scaling 每分钟向 CloudWatch 发送采样数据。

启用组指标(控制台)

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Auto Scaling Groups

  3. 选择您的 Auto Scaling 组。

  4. Monitoring 选项卡上,为 Auto Scaling Metrics 选择 Enable Group Metrics Collection。如果您看不到此选项,请为 Display 选择 Auto Scaling

    
                        启用 Auto Scaling 组指标集合。

禁用组指标(控制台)

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Auto Scaling Groups

  3. 选择您的 Auto Scaling 组。

  4. Monitoring 选项卡上,为 Auto Scaling Metrics 选择 Disable Group Metrics Collection。如果您看不到此选项,请为 Display 选择 Auto Scaling

    
                        禁用 Auto Scaling 组指标集合。

启用组指标 (AWS CLI)

可以使用 enable-metrics-collection 命令启用一个或多个组指标。例如,以下命令可启用 GroupDesiredCapacity 指标。

aws autoscaling enable-metrics-collection --auto-scaling-group-name my-asg \ --metrics GroupDesiredCapacity --granularity "1Minute"

如果省略 --metrics 选项,则启用所有指标。

aws autoscaling enable-metrics-collection --auto-scaling-group-name my-asg \ --granularity "1Minute"

禁用组指标 (AWS CLI)

使用 disable-metrics-collection 命令。例如,以下命令可禁用所有 Auto Scaling 组指标:

aws autoscaling disable-metrics-collection --auto-scaling-group-name my-asg

为 Auto Scaling 实例配置监控

您可以使用启动配置或模板为 EC2 实例配置监控。每当启动实例时,都会启用监控:基本监控(5 分钟粒度)或详细监控(1 分钟粒度)。对于详细监控,将收取额外的费用。有关更多信息,请参阅 Amazon CloudWatch 定价

注意

默认情况下,在创建启动模板或使用 AWS 管理控制台 创建启动配置时,将启用基本监控。在使用 AWS CLI 或开发工具包创建启动配置时,将默认启用详细监控。

要更改在新 EC2 实例上启用的监控类型,请更新启动模板或更新 Auto Scaling 组以使用新的启动配置。现有实例将继续使用以前启用的监控类型。要更新所有实例,请终止这些实例,以便 Auto Scaling 组替换这些实例,或使用 monitor-instancesunmonitor-instances 单独更新实例。

如果具有与 Auto Scaling 组关联的 CloudWatch 警报,请使用 put-metric-alarm 命令更新每个警报。使每个时段与监控类型匹配(基本监控为 300 秒,详细监控为 60 秒)。如果从详细监控更改为基本监控,但未更新警报以与 5 分钟时间段匹配,这些警报将继续每分钟检查一次统计数据。在每个 5 分钟时间段内,这些警报可能会在 4 分钟内找不到可用的数据。

配置 CloudWatch 监控(控制台)

在使用 AWS 管理控制台创建启动配置时,在 Configure Details (配置详细信息) 页上,选择 Enable CloudWatch detailed monitoring (启用 CloudWatch 详细监控)。否则,将启用基本监控。有关更多信息,请参阅 创建启动配置

要使用 AWS 管理控制台为启动模板启用详细监控,请在高级详细信息部分中为监控选择启用。否则,将启用基本监控。有关更多信息,请参阅 为 Auto Scaling 组创建启动模板

配置 CloudWatch 监控 (AWS CLI)

对于启动配置,请将 create-launch-configuration 命令与 --instance-monitoring 选项一起使用。将此选项设置为 true 可启用详细监控,将此选项设置为 false 可启用基本监控。

--instance-monitoring Enabled=true

对于启动模板,请使用 create-launch-template 命令,并传递一个包含用于创建启动模板的信息的 JSON 文件。将监控属性设置为 "Monitoring":{"Enabled":true} 以启用详细监控,或设置为 "Monitoring":{"Enabled":false} 以启用基本监控。

查看 CloudWatch 指标

您可以使用 Amazon EC2 控制台查看 Auto Scaling 组和实例的 CloudWatch 指标。这些指标显示为监控图表。

或者,您可以使用 CloudWatch 控制台查看这些指标。

使用 Amazon EC2 控制台查看指标

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Auto Scaling Groups

  3. 选择您的 Auto Scaling 组。

  4. 选择 Monitoring 选项卡。

  5. (可选) 要按时间筛选结果,请从 Showing data for 中选择时间范围。

  6. 要查看组的指标,请为 Display 选择 Auto Scaling。要获得单个指标的一个较大视图,请选择其图形。以下指标可用于组:

    • 最小组大小 — GroupMinSize

    • 最大组大小 — GroupMaxSize

    • 所需容量 — GroupDesiredCapacity

    • 在服务实例中 — GroupInServiceInstances

    • 待处理实例 — GroupPendingInstances

    • 备用实例 — GroupStandbyInstances

    • 正在终止实例 — GroupTerminatingInstances

    • 实例总数 — GroupTotalInstances

  7. 要查看实例的指标,请为 Display 选择 EC2。要获得单个指标的一个较大视图,请选择其图形。以下指标可用于实例:

    • CPU 使用率 — CPUUtilization

    • 磁盘读取 — DiskReadBytes

    • 读磁盘操作 — DiskReadOps

    • 磁盘写入 — DiskWriteBytes

    • 写磁盘操作 — DiskWriteOps

    • 网络输入 — NetworkIn

    • 网络输出 — NetworkOut

    • 状态检查失败(任意)— StatusCheckFailed

    • 态检查失败(实例)— StatusCheckFailed_Instance

    • 状态检查失败(系统)— StatusCheckFailed_System

使用 CloudWatch 控制台查看指标

有关更多信息,请参阅按 Auto Scaling 组聚合统计数据

查看 CloudWatch 指标 (AWS CLI)

要查看所有 Auto Scaling 组的所有指标,请使用以下 list-metrics 命令:

aws cloudwatch list-metrics --namespace "AWS/AutoScaling"

要查看单个 Auto Scaling 组的指标,请指定 AutoScalingGroupName 维度,如下所示:

aws cloudwatch list-metrics --namespace "AWS/AutoScaling" --dimensions Name=AutoScalingGroupName,Value=my-asg

要查看适用于所有 Auto Scaling 组的单个指标,请指定该指标的名称,如下所示:

aws cloudwatch list-metrics --namespace "AWS/AutoScaling" --metric-name GroupDesiredCapacity

创建 Amazon CloudWatch 警报

监控指标的一个目的是验证您的应用程序是否正在按预期运行。如果指标超出了您认为可接受的阈值,则可以让 CloudWatch 警报触发某种操作。您可以指定 CloudWatch 支持的任何警报操作。

可以通过标识要监控的指标来配置警报。例如,您可以配置警报来监控 Auto Scaling 组中 EC2 实例的平均 CPU 使用率。该操作在满足以下条件时向您发送通知:在您指定的连续周期内,组的平均 CPU 使用率超过了指定的阈值。例如,如果在连续的 4 个 1 分钟周期内,指标量达到或高于 70%。

有关更多信息,请参阅 Amazon CloudWatch 用户指南 中的使用 Amazon CloudWatch 警报

创建基于平均 CPU 使用率的 CloudWatch 警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格中,依次选择 AlarmsCreate Alarm

  3. 选择选择指标,然后选择 EC2

  4. 选择用于筛选结果的指标类别。要查看 Auto Scaling 组指标,请选择 By Auto Scaling Group (按 Auto Scaling 组)。如果您只希望针对单个实例的指标,请选择每个实例的指标

  5. 按以下所示选择指标:

    1. 选择包含要在其上创建警报的 Auto Scaling 组或实例的行,然后选择 CPUUtilization 指标。

    2. 选择 Graphed metrics 选项卡。

    3. 对于统计数据,选择平均值

    4. 周期下,选择警报的评估周期,例如 1 分钟。评估警报时,每个时间段聚合到一个数据点。

      注意

      周期越短,创建的警报越敏感。

    5. 选择选择指标

  6. 条件下,通过定义阈值条件来定义警报。例如,您可以定义一个阈值,在指标值大于或等于 70% 时触发警报。

  7. 其他配置下,对于触发警报的数据点数,指定必须有多少个数据点(评估周期)必须处于 ALARM 状态才会触发警报,例如,全部 4 个数据点。这将创建一个警报,如果多个连续周期超出阈值,该警报将进入 ALARM(警报)状态。

  8. 对于缺失数据处理,请选择其中一个选项。对于持续报告数据的指标,例如 CPUUtilization,您可能希望选择 将缺失的数据作为不良(超出阈值)处理,因为缺失的数据点可能表明存在问题。有关更多信息,请参阅 Amazon CloudWatch 用户指南 中的配置 CloudWatch 警报处理缺少数据的方式

  9. 选择 Next

  10. 配置操作下,定义要执行的操作。

  11. 选择 Next

  12. 添加描述下,输入警报的名称和描述,然后选择下一步

  13. 选择 Create Alarm