

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

# レプリカでの Auto Scaling の使用
<a name="AutoScaling-Using-Replicas"></a>

ElastiCache レプリケーショングループは、単一の論理ノードとして機能するように 1 つ以上のキャッシュを設定できます。

以下では、ターゲット追跡とスケジュールされたポリシーの詳細と、AWS マネジメントコンソール AWS CLI および API を使用してそれらを適用する方法を説明します。

# ターゲット追跡スケーリングポリシー
<a name="AutoScaling-Scaling-Policies-Replicas-Replicas"></a>

ターゲット追跡スケーリングポリシーで、メトリクスを選択してターゲット値を設定します。Valkey と Redis OSS に対応した ElastiCache AutoScaling は、スケーリングポリシーをトリガーする CloudWatch アラームを作成および管理し、メトリクスとターゲット値に基づいてスケーリング調整値を計算します。スケーリングポリシーは、指定されたターゲット値、またはそれに近い値にメトリクスを維持するため、必要に応じてすべてのシャードで均一にレプリカを追加または削除します。ターゲットの追跡スケーリングポリシーは、メトリクスをターゲット値近くに維持することに加えて、負荷パターンの変動によるメトリクスの変動に合わせて調整し、フリートの容量の急速な変動を最小化します。

## レプリカの Auto Scaling 基準
<a name="AutoScaling-Scaling-Criteria-Replicas"></a>

Auto Scaling ポリシーでは、クラスターの次の事前定義されたメトリクスを定義します。

`ElastiCacheReplicaEngineCPUUtilization`: ElastiCache が auto-scaling オペレーションをトリガーするために使用する、すべてのレプリカで集計された AVG EngineCPU 使用率のしきい値。使用率ターゲットは 35 パーセントから 70 パーセントの間で設定できます。

サービスが `ElastiCacheReplicaEngineCPUUtilization` メトリクスが Target 設定以上であることを検出した場合、シャードでレプリカを自動的に増加させます。ElastiCache は、ターゲットからの変動率と 1 つのレプリカの 2 つの数字のうち、大きい方の数に等しい数だけクラスターレプリカをスケールアウトします。スケールインの場合、全体的なメトリクス値が定義されたターゲットの 75% を下回らない限り、ElastiCache は自動スケールインしません。

スケールアウトの例では、それぞれ 5 つのシャードと 1 つのレプリカがある場合:

ターゲットを 30% 超過した場合、Valkey と Redis OSS に対応した ElastiCache はすべてのシャードにわたって 1 つのレプリカ (max(0.3, default 1)) でスケールアウトし、その結果、それぞれ 2 つのレプリカを持つ 5 つのシャードになります。

スケールインの例では、ターゲット値として 60% を選択した場合、Valkey と Redis OSS に対応した ElastiCache は、メトリクスが 45% 以下 (ターゲットの 60% を 25% 下回る) になるまで自動スケールインしません。

### Auto Scaling に関する考慮事項
<a name="AutoScaling-Scaling-Considerations-Replicas"></a>

次の考慮事項に注意が必要です。
+ ターゲットの追跡スケーリングポリシーでは、指定されたメトリクスがターゲット値を超えている場合、スケールアウトする必要があると見なされます。指定されたメトリクスがターゲット値を下回っている場合、ターゲットの追跡スケーリングポリシーを使用してスケールアウトすることはできません。Valkey と Redis OSS に対応した ElastiCache は、クラスター内のすべてのシャードで既存のレプリカの最大値 (ターゲットからの偏差 % を四捨五入した値、デフォルト 1) でレプリカをスケールアウトします。
+ 指定されたメトリクスに十分なデータがない場合、ターゲットの追跡スケーリングポリシーによってスケールされません。不十分なデータは低い使用率として解釈されないため、スケールインされません。
+ ターゲット値と実際のメトリクスデータポイント間にギャップが発生する場合があります。これは、ElastiCache の Auto Scaling が追加または削除する容量を決定するときに、その数を切り上げまたは切り捨てて常に控えめに動作するためです。これにより、不十分な容量を追加したり、必要以上に容量を削除することを防ぎます。
+ アプリケーションの可用性を高めるために、サービスのスケールアウトはメトリクスに比例して可能な限り高速に行われますが、スケールインはより緩やかで、クラスター内のシャードで 1 個のレプリカの最大スケールインで行われます。
+ それぞれが異なるメトリクスを使用していれば、Valkey と Redis OSS に対応した ElastiCache クラスターに対して複数のターゲット追跡スケーリングポリシーを設定できます。自動スケーリングの目的は常に可用性を優先することであるため、その動作は、ターゲット追跡ポリシーがスケールアウトまたはスケールインの準備ができているかどうかに応じて異なります。ターゲット追跡ポリシーのいずれかでスケールアウトする準備ができると、サービスがスケールアウトされますが、すべてのターゲット追跡ポリシー (スケールイン部分が有効) でスケールインする準備ができている場合にのみスケールインされます。
+ ターゲットの追跡スケーリングポリシーのために ElastiCache の Auto Scaling が管理する CloudWatch アラームを編集または削除しないでください。自動スケーリングは、スケーリングポリシーを削除するかクラスターを削除するときに、アラームを自動的に削除します。
+ ElastiCache の Auto Scaling は、シャード間でレプリカを手動で変更できなくすることはありません。これらの手動調整は、スケーリングポリシーにアタッチされている CloudWatch アラームに影響しませんが、これらの CloudWatch アラームをトリガーする可能性のあるメトリクスに影響する可能性があります。
+ Auto Scaling によって管理されるこれらの CloudWatch アラームは、クラスター内のすべてのシャードでの AVG メトリクスで定義されます。したがって、ホットシャードを持つと、次のいずれかのシナリオが発生する可能性があります。
  + CloudWatch アラームをトリガーするいくつかのホットシャードへの負荷が原因で、必要のない場合にスケーリングする
  + アラームが違反しないように影響を及ぼすすべてのシャードで集約された AVG が原因で、必要な場合にスケーリングしない。
+ クラスターあたりのノードに対する ElastiCache のデフォルト制限は引き続き適用されます。したがって、Auto Scaling を選択するときに、最大ノード数がデフォルトの制限を超えると予測される場合は、[[AWS サービス制限](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)] で制限の増加をリクエストし、制限タイプ [**インスタンスタイプごとのクラスターあたりのノード**] を選択します。
+ スケールアウト時に必要な、VPC で十分な ENI（Elastic Network Interfaces）が使用可能であることを確認します。詳細については、「[Elastic Network Interface](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html)」を参照してください。
+ EC2 から十分な容量を利用できない場合、容量が利用可能になるか、十分な容量を持つインスタンスタイプにクラスターを手動で変更するまで、ElastiCache の Auto Scaling はスケールアウトしません。
+ ElastiCache の Auto Scaling は、`ReservedMemoryPercent` が 25% 未満のクラスターによるレプリカのスケーリングをサポートしていません。詳細については、「[Valkey および Redis OSS の予約済みメモリを管理する](redis-memory-management.md)」を参照してください。

# スケーリングポリシーの追加
<a name="AutoScaling-Adding-Policy-Replicas"></a>

AWS マネジメントコンソール を使用してスケーリングポリシーを追加できます。

**AWS マネジメントコンソール を使用したスケーリングポリシーの追加**

Valkey と Redis OSS に対応した ElastiCache に自動スケーリングポリシーを追加する方法

1. AWS マネジメントコンソールにサインインして、Amazon ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. ナビゲーションペインで **[Valkey]** または **[Redis OSS]** を選択します。

1. ポリシーを追加するクラスターを選択します (クラスター名の左にあるボタンではなく、クラスター名を選択)。

1. [**Auto Scaling ポリシー**] タブを選択します。

1. **[add dynamic scaling]** (動的なスケーリングを追加) を選択します。

1. **[Scaling policies]** (スケーリングポリシー) の下で、**[Add dynamic scaling]** (動的なスケーリングを追加) を選択します。

1. [**Policy Name**] では、このポリシー名を入力します。

1. [**スケーラブルディメンション**] では、ダイアログボックスから [**レプリカ**] を選択します。

1. ターゲット値では、ElastiCache レプリカで維持する CPU 使用率の平均パーセンテージを入力します。この値は、>=35 かつ <=70 である必要があります。クラスターレプリカが追加または削除され、メトリクスが指定された値に近い値に維持されます。

1. (オプション) スケールインまたはスケールアウトのクールダウン期間は、コンソールからはサポートされていません。AWS CLI を使用して、クールダウン値を変更します。

1. **[最小容量]** に、ElastiCache の Auto Scaling ポリシーが維持する必要があるシャードの最小数を入力します。

1. **[最大容量]** に、ElastiCache の Auto Scaling ポリシーが維持する必要があるシャードの最大数を入力します。この値は、>=5 である必要があります。

1. **[Create]** (作成) を選択します。

# スケーラブルなターゲットの登録
<a name="AutoScaling-Register-Policy"></a>

事前定義されたメトリクスまたはカスタムメトリクスに基づいて、スケーリングポリシーを適用できます。そのためには、AWS CLI または アプリケーションの Auto Scaling API を使用します。最初のステップでは、Valkey と Redis OSS に対応した ElastiCache レプリケーショングループを Auto Scaling に登録します。

ElastiCache の自動スケーリングをクラスターで使用可能にする前に、クラスターを ElastiCache の自動スケーリングに登録する必要があります。これは、そのクラスターに適用するスケーリングのディメンションと制限を定義するためです。ElastiCache の自動スケーリングは、シャードあたりのクラスターレプリカの数を表す `elasticache:replication-group:Replicas` スケーラブルディメンションに沿って動的にクラスターをスケールします。

** CLI の使用**: 

ElastiCache クラスターを登録するには、[register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) コマンドを次のパラメータとともに使用します。
+ —service-namespace – この値は elasticache に設定します。
+ --resource-id – ElastiCache クラスターのリソース識別子。このパラメータでは、リソースタイプは ReplicationGroup で、一意の識別子はクラスターの名前、例えば `replication-group/myscalablecluster` です。
+ --scalable-dimension – この値は に設定します`elasticache:replication-group:Replicas` 
+ --min-capacity – ElastiCache の自動スケーリングで管理するレプリカの最小数。—min-capacity、—max-capacity、およびクラスター内のレプリカ数の関係については、「[最小容量と最大容量](AutoScaling-Policies.md#AutoScaling-MinMax)」を参照してください。
+ --max-capacity – ElastiCache の自動スケーリングで管理するレプリカの最大数。—min-capacity、—max-capacity、およびクラスター内のレプリカ数の関係については、「[最小容量と最大容量](AutoScaling-Policies.md#AutoScaling-MinMax)」を参照してください。

**Example**  
次の例では、`myscalablecluster` という名前の ElastiCache クラスターを登録します。この登録は、クラスターが 1 から 5 個のレプリカを持つよう動的にスケーリングされることを示します。  
Linux、macOS、Unix の場合:  

```
aws application-autoscaling register-scalable-target \
    --service-namespace elasticache \
    --resource-id replication-group/myscalablecluster \
    --scalable-dimension elasticache:replication-group:Replicas \
    --min-capacity 1 \
    --max-capacity 5 \
```
Windows の場合:  

```
aws application-autoscaling register-scalable-target ^
    --service-namespace elasticache ^
    --resource-id replication-group/myscalablecluster ^
    --scalable-dimension elasticache:replication-group:Replicas ^
    --min-capacity 1 ^
    --max-capacity 5 ^
```

**API を使用する**

ElastiCache クラスターを登録するには、[register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) コマンドを次のパラメータとともに使用します。
+ ServiceNamespace – この値は elasticache に設定します。
+ ResourceID — ElastiCache クラスターのリソース識別子。このパラメータでは、リソースタイプは ReplicationGroup で、一意の識別子はクラスターの名前、例えば `replication-group/myscalablecluster` です。
+ ScalableDimension — この値は `elasticache:replication-group:Replicas` に設定します。
+ MinCapacity — ElastiCache の自動スケーリングで管理するレプリカの最小数。—min-capacity、—max-capacity、およびクラスター内のレプリカ数の関係については、「[最小容量と最大容量](AutoScaling-Policies.md#AutoScaling-MinMax)」を参照してください。
+ MaxCapacity – ElastiCache の自動スケーリングで管理するレプリカの最大数。—min-capacity、—max-capacity、およびクラスター内のレプリカ数の関係については、「[最小容量と最大容量](AutoScaling-Policies.md#AutoScaling-MinMax)」を参照してください。

**Example**  
以下の例では、Application Auto Scaling API を使用して、`myscalablecluster` という名前のクラスターを登録します。この登録は、クラスターが 1～5 個のレプリカを持つよう動的にスケールされることを示します。

```
POST / HTTP/1.1
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget
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
{
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:Replicas",
    "MinCapacity": 1,
    "MaxCapacity": 5
}
```

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

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

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

**Topics**
+ [事前定義メトリクスの使用](#AutoScaling-Predefined-Metric)
+ [スケーリングポリシーの編集](AutoScaling-Editing-Policy.md)
+ [スケーリングポリシーの削除](AutoScaling-Deleting-Policy.md)
+ [Auto Scaling ポリシーで CloudFormation を使用する](AutoScaling-with-Cloudformation.md)
+ [スケジュールされたスケーリング](AutoScaling-with-Scheduled-Scaling-Replicas.md)

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

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

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

**Topics**
+ [事前定義メトリクスの使用](#AutoScaling-Predefined-Metric)
+ [カスタムメトリクスの使用](#AutoScaling-Custom-Metric)
+ [クールダウン期間の使用](#AutoScaling-Using-Cooldowns)
+ [スケールインアクティビティの無効化](#AutoScaling-Disabling-Scalein)
+ [Valkey と Redis OSS に対応した ElastiCache クラスターへのスケーリングポリシーの適用](#AutoScaling-Applying-Policy)

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

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

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

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

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

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

**Example**  
次の例では、スケーリングポリシーのターゲット追跡設定について説明します。この設定では、カスタムメトリクスにより、`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"
    }
}
```

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

`ScaleOutCooldown` の値を秒単位で指定して、クラスターをスケールアウトするためのクールダウン期間を追加することができます。同様に、`ScaleInCooldown` の値を秒単位で追加して、クラスターをスケールインするためのクールダウン期間を追加することができます。`ScaleInCooldown` と `ScaleOutCooldown` の詳細については、*Application Auto Scaling API リファレンス*の「[TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)」を参照してください。次の例では、スケーリングポリシーのターゲット追跡設定について説明します。この設定では、`ElastiCacheReplicaEngineCPUUtilization` 事前定義メトリクスを使用して、そのクラスター内の全レプリカでの平均 CPU 使用率 40% に基づいてクラスターが調整されます。この設定では、10 分間のスケールインのクールダウン期間と 5 分間のスケールアウトのクールダウン期間が提供されます。

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

### スケールインアクティビティの無効化
<a name="AutoScaling-Disabling-Scalein"></a>

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

`DisableScaleIn` のブール値を指定して、クラスターのアクティビティのスケールを有効または無効にすることができます。`DisableScaleIn` の詳細については、*Application Auto Scaling API リファレンス*の「[TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)」を参照してください。

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

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

### Valkey と Redis OSS に対応した ElastiCache クラスターへのスケーリングポリシーの適用
<a name="AutoScaling-Applying-Policy"></a>

クラスターを Valkey と Redis OSS に対応した ElastiCache の自動スケーリングに登録し、スケーリングポリシーを定義した後、登録されたクラスターにスケーリングポリシーを適用します。Valkey と Redis OSS に対応した ElastiCache クラスターにスケーリングポリシーを適用するには、AWS CLI または Application Auto Scaling API を使用できます。

** の使用AWS CLI**

スケーリングポリシーを Valkey と Redis OSS に対応した ElastiCache クラスターに適用するには、次のパラメータを指定して [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scaling-policy.html) コマンドを使用します。
+ --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 — クラスターに使用するターゲット追跡スケーリングポリシー設定。

**Example**  
次の例では、`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](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html) アプリケーションの Auto Scaling API オペレーションを使用します。
+ PolicyName – スケーリングポリシーの名前。
+ PolicyType — この値は `TargetTrackingScaling` に設定します。
+ ResourceID — クラスターのリソース識別子。このパラメータでは、リソースタイプは ReplicationGroup で、一意の識別子は ElastiCache for Redis OSS クラスターの名前 (`replication-group/myscalablecluster` など) です。
+ ServiceNamespace – この値は elasticache に設定します。
+ ScalableDimension — この値は `elasticache:replication-group:Replicas` に設定します。
+ TargetTrackingScalingPolicyConfiguration — クラスターに使用するターゲット追跡スケーリングポリシー設定。

**Example**  
次の例では、`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"
        }
    }
}
```

# スケーリングポリシーの編集
<a name="AutoScaling-Editing-Policy"></a>

AWS マネジメントコンソール、AWS CLI、または アプリケーションの Auto Scaling API を使用してスケーリングポリシーを編集できます。

**AWS マネジメントコンソール を使用したスケーリングポリシーの編集**

AWS マネジメントコンソール を使用して、事前定義されたメトリクスタイプのポリシーのみを編集できます。

1. AWS マネジメントコンソール にサインインして、Amazon ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. ナビゲーションペインで **[Valkey]** または **[Redis OSS]** を選択します。

1. ポリシーを追加するクラスターを選択します (クラスター名の左にあるボタンではなく、クラスター名を選択)。

1. [**Auto Scaling ポリシー**] タブを選択します。

1. **[Scaling policies]** (スケーリングポリシー) で、変更する Auto Scaling ポリシーの左にあるボタンを選択して、**[Modify]** (変更) を選択します。

1. ポリシーに必要な変更を行います。

1. **[Modify]** (変更) を選択します。

1. ポリシーを変更します。

1. **[Modify]** (変更) を選択します。

**AWS CLI または アプリケーションの Auto Scaling API を使用したスケーリングポリシーの編集**

AWS CLI または アプリケーションの Auto Scaling API を使用して、スケーリングポリシーを適用するのと同じ方法でスケーリングポリシーを編集できます。
+ アプリケーションの Auto Scaling API を使用する場合は、編集するポリシーの名前を `PolicyName` パラメータで指定します。変更するパラメータの新しい値を指定します。

詳細については、「[Valkey と Redis OSS に対応した ElastiCache クラスターへのスケーリングポリシーの適用](AutoScaling-Defining-Policy.md#AutoScaling-Applying-Policy)」を参照してください。

# スケーリングポリシーの削除
<a name="AutoScaling-Deleting-Policy"></a>

AWS マネジメントコンソール、AWS CLI、または アプリケーションの Auto Scaling API を使用してスケーリングポリシーを削除できます。

**AWS マネジメントコンソール を使用したスケーリングポリシーの削除**

AWS マネジメントコンソール を使用して、事前定義されたメトリクスタイプのポリシーのみを編集できます。

1. AWS マネジメントコンソール にサインインして、Amazon ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. ナビゲーションペインで **[Valkey]** または **[Redis OSS]** を選択します。

1. Auto Scaling ポリシーを削除するクラスターを選択します。

1. [**Auto Scaling ポリシー**] タブを選択します。

1. **[Scaling policies]** (スケーリングポリシー) で、Auto Scaling ポリシーを選択してから **[Delete]** (削除) を選択します。

**AWS CLI または アプリケーションの Auto Scaling API を使用したスケーリングポリシーの削除**

AWS CLI または Application Auto Scaling API を使用して、ElastiCache クラスターからスケーリングポリシーを削除できます。

** CLI**

スケーリングポリシーを Valkey と Redis OSS に対応した ElastiCache クラスターから削除するには、次のパラメータを指定して [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html) コマンドを使用します。
+ --policy-name – スケーリングポリシーの名前。
+ --resource-id – クラスターのリソース識別子。このパラメータでは、リソースタイプは ReplicationGroup で、一意の識別子はクラスターの名前、例えば `replication-group/myscalablecluster` です。
+ —service-namespace – この値は elasticache に設定します。
+ —scalle-dimension — この値は `elasticache:replication-group:Replicas` に設定します。

**Example**  
次の例では、`myscalablepolicy` というターゲット追跡スケーリングポリシーを `myscalablecluster` という名前の ELC; クラスターから削除します。

Linux、macOS、Unix の場合:

```
aws application-autoscaling delete-scaling-policy \
    --policy-name myscalablepolicy \
    --resource-id replication-group/myscalablecluster \
    --service-namespace elasticache \
    --scalable-dimension elasticache:replication-group:Replicas \
```

Windows の場合:

```
aws application-autoscaling delete-scaling-policy ^
    --policy-name myscalablepolicy ^
    --resource-id replication-group/myscalablecluster ^
    --service-namespace elasticache ^
    --scalable-dimension elasticache:replication-group:Replicas ^
```

**API**。

スケーリングポリシーを Valkey と Redis OSS に対応した ElastiCache クラスターから削除するには、次のパラメータを指定して [DeleteScalingPolicy](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_DeleteScalingPolicy.html) Application Auto Scaling API オペレーションを使用します。
+ PolicyName – スケーリングポリシーの名前。
+ ResourceID — クラスターのリソース識別子。このパラメータでは、リソースタイプは ReplicationGroup で、一意の識別子はクラスターの名前、例えば `replication-group/myscalablecluster` です。
+ ServiceNamespace – この値は elasticache に設定します。
+ ScalableDimension — この値は `elasticache:replication-group:Replicas` に設定します。

以下の例では、Application Auto Scaling API を使用して、`myscalablepolicy` というターゲット追跡スケーリングポリシーを `myscalablecluster` という名前のクラスターから削除します。

```
POST / HTTP/1.1
>>>>>>> mainline
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.DeleteScalingPolicy
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"
}
```

# Auto Scaling ポリシーで CloudFormation を使用する
<a name="AutoScaling-with-Cloudformation"></a>

このスニペットでは、スケジュールに基づくアクションを作成し、[AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html) リソースを使用して、そのアクションを [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html) リソースに適用する方法を示しています。また、[Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) および [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) 組み込み関数を使用して、同じテンプレートで指定された `AWS::ElastiCache::ReplicationGroup` リソースの論理名で `ResourceId` プロパティを作成します。

```
ScalingTarget:
   Type: 'AWS::ApplicationAutoScaling::ScalableTarget'
   Properties:
     MaxCapacity: 0
     MinCapacity: 0
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:Replicas'
     ServiceNamespace: elasticache
     RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG"

  ScalingPolicy:
    Type: "AWS::ApplicationAutoScaling::ScalingPolicy"
    Properties:
      ScalingTargetId: !Ref ScalingTarget
      ServiceNamespace: elasticache
      PolicyName: testpolicy
      PolicyType: TargetTrackingScaling
      ScalableDimension: 'elasticache:replication-group:Replicas'
      TargetTrackingScalingPolicyConfiguration:
        PredefinedMetricSpecification:
          PredefinedMetricType: ElastiCacheReplicaEngineCPUUtilization
        TargetValue: 40
```

# スケジュールされたスケーリング
<a name="AutoScaling-with-Scheduled-Scaling-Replicas"></a>

スケジュールに基づくスケーリングにより、予想可能な需要の変化に応じてアプリケーションを拡張することができます。スケジュールに基づくスケーリングを使用するには、指定された時間にスケーリングアクティビティを行うよう Valkey と Redis OSS に対応した ElastiCache に指示する、スケジュールされたアクションを作成します。スケジュールされたアクションを作成するときに、既存の ElastiCache クラスター、スケーリングアクティビティを発生させるタイミング、最小容量、最大容量を指定します。スケジュールされたアクションは、一度だけスケールする、または定期的なスケジュールに従ってスケールするものを作成できます。

 スケジュールされたアクションは、既存の ElastiCache クラスターに対してのみ作成できます。スケジュールされたアクションは、クラスターの作成と同時に作成することはできません。

スケジュールされたアクションの作成、管理、削除に関する用語の詳細については、「[スケジュールされたアクションの作成、管理、削除に一般的に使用されるコマンド](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html#scheduled-scaling-commonly-used-commands)」を参照してください。

**1 回のスケジュールされたアクションを作成するには**

シャードのディメンションと同様です。「[スケジュールされたスケーリング](AutoScaling-with-Scheduled-Scaling-Shards.md)」を参照してください。

**スケジュールされたアクションを削除するには**

シャードのディメンションと同様です。「[スケジュールされたスケーリング](AutoScaling-with-Scheduled-Scaling-Shards.md)」を参照してください。

** を使用してスケジュールされたスケーリングを管理するにはAWS CLI**

次のアプリケーション自動スケーリング API を使用します。
+ [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) 
+ [describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html) 
+ [delete-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scheduled-action.html) 

## CloudFormation を使用して、Auto Scaling ポリシーを作成する
<a name="AutoScaling-with-Cloudformation-Update-Action"></a>

このスニペットでは、スケジュールに基づくアクションを作成し、[AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html) リソースを使用して、そのアクションを [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html) リソースに適用する方法を示しています。また、[Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) および [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) 組み込み関数を使用して、同じテンプレートで指定された `AWS::ElastiCache::ReplicationGroup` リソースの論理名で `ResourceId` プロパティを作成します。

```
ScalingTarget:
   Type: 'AWS::ApplicationAutoScaling::ScalableTarget'
   Properties:
     MaxCapacity: 0
     MinCapacity: 0
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:Replicas'
     ServiceNamespace: elasticache
     RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG"
     ScheduledActions:
       - EndTime: '2020-12-31T12:00:00.000Z'
         ScalableTargetAction:
           MaxCapacity: '5'
           MinCapacity: '2'
         ScheduledActionName: First
         Schedule: 'cron(0 18 * * ? *)'
```