スケーリングポリシーの定義 - 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 のターゲット追跡で動作する ElastiCache Auto Scalingポリシーをすばやく定義できます。現在、ElastiCache は、ElastiCache レプリカの自動スケーリングで次の定義済みメトリクスをサポートしています。

ElastiCacheReplicaEngineCPUUtilization — すべてのレプリカクラスターでの CloudWatch の EngineCPUUtilization メトリクスの平均値。必要な ReplicationGroupId とロールレプリカに対する集約されたメトリクス値は、CloudWatch の ElastiCache ReplicationGroupId, Role で確認できます。

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

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

カスタムメトリクスを使用することで、カスタム要件を満たすターゲット追跡スケーリングポリシーを定義できます。スケーリングに比例して変化する ElastiCache for Valkey および Redis OSS メトリクスに基づいてカスタムメトリクスを定義できます。ElastiCache のすべてのメトリクスがターゲット追跡に使用できるわけではありません。メトリクスは、有効な使用率メトリクスで、インスタンスの使用頻度を示す必要があります。クラスター内のレプリカの数に比例してメトリクスの値を増減する必要があります。この比例的な増減は、メトリクスデータを使用して、比例的にレプリカの数を増減するために必要です。

次の例では、スケーリングポリシーのターゲット追跡設定について説明します。この設定では、カスタムメトリクスにより、my-db-cluster という名前のクラスター内の全レプリカでの平均 CPU 使用率 50% に基づいてクラスターが調整されます。

{"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 の値を秒単位で追加して、クラスターをスケールインするためのクールダウン期間を追加することができます。ScaleInCooldownScaleOutCooldown の詳細については、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 に設定します。

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

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

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

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