スケーリングポリシーの定義 - Amazon ElastiCache

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

スケーリングポリシーの定義

ターゲット追跡スケーリングポリシーの設定は、メトリクスとターゲット値が定義されている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 Auto Scaling のターゲット追跡と連携する for ElastiCache Valkey および Redis OSSクラスターのターゲット追跡スケーリングポリシーをすばやく定義できます。現在、 は ElastiCache Replicas Auto Scaling で次の事前定義されたメトリクス ElastiCache をサポートしています。

ElastiCacheReplicaEngineCPUUtilization – クラスター内のすべてのレプリカ CloudWatch にわたる の E ngineCPUUtilization メトリクスの平均値。必須および ReplicationGroupId ロールレプリカの CloudWatch の下に ElastiCache ReplicationGroupId, Role集計メトリクス値があります。

スケーリングポリシーで事前定義メトリクスを使用するには、スケーリングポリシーのターゲット追跡構成を作成します。この設定は、事前定義メトリクスの PredefinedMetricSpecification と、そのメトリクスのターゲット値の TargetValue が含まれている必要があります。

カスタムメトリクスの使用

カスタムメトリクスを使用することで、カスタム要件を満たすターゲット追跡スケーリングポリシーを定義できます。スケーリングに比例して変化する for ElastiCache Valkey および Redis メトリクスに基づいてカスタム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 および の詳細についてはScaleOutCooldownApplication 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 のブール値を指定して、クラスターのアクティビティのスケールを有効または無効にすることができます。の詳細についてはDisableScaleInApplication 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 自動スケーリングに登録し、スケーリングポリシーを定義したら、登録されたクラスターにスケーリングポリシーを適用します。Valkey および Redis OSSクラスター ElastiCache の にスケーリングポリシーを適用するには、 AWS CLI または Application Auto Scaling を使用できますAPI。

の使用 AWS CLI

Valkey および Redis OSSクラスター ElastiCache の にスケーリングポリシーを適用するには、以下のパラメータを指定して put-scaling-policy コマンドを使用します。

  • --policy-name – スケーリングポリシーの名前。

  • --policy-type — この値は TargetTrackingScaling に設定します。

  • --resource-id – クラスターのリソース識別子。このパラメータでは、リソースタイプは ReplicationGroup で、一意の識別子はクラスターの名前です。たとえば、 ですreplication-group/myscalablecluster

  • —service-namespace – この値は elasticache に設定します。

  • —scalle-dimension — この値は elasticache:replication-group:Replicas に設定します。

  • -target-tracking-scaling-policy-configuration – クラスターに使用するターゲット追跡スケーリングポリシー設定。

次の例では、 という名前のターゲット追跡スケーリングポリシーmyscalablepolicyを、 ElastiCache 自動スケーリングmyscalableclusterを使用する という名前のクラスターに適用します。そのためには、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、次のパラメータを指定して PutScalingPolicy Application Auto Scaling APIオペレーションを使用します。

  • PolicyName – スケーリングポリシーの名前。

  • PolicyType – この値を に設定しますTargetTrackingScaling

  • ResourceID — クラスターのリソース識別子。このパラメータでは、リソースタイプは ReplicationGroup で、一意の識別子は Redis ElastiCache OSSクラスターの の名前です。たとえば、 ですreplication-group/myscalablecluster

  • ServiceNamespace – この値を elasticache に設定します。

  • ScalableDimension – この値を に設定しますelasticache:replication-group:Replicas

  • TargetTrackingScalingPolicyConfiguration – クラスターに使用するターゲット追跡スケーリングポリシー設定。

次の例では、 という名前のターゲット追跡スケーリングポリシーscalablepolicyを、 ElastiCache 自動スケーリングmyscalableclusterを使用する という名前の クラスターに適用します。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" } } }