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

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

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

ターゲット追跡スケーリングポリシー設定は、メトリクスとターゲット値が定義されている JSON ブロックで表されます。JSON ブロックとしてスケーリングポリシー設定をテキストファイルに保存できます。このテキストファイルは、AWS CLI または アプリケーションの Auto Scaling API を呼び出す際に使用します。ポリシー設定構文の詳細については、Application Auto Scaling API リファレンスの「TargetTrackingScalingPolicyConfiguration」を参照してください。

ターゲット追跡スケーリングポリシー設定を定義するには、次のオプションを使用できます。

事前定義メトリクスの使用

ターゲット追跡スケーリングポリシー設定は、メトリクスとターゲット値が定義されている JSON ブロックで表されます。JSON ブロックとしてスケーリングポリシー設定をテキストファイルに保存できます。このテキストファイルは、AWS CLI または アプリケーションの Auto Scaling API を呼び出す際に使用します。ポリシー設定構文の詳細については、Application Auto Scaling API リファレンスの「TargetTrackingScalingPolicyConfiguration」を参照してください。

ターゲット追跡スケーリングポリシー設定を定義するには、次のオプションを使用できます。

事前定義メトリクスの使用

定義済みのメトリクスを使用することにより、ElastiCache Auto Scaling のターゲット追跡で動作する Valkey と Redis OSS に対応した ElastiCache クラスターのターゲット追跡スケーリングポリシーを迅速に定義できます。現在、ElastiCache は、ElastiCache レプリカの自動スケーリングで次の定義済みメトリクスをサポートしています。

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

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

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

カスタムメトリクスを使用することで、カスタム要件を満たすターゲット追跡スケーリングポリシーを定義できます。スケーリングに比例して変化する、Valkey と Redis OSS に対応した ElastiCache メトリクスに基づいて、カスタムメトリクスを定義することができます。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 }

スケールインアクティビティの無効化

スケールインアクティビティを無効にすることにより、ターゲット追跡スケーリングポリシー設定が Valkey と Redis OSS に対応した ElastiCache クラスターでスケールインされないようにできます。スケールインアクティビティを無効にすると、スケーリングポリシーによってレプリカが削除されることなく、スケーリングポリシーによって必要に応じて追加されます。

DisableScaleIn のブール値を指定して、クラスターのアクティビティのスケールを有効または無効にすることができます。DisableScaleIn の詳細については、Application Auto Scaling API リファレンスの「TargetTrackingScalingPolicyConfiguration」を参照してください。

次の例では、スケーリングポリシーのターゲット追跡設定について説明します。この設定では、ElastiCacheReplicaEngineCPUUtilization 事前定義メトリクスにより、そのクラスター内の全レプリカでの平均 CPU 使用率 40% に基づいてクラスターが調整されます。この設定では、スケーリングポリシーのスケールインアクティビティが無効になります。

{"TargetValue": 40.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization" }, "DisableScaleIn": true }

Valkey と Redis OSS に対応した ElastiCache クラスターへのスケーリングポリシーの適用

クラスターを Valkey と Redis OSS に対応した ElastiCache の自動スケーリングに登録し、スケーリングポリシーを定義した後、登録されたクラスターにスケーリングポリシーを適用します。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 というターゲット追跡スケーリングポリシーを、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 を使用する

アプリケーションの Auto Scaling API を使用してスケーリングポリシーを ElastiCache クラスターに適用するには、以下のパラメータを指定して、PutScalingPolicy アプリケーションの 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" } } }