

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

# 定义扩缩策略
<a name="AutoScaling-Scaling-Defining-Policy-API"></a>

目标跟踪扩展策略配置是由 JSON 块表示的，其中定义了指标和目标值。您可以在文本文件中将扩展策略配置保存为 JSON 块。您可以在调用 AWS CLI 或 Application Auto Scaling API 时使用该文本文件。有关策略配置语法的更多信息，请参阅《应用程序自动扩缩 API 参考》中的 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)。

您可以使用以下选项定义目标跟踪扩缩策略配置：

**Topics**
+ [使用预定义的指标](#AutoScaling-Scaling-Predefined-Metric)
+ [使用自定义指标](#AutoScaling-Scaling-Custom-Metric)
+ [使用冷却时间](#AutoScaling-Scaling-Cooldown-periods)

## 使用预定义的指标
<a name="AutoScaling-Scaling-Predefined-Metric"></a>

通过使用预定义的指标，您可以快速为适用于 Valkey 和 Redis OSS 集群定义目标跟踪扩展策略，该策略可在 Auto Scaling 中进行目标跟踪。 ElastiCache ElastiCache 

目前，在 A NodeGroup uto Scaling 中 ElastiCache 支持以下预定义指标：
+ **ElastiCachePrimaryEngineCPUUtilization**— 集群中 CloudWatch所有主节点的`EngineCPUUtilization`指标的平均值。
+ **ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage**— 集群中 CloudWatch 所有主节点的`DatabaseMemoryUsageCountedForEvictPercentage`指标的平均值。
+ **ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage**— 集群中 CloudWatch 所有主节点的`ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage`指标的平均值。

有关 `EngineCPUUtilization`、`DatabaseMemoryUsageCountedForEvictPercentage` 和 `DatabaseCapacityUsageCountedForEvictPercentage` 指标的更多信息，请参阅[使用 CloudWatch 指标监控使用情况](CacheMetrics.md)。要在扩展策略中使用预定义的指标，您需要为扩展策略创建一个目标跟踪配置。该配置必须包含 `PredefinedMetricSpecification` 以表示预定义的指标，并包含 TargetValue 以表示该指标的目标值。

**Example**  
以下示例描述了适用于 Valkey 和 Redis OSS 集群的目标跟踪扩展 ElastiCache 的典型策略配置。在该配置中，`ElastiCachePrimaryEngineCPUUtilization` 预定义指标用于根据集群中所有主节点的平均 CPU 使用率（40%）来调整该集群。  

```
{
    "TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
    }
}
```

## 使用自定义指标
<a name="AutoScaling-Scaling-Custom-Metric"></a>

 通过使用自定义指标，您可以定义满足您的自定义要求的目标跟踪扩展策略。您可以根据随扩展按比例变化的任何 ElastiCache 指标定义一个自定义指标。并非所有 ElastiCache 指标都适用于目标跟踪。指标必须是有效的使用率指标，它用于描述实例的繁忙程度。指标值必须随集群中分区数按比例增加或减少。要使用指标数据按比例横向扩展或缩减分区数，必须按比例进行这种增加或减少。

**Example**  
以下示例说明了扩缩策略的目标跟踪配置。在此配置中，自定义指标会根据名 ElastiCache 为的集群中所有分片的平均 CPU 利用率为 50% 来调整 Redis OSS 集群。`my-db-cluster`

```
{
    "TargetValue": 50,
    "CustomizedMetricSpecification":
    {
        "MetricName": "EngineCPUUtilization",
        "Namespace": "AWS/ElastiCache",
        "Dimensions": [
            {
                "Name": "ReplicationGroup","Value": "my-db-cluster"
            },
            {
                "Name": "Role","Value": "PRIMARY"
            }
        ],
        "Statistic": "Average",
        "Unit": "Percent"
    }
}
```

## 使用冷却时间
<a name="AutoScaling-Scaling-Cooldown-periods"></a>

您可以为 `ScaleOutCooldown` 指定一个值（秒）以添加横向扩展集群的冷却时间。同样，您可以为 `ScaleInCooldown` 添加一个值（秒）以添加横向缩减集群的冷却时间。有关更多信息，请参阅《Applicati [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)on Auto Scaling API 参考》中的。

 以下示例说明了扩缩策略的目标跟踪配置。在此配置中，`ElastiCachePrimaryEngineCPUUtilization`预定义的指标用于根据该集群中所有主节点的平均 40% 的 CPU 利用率来调整 Redis OSS 集群。 ElastiCache 该配置将横向缩减冷却时间指定为 10 分钟，并将横向扩展冷却时间指定为 5 分钟。

```
{
    "TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
    },
    "ScaleInCooldown": 600,
    "ScaleOutCooldown": 300
}
```