

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

# スケーリングポリシーの定義
<a name="AutoScaling-Scaling-Defining-Policy-API"></a>

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

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

**Topics**
+ [事前定義メトリクスの使用](#AutoScaling-Scaling-Predefined-Metric)
+ [カスタムメトリクスの使用](#AutoScaling-Scaling-Custom-Metric)
+ [クールダウン期間の使用](#AutoScaling-Scaling-Cooldown-periods)

## 事前定義メトリクスの使用
<a name="AutoScaling-Scaling-Predefined-Metric"></a>

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

現在、ElastiCache は、NodeGroup Auto Scaling で次の定義済みメトリクスをサポートしています。
+ **ElastiCachePrimaryEngineCPUUtilization** — クラスター内のすべてのプライマリノードでの CloudWatch の `EngineCPUUtilization` メトリクスの平均値。
+ **ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage** — クラスター内のすべてのプライマリノードでの CloudWatch の `DatabaseMemoryUsageCountedForEvictPercentage` メトリクスの平均値。
+ **ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage** — クラスター内のすべてのプライマリノードでの CloudWatch の `ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage` メトリクスの平均値。

`EngineCPUUtilization` と `DatabaseMemoryUsageCountedForEvictPercentage`、および `DatabaseCapacityUsageCountedForEvictPercentage` メトリクスの詳細については、「[CloudWatch メトリクスの使用状況のモニタリング](CacheMetrics.md)」を参照してください。スケーリングポリシーで事前定義メトリクスを使用するには、スケーリングポリシーのターゲット追跡構成を作成します。この設定は、事前定義メトリクスの `PredefinedMetricSpecification` と、そのメトリクスのターゲット値の TargetValue が含まれている必要があります。

**Example**  
次の例では、Valkey と Redis OSS に対応した ElastiCache クラスターのターゲット追跡スケーリングの一般的なポリシー設定について説明します。この設定では、`ElastiCachePrimaryEngineCPUUtilization` 事前定義メトリクスを使用して、クラスターの全プライマリノードでの平均 CPU 使用率 40% に基づいてクラスターが調整されます。  

```
{
    "TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
    }
}
```

## カスタムメトリクスの使用
<a name="AutoScaling-Scaling-Custom-Metric"></a>

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

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

```
{
    "TargetValue": 50,
    "CustomizedMetricSpecification":
    {
        "MetricName": "EngineCPUUtilization",
        "Namespace": "AWS/ElastiCache",
        "Dimensions": [
            {
                "Name": "ReplicationGroup","Value": "my-db-cluster"
            },
            {
                "Name": "Role","Value": "PRIMARY"
            }
        ],
        "Statistic": "Average",
        "Unit": "Percent"
    }
}
```

## クールダウン期間の使用
<a name="AutoScaling-Scaling-Cooldown-periods"></a>

`ScaleOutCooldown` の値を秒単位で指定して、クラスターをスケールアウトするためのクールダウン期間を追加することができます。同様に、`ScaleInCooldown` の値を秒単位で追加して、クラスターをスケールインするためのクールダウン期間を追加することができます。詳細については、アプリケーション Auto Scaling API リファレンスの「[TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)」を参照してください。

 次の例では、スケーリングポリシーのターゲット追跡設定について説明します。この設定では、`ElastiCachePrimaryEngineCPUUtilization` 事前定義メトリクスを使用して、ElastiCache for Redis OSS クラスターのすべてのプライマリノードでの平均 CPU 使用率 40% に基づいてそのクラスターが調整されます。この構成では、10 分間のスケールインのクールダウン期間と 5 分間のスケールアウトのクールダウン期間が提供されます。

```
{
    "TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
    },
    "ScaleInCooldown": 600,
    "ScaleOutCooldown": 300
}
```