

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建目标跟踪扩缩策略
<a name="policy_creating"></a>

要为自动扩缩组创建目标跟踪扩缩策略，请使用以下方法之一。

在开始操作之前，请确认您的首选指标每隔 1 分钟可用（而 Amazon EC2 指标的默认间隔为 5 分钟）。

------
#### [ Console ]

**为新的自动扩缩组创建目标跟踪扩展策略**

1. 在上打开 Amazon EC2 控制台 [https://console.aws.amazon.com/ec2/](https://console.amazonaws.cn/ec2/)，然后从导航窗格中选择 A **uto Scaling Gro** ups。

1. 选择 **Create Auto Scaling group**（创建 Auto Scaling 组）。

1. 在步骤 1、2 和 3 中，根据需要选择选项，然后继续**步骤 4：配置组大小和扩缩策略**。

1. 在**扩缩**下，通过更新**最小容量**和**最大容量**来指定您想要在其间扩缩的范围。这两个设置允许您的 Auto Scaling 组动态扩缩。有关更多信息，请参阅 [为自动扩缩组设置扩缩限制](asg-capacity-limits.md)。

1. 在**自动扩缩**下，选择**目标跟踪扩缩策略**。

1. 要定义策略，请执行以下操作：

   1. 指定策略的名称。

   1. 对于 **Metric type**（指标类型）， 选择一个指标。

      如果您选择了**每个目标的 Application Load Balancer 请求计数**，请在**目标组**中选择目标组。

   1. 为指标指定 **Target value**（目标值）。

   1. （可选）对于**实例预热**，请根据需要更新实例预热值。

   1. （可选）选择 **Disable scale in to create only a scale-out policy**（禁用缩减以创建仅扩展策略）。这样，可以根据需要创建独立的其他类型的缩减策略。

1. 继续创建 Auto Scaling 组。您的扩展策略将在创建 Auto Scaling 组后创建。

**为现有 Auto Scaling 组创建目标跟踪扩展策略**

1. 在上打开 Amazon EC2 控制台 [https://console.aws.amazon.com/ec2/](https://console.amazonaws.cn/ec2/)，然后从导航窗格中选择 A **uto Scaling Gro** ups。

1. 选中您的自动扩缩组旁边的复选框。

   这时将在页面底部打开一个拆分窗格。

1. 验证是否正确设置了扩缩限制。例如，如果您的组所需的容量已经是最大，则指定一个新的最大值才能向外扩展。有关更多信息，请参阅 [为自动扩缩组设置扩缩限制](asg-capacity-limits.md)。

1. 在 **Automatic scaling**（自动扩展）选项卡的 **Dynamic scaling policies**（动态扩展策略）中，选择 **Create dynamic scaling policy**（创建动态扩展策略）。

1. 要定义策略，请执行以下操作：

   1. 对于 **策略类型**，保留默认的 **目标跟踪扩展**。

   1. 指定策略的名称。

   1. 对于 **Metric type**（指标类型）， 选择一个指标。您只能选择一种指标类型。要使用多个指标，请创建多个策略。

      如果您选择了**每个目标的 Application Load Balancer 请求计数**，请在**目标组**中选择目标组。

   1. 为指标指定 **Target value**（目标值）。

   1. （可选）对于**实例预热**，请根据需要更新实例预热值。

   1. （可选）选择 **Disable scale in to create only a scale-out policy**（禁用缩减以创建仅扩展策略）。这样，可以根据需要创建独立的其他类型的缩减策略。

1. 选择**创建**。

------
#### [ Amazon CLI ]

要创建目标跟踪扩缩策略，可以使用以下示例来帮助您开始。将每个 *user input placeholder* 替换为您自己的信息。

**注意**  
有关更多示例，请参阅[的扩展策略示例 Amazon CLI](examples-scaling-policies.md)。

**创建目标跟踪扩缩策略（Amazon CLI）**

1. 使用以下 `cat` 命令可以在您主目录的名为 `config.json` 的 JSON 文件中存储扩缩策略的目标值和预定义指标规范。以下是将 CPU 平均使用率保持在 50% 的示例目标跟踪配置。

   ```
   $ cat ~/config.json
   {
     "TargetValue": 50.0,
     "PredefinedMetricSpecification": 
       {
         "PredefinedMetricType": "ASGAverageCPUUtilization"
       }
   }
   ```

   有关更多信息，请参阅[PredefinedMetricSpecification](https://docs.amazonaws.cn/autoscaling/ec2/APIReference/API_PredefinedMetricSpecification.html)《*亚马逊 EC2 Auto Scaling API 参考*》。

1. 使用 [put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scaling-policy.html) 命令以及在前面的步骤中创建的 `config.json` 文件创建扩展策略。

   ```
   aws autoscaling put-scaling-policy --policy-name cpu50-target-tracking-scaling-policy \
     --auto-scaling-group-name my-asg --policy-type TargetTrackingScaling \
     --target-tracking-configuration file://config.json
   ```

   如果成功，此命令将返回代表您创建的两个 CloudWatch 警报的 ARNs 和名称。

   ```
   {
       "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-asg:policyName/cpu50-target-tracking-scaling-policy",
       "Alarms": [
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e",
               "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e"
           },
           {
               "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2",
               "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2"
           }
       ]
   }
   ```

------