本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
定義擴展政策
目標追踪規模調整政策組態由 JSON 區塊表示,其中定義了指標和目標值。您可以將規模調整政策的組態設定,儲存為文字檔案中的 JSON 區塊。叫用 AWS CLI 或 Application Auto Scaling API 時,您可以使用該文字檔案。如需政策組態語法的詳細資訊,請參閱 Application Auto Scaling API 參考中的 TargetTrackingScalingPolicyConfiguration。
您可使用下列選項來定義目標追蹤擴展政策的組態:
使用預先定義的指標
目標追踪規模調整政策組態由 JSON 區塊表示,其中定義了指標和目標值。您可以將規模調整政策的組態設定,儲存為文字檔案中的 JSON 區塊。叫用 AWS CLI 或 Application Auto Scaling API 時,您可以使用該文字檔案。如需政策組態語法的詳細資訊,請參閱 Application Auto Scaling API 參考中的 TargetTrackingScalingPolicyConfiguration。
您可使用下列選項來定義目標追蹤擴展政策的組態:
使用預先定義的指標
透過使用預先定義的指標,您可以快速定義 ElastiCache for Valkey 和 Redis OSS 叢集的目標追蹤擴展政策,該叢集可與 ElastiCache Auto Scaling 中的目標追蹤搭配使用。目前,ElastiCache 在 ElastiCache 複本 Auto Scaling 中支援下列預先定義的指標:
ElastiCacheReplicaEngineCPUUtilization
– 叢集中所有複本在 CloudWatch 中 EngineCPUUtilization 指標的平均值。您可以在 ElastiCache 下的 CloudWatch 中找到ReplicationGroupId, Role
所需的 ReplicationGroupId 和角色複本的彙總指標值。
若要在您的規模調整政策中使用預先定義的指標,請為規模調整政策建立目標追蹤組態設定。此組態設定必須加入用於預先定義指標的 PredefinedMetricSpecification
,以及用於該指標目標值的 TargetValue
。
使用自訂的指標
使用自訂的指標,您可以定義目標追蹤規模調整政策來滿足您的自訂需求。您可以根據隨擴展比例變更的任何 ElastiCache for Valkey 和 Redis OSS 指標來定義自訂指標。並非所有 ElastiCache 指標都適用於目標追蹤。指標必須是有效的使用率指標,而且能夠表示執行個體的忙碌程度。指標的值必須根據叢集中複本的數量依比例增加或減少。若要使用指標資料來依比例增加或減少碎片數量,這樣子成比例的增加或減少是必要的。
下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中,自訂指標會根據名為 的叢集中所有複本的平均 CPU 使用率 50% 來調整叢集my-db-cluster
。
{"TargetValue": 50, "CustomizedMetricSpecification": {"MetricName": "EngineCPUUtilization", "Namespace": "AWS/ElastiCache", "Dimensions": [ {"Name": "ReplicationGroup","Value": "my-db-cluster"}, {"Name": "Role","Value": "REPLICA"} ], "Statistic": "Average", "Unit": "Percent" } }
使用冷卻時間
您可以指定一個值 (單位為秒),讓 ScaleOutCooldown
新增冷卻時間以便水平擴展您的叢集。同樣的,您可以指定一個值 (單位為秒),讓 ScaleInCooldown
新增冷卻時間以便為您的叢集縮減規模。如需有關 ScaleInCooldown
和 ScaleOutCooldown
的詳細資訊,請參閱 Application Auto Scaling API 參考中的 TargetTrackingScalingPolicyConfiguration。下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中,ElastiCacheReplicaEngineCPUUtilization
預先定義的指標會根據該叢集中所有複本的平均 CPU 使用率 40% 來調整叢集。這個組態設定分別提供了 10 分鐘的規模縮減冷卻時間,和 5 分鐘的規模擴展冷卻時間。
{"TargetValue": 40.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }
停用規模縮減活動
您可以停用縮減活動,防止目標追蹤擴展政策組態在 ElastiCache for Valkey 和 Redis OSS 叢集中擴展。停用規模縮減的動作,可防止規模調整政策刪除複本,同時讓規模調整政策仍然能視需要新增複本。
您可以為 DisableScaleIn
指定布林值,以啟用或停用 叢集的規模縮減活動。如需有關 DisableScaleIn
的詳細資訊,請參閱 Application Auto Scaling API 參考中的 TargetTrackingScalingPolicyConfiguration。
下列的範例描述規模調整政策的目標追蹤組態設定。在此組態中,ElastiCacheReplicaEngineCPUUtilization
預先定義的指標會根據該叢集中所有複本的平均 CPU 使用率 40% 來調整叢集。此組態設定停用了規模調整政策的規模縮減動作。
{"TargetValue": 40.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization" }, "DisableScaleIn": true }
將擴展政策套用至 ElastiCache for Valkey 和 Redis OSS 叢集
向 ElastiCache for Valkey 和 Redis OSS 自動擴展註冊叢集並定義擴展政策之後,您可以將擴展政策套用至已註冊的叢集。若要將擴展政策套用至 ElastiCache for Valkey 和 Redis OSS 叢集,您可以使用 AWS CLI 或 Application Auto Scaling API。
使用 AWS CLI
若要將擴展政策套用至 ElastiCache for 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
到myscalablecluster
使用 ElastiCache 自動擴展名為 的叢集。做法是使用儲存於 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 API 將擴展政策套用至 ElastiCache 叢集,請使用 PutScalingPolicy Application Auto Scaling API 操作搭配下列參數:
-
PolicyName - 規模調整政策的名稱。
-
PolicyType - 將此值設為
TargetTrackingScaling
。 -
ResourceID – 叢集的資源識別符。在此參數中,資源類型為 ReplicationGroup,唯一識別符為 ElastiCache for Redis OSS 叢集的名稱,例如
replication-group/myscalablecluster
。 -
ServiceNamespace - 將此值設為 elasticache。
-
ScalableDimension - 將此值設為
elasticache:replication-group:Replicas
。 -
TargetTrackingScalingPolicyConfiguration – 要用於叢集的目標追蹤擴展政策組態。
在下列範例中,您將名為 的目標追蹤擴展政策套用scalablepolicy
到myscalablecluster
使用 ElastiCache 自動擴展名為 的叢集。您使用的政策組態設定,是以 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" } } }