本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
定义扩缩策略
目标跟踪扩展策略配置由定义指标和目标值的JSON块表示。您可以将扩展策略配置另存为文本文件中的一个JSON块。在调用 AWS CLI 或 Application Auto Scal API ing 时,您可以使用该文本文件。有关策略配置语法的更多信息,请参阅《App lication Auto Scaling API 参考》TargetTrackingScalingPolicyConfiguration中的。
您可以使用以下选项定义目标跟踪扩缩策略配置:
使用预定义的指标
目标跟踪扩展策略配置由定义指标和目标值的JSON块表示。您可以将扩展策略配置另存为文本文件中的一个JSON块。在调用 AWS CLI 或 Application Auto Scal API ing 时,您可以使用该文本文件。有关策略配置语法的更多信息,请参阅《App lication Auto Scaling API 参考》TargetTrackingScalingPolicyConfiguration中的。
您可以使用以下选项定义目标跟踪扩缩策略配置:
使用预定义的指标
通过使用预定义的指标,您可以快速为 For Valkey 和 Redis OSS 集群定义目标跟踪扩展策略,该策略可在 Auto Scaling 中使用目标跟踪。 ElastiCache ElastiCache 目前,在 ElastiCache Replicas Auto Scaling 中 ElastiCache 支持以下预定义指标:
ElastiCacheReplicaEngineCPUUtilization
— 集群中 CloudWatch 所有副本的 E ngineCPUUtilization 指标的平均值。您可以在 “必填项” ReplicationGroupId 和 “角色副本 CloudWatch ” 下 ElastiCache ReplicationGroupId, Role
找到汇总指标值。
要在扩展策略中使用预定义的指标,您需要为扩展策略创建一个目标跟踪配置。该配置必须包含 PredefinedMetricSpecification
以表示预定义的指标,并包含 TargetValue
以表示该指标的目标值。
使用自定义指标
通过使用自定义指标,您可以定义满足您的自定义要求的目标跟踪扩展策略。您可以基于 Valkey 和 Redis ElastiCache 的任意指标定义自定义OSS指标,这些指标会随扩展比例而变化。并非所有 ElastiCache 指标都适用于目标跟踪。指标必须是有效的使用率指标,它用于描述实例的繁忙程度。指标值必须随集群中的副本数按比例增加或减少。要使用指标数据按比例增加或减少副本数,必须按比例进行这种增加或减少。
以下示例说明了扩缩策略的目标跟踪配置。在此配置中,自定义指标根据名为的集群中所有副本的平均CPU利用率为 50% 来调整集群。my-db-cluster
{"TargetValue": 50, "CustomizedMetricSpecification": {"MetricName": "EngineCPUUtilization", "Namespace": "AWS/ElastiCache", "Dimensions": [ {"Name": "RelicationGroup","Value": "my-db-cluster"}, {"Name": "Role","Value": "REPLICA"} ], "Statistic": "Average", "Unit": "Percent" } }
使用冷却时间
您可以为 ScaleOutCooldown
指定一个值(秒)以添加横向扩展集群的冷却时间。同样,您可以为 ScaleInCooldown
添加一个值(秒)以添加横向缩减集群的冷却时间。有关ScaleInCooldown
和的更多信息ScaleOutCooldown
,请参阅《Auto Scaling Auto Scaling API 参考》TargetTrackingScalingPolicyConfiguration中的。以下示例说明了扩缩策略的目标跟踪配置。在此配置中,ElastiCacheReplicaEngineCPUUtilization
预定义的指标用于根据集群中所有副本的平均CPU利用率为 40% 来调整集群。该配置将缩减冷却时间指定为 10 分钟,并将扩展冷却时间指定为 5 分钟。
{"TargetValue": 40.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }
禁用横向缩减活动
您可以通过禁用缩容活动来防止目标跟踪扩展策略配置在您 ElastiCache 的 Valkey 和 Redis OSS 集群中扩展。禁用横向缩减活动将禁止扩展策略删除副本,同时仍允许扩展策略根据需要添加副本。
您可以为 DisableScaleIn
指定一个布尔值,以便为集群启用或禁用横向缩减活动。有关更多信息DisableScaleIn
,请参阅《Auto Scaling Auto Scaling API 参考》TargetTrackingScalingPolicyConfiguration中的。
以下示例说明了扩缩策略的目标跟踪配置。在此配置中,ElastiCacheReplicaEngineCPUUtilization
预定义的指标根据集群中所有副本的平均CPU利用率为 40% 来调整该集群。该配置禁用扩展策略的缩减活动。
{"TargetValue": 40.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization" }, "DisableScaleIn": true }
将扩展策略应用 ElastiCache 于 Valkey 和 Redis 集群 OSS
在 Valkey 和 Redis a OSS uto Scaling 中注册集群并定义扩展策略后,您可以将扩展策略应用于已注册的集群。 ElastiCache 要将扩展策略应用于 Valkey 和 Redis OSS 集群,你可以使用 AWS CLI 或 Application Auto Scaling。 ElastiCache API
使用 AWS CLI
要将扩展策略应用 ElastiCache 于 Valkey 和 Redis OSS 集群,请使用带有以下参数的put-scaling-policy命令:
-
--policy-name – 扩展策略的名称。
-
--policy-type – 将此值设置为
TargetTrackingScaling
。 -
--resource-id – 集群的资源标识符。例如,对于此参数,资源类型为 ReplicationGroup ,唯一标识符是群集的名称
replication-group/myscalablecluster
。 -
--service-namespace – 将此值设置为 elasticache。
-
--scalable-dimension – 将此值设置为
elasticache:replication-group:Replicas
。 -
--target-tracking-scaling-policy-configuration — 用于集群的目标跟踪扩展策略配置。
在以下示例中,您将名为的目标跟踪扩展策略应用于名为 myscalablepolicy
a myscalablecluster
ElastiCache uto scaling 的集群。为此,请使用在名为 config.json
的文件中保存的策略配置。
对于 Linux、macOS 或 Unix:
aws application-autoscaling put-scaling-policy \ --policy-name myscalablepolicy \ --policy-type TargetTrackingScaling \ --resource-id replication-group/myscalablecluster \ --service-namespace elasticache \ --scalable-dimension elasticache:replication-group:Replicas \ --target-tracking-scaling-policy-configuration file://config.json
{"TargetValue": 40.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization" }, "DisableScaleIn": true }
对于 Windows:
aws application-autoscaling put-scaling-policy ^ --policy-name myscalablepolicy ^ --policy-type TargetTrackingScaling ^ --resource-id replication-group/myscalablecluster ^ --service-namespace elasticache ^ --scalable-dimension elasticache:replication-group:Replicas ^ --target-tracking-scaling-policy-configuration file://config.json
使用 API
要使用 Application Auto Scaling 将扩展策略应用于您的 ElastiCache 集群API,请使用带有以下参数的 App PutScalingPolicylication Auto Scaling API 操作:
-
PolicyName — 扩展策略的名称。
-
PolicyType — 将此值设置为
TargetTrackingScaling
。 -
ResourceID – 集群的资源标识符。例如
replication-group/myscalablecluster
,对于此参数,资源类型为 ReplicationGroup ,唯一标识符是 Redi ElastiCache s OSS 集群的名称。 -
ServiceNamespace — 将此值设置为 elasticache。
-
ScalableDimension — 将此值设置为
elasticache:replication-group:Replicas
。 -
TargetTrackingScalingPolicyConfiguration — 用于集群的目标跟踪扩展策略配置。
在以下示例中,您将名为的目标跟踪扩展策略应用于名为 scalablepolicy
a myscalablecluster
ElastiCache uto scaling 的集群。您使用的策略配置基于 ElastiCacheReplicaEngineCPUUtilization
预定义指标。
POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity Content-Length: 219 X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "PolicyName": "myscalablepolicy", "ServiceNamespace": "elasticache", "ResourceId": "replication-group/myscalablecluster", "ScalableDimension": "elasticache:replication-group:Replicas", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization" } } }