

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

# シャードでの Auto Scaling の使用
<a name="AutoScaling-Using-Shards"></a>

ElastiCache の AutoScaling では、Valkey または Redis OSS エンジンで追跡ポリシーとスケジュールされたポリシーを使用できます。

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

**Topics**
+ [ターゲット追跡スケーリングポリシー](AutoScaling-Scaling-Policies-Target.md)
+ [スケーリングポリシーの追加](AutoScaling-Scaling-Adding-Policy-Shards.md)
+ [スケーラブルなターゲットの登録](AutoScaling-Scaling-Registering-Policy-CLI.md)
+ [スケーリングポリシーの定義](AutoScaling-Scaling-Defining-Policy-API.md)
+ [スケールインアクティビティの無効化](AutoScaling-Scaling-Disabling-Scale-in.md)
+ [スケーリングポリシーの適用](AutoScaling-Scaling-Applying-a-Scaling-Policy.md)
+ [スケーリングポリシーの編集](AutoScaling-Scaling-Editing-a-Scaling-Policy.md)
+ [スケーリングポリシーの削除](AutoScaling-Scaling-Deleting-a-Scaling-Policy.md)
+ [Auto Scaling ポリシーで CloudFormation を使用する](AutoScaling-with-Cloudformation-Shards.md)
+ [スケジュールされたスケーリング](AutoScaling-with-Scheduled-Scaling-Shards.md)

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

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

たとえば、設定されたターゲット値を持つ事前定義された平均 `ElastiCachePrimaryEngineCPUUtilization` メトリクスを使用するスケーリングポリシーを考慮してください。このようなポリシーは、指定されたターゲット値、またはそれに近い値に CPU 使用率を維持できます。

## 事前定義メトリクス
<a name="AutoScaling-Scaling-Criteria-predfined-metrics"></a>

定義済みメトリクスとは、特定の CloudWatch メトリクスの特定の名前、ディメンション、統計 (`average`) を参照する構造です。Auto Scaling ポリシーでは、クラスターの次の事前定義されたメトリクスのいずれかを定義します。


****  

| 事前定義済みメトリクス名 | CloudWatch メトリクス名 | CloudWatch メトリクスディメンション | 不適格なインスタンスタイプ  | 
| --- | --- | --- | --- | 
| ElastiCachePrimaryEngineCPUUtilization |  `EngineCPUUtilization`  |  ReplicationGroupId、ロール = プライマリ  | なし | 
| ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage |  `DatabaseCapacityUsageCountedForEvictPercentage`  |  Valkey または Redis OSS レプリケーショングループメトリクス  | なし | 
| ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage |  `DatabaseMemoryUsageCountedForEvictPercentage`  |  Valkey または Redis OSS レプリケーショングループメトリクス  | R6gd | 

これらのインスタンスタイプはメモリと SSD の両方にデータを保存するため、データ階層型インスタンスタイプでは `ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage` を使用できません。データ階層インスタンスの想定される使用例は、メモリを 100% 使用し、必要に応じて SSD をいっぱいにすることです。

## シャードの Auto Scaling 基準
<a name="AutoScaling-Scaling-Criteria"></a>

事前定義されたメトリクスが Target 設定以上であることを検出した場合、シャードの容量が自動的に増加します。Valkey と Redis OSS に対応した ElastiCache は、2 つの数字 (ターゲットからの変動率と現在のシャードの 20%) のうち、大きいほうの数字に等しい数だけクラスターシャードをスケールアウトします。スケールインの場合、全体的なメトリクス値が定義されたターゲットの 75% を下回らない限り、ElastiCache は自動スケールインしません。

スケールアウトの例では、50個のシャードを持っている場合
+ ターゲットが 30% 超えた場合、ElastiCache は 30% スケールアウトするため、クラスターあたり 65 個のシャードになります。
+ ターゲットが 10% 超えた場合、ElastiCache はデフォルトで最小値 20% スケールアウトするため、クラスターあたり 60 個のシャードになります。

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

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

次の考慮事項に注意が必要です。
+ ターゲットの追跡スケーリングポリシーでは、指定されたメトリクスがターゲット値を超えている場合、スケールアウトする必要があると見なされます。指定されたメトリクスがターゲット値を下回っている場合、ターゲットの追跡スケーリングポリシーを使用してスケールアウトすることはできません。Valkey と Redis OSS に対応した ElastiCache は、クラスター内の既存のシャードのターゲットについて最小偏差の 20% 分だけシャードをスケールアウトします。
+ 指定されたメトリクスに十分なデータがない場合、ターゲットの追跡スケーリングポリシーによってスケールされません。不十分なデータの使用率は低いと解釈されないため、スケールインされません。
+ ターゲット値と実際のメトリクスデータポイント間にギャップが発生する場合があります。これは、ElastiCache の Auto Scaling が追加または削除する容量を決定するときに、その数を切り上げまたは切り捨てて常に控えめに動作するためです。これにより、不十分な容量を追加したり、必要以上に容量を削除することを防ぎます。
+ アプリケーションの可用性を高めるために、サービスのスケールアウトはメトリクスに比例して可能な限り高速に行われますが、スケールインはより抑制されています。
+ それぞれが異なるメトリクスを使用していれば、Valkey と Redis OSS に対応した ElastiCache クラスターに対して複数のターゲット追跡スケーリングポリシーを設定できます。ElastiCache Auto Scaling の目的は常に可用性を優先することであるため、その動作は、ターゲット追跡ポリシーがスケールアウトまたはスケールインの準備ができているかどうかに応じて異なります。ターゲット追跡ポリシーのいずれかでスケールアウトする準備ができると、サービスがスケールアウトされますが、すべてのターゲット追跡ポリシー (スケールイン部分が有効) でスケールインする準備ができている場合にのみスケールインされます。
+ ターゲットの追跡スケーリングポリシーのために ElastiCache の Auto Scaling が管理する CloudWatch アラームを編集または削除しないでください。ElastiCache の自動スケーリングでは、スケーリングポリシーを削除するときに、アラームが自動的に削除されます。
+ ElastiCache の自動スケーリングにより、クラスターシャードを手動で変更できなくなることはありません。これらの手動調整は、スケーリングポリシーにアタッチされている 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 の自動スケーリングは、容量が利用可能になるまで、スケールせず、遅延します。
+ スケールイン中の ElastiCache for Redis OSS Auto Scaling では、シリアル化後のアイテムサイズが 256 MB を超えるスロットを持つシャードは削除されません。
+ スケールイン中に、結果として得られるシャード設定で利用可能なメモリが不足している場合、シャードは削除されません。

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

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

**Valkey と Redis OSS に対応した Auto Scaling ポリシーを 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. [**Policy Name**] で、ポリシーの名前を入力します。

1. [**スケーラブルなディメンション**] で、[**シャード**] を選択します。

1. ターゲットメトリクスには、以下のいずれかを選択します。
   + 平均 CPU 使用率に基づいてポリシーを作成するための [** プライマリ CPU 使用率**]。
   + データベース平均メモリに基づいてポリシーを作成するための [**メモリ**]。
   + データベース平均メモリに基づいてポリシーを作成するための **[容量]**。容量メトリクスには、データ階層化インスタンスのメモリと SSD の使用率、および他のすべてのインスタンスタイプのメモリ使用率が含まれます。

1. 目標値は、35 以上、70 以下の値を選択します。Auto Scaling は、選択したターゲットメトリクスについて、ElastiCache シャード全体でこの値を維持します。
   + **プライマリCPU使用率**: プライマリノードの `EngineCPUUtilization` メトリクスの目標値を維持します。
   + **メモリ**: `DatabaseMemoryUsageCountedForEvictPercentage` メトリクスの目標値を維持します。
   + **容量**は `DatabaseCapacityUsageCountedForEvictPercentage` メトリクスの目標値を維持し、

   クラスターシャードが追加または削除され、メトリクスが指定された値に近い値に維持されます。

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

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

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

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

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

Valkey と Redis OSS に対応した ElastiCache クラスターで Auto Scaling を使用可能にする前に、クラスターを ElastiCache の自動スケーリングに登録します。これは、そのクラスターに適用するスケーリングのディメンションと制限を定義するためです。ElastiCache の自動スケーリングは、クラスターを、クラスターシャードの数を表す `elasticache:replication-group:NodeGroups` スケーラブルディメンションに沿って動的にスケールします。

 ** の使用AWS CLI** 

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

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

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

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

**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:NodeGroups` に設定します。
+ MinCapacity — ElastiCache の自動スケーリングで管理するシャードの最小数。—min-capacity、—max-capacity、およびクラスター内のレプリカ数の関係については、「[最小容量と最大容量](AutoScaling-Policies.md#AutoScaling-MinMax)」を参照してください。
+ MaxCapacity — ElastiCache の自動スケーリングで管理するシャードの最小数。—min-capacity、—max-capacity、およびクラスター内のレプリカ数の関係については、「[最小容量と最大容量](AutoScaling-Policies.md#AutoScaling-MinMax)」を参照してください。

**Example**  
以下の例では、`myscalablecluster` という名前の ElastiCache クラスターをアプリケーションの Auto Scaling API に登録します。この登録は、クラスターが 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:NodeGroups",
    "MinCapacity": 1,
    "MaxCapacity": 5
}
```

# スケーリングポリシーの定義
<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
}
```

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

スケールインアクティビティを無効にすることにより、クラスターでターゲット追跡スケーリングポリシー設定がスケーリングされないように指定できます。スケールインアクティビティを無効にすると、スケーリングポリシーによってシャードが削除されることなく、スケーリングポリシーによって必要に応じて作成されます。

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

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

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

# スケーリングポリシーの適用
<a name="AutoScaling-Scaling-Applying-a-Scaling-Policy"></a>

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

## AWS CLI を使用したスケーリングポリシーの適用
<a name="AutoScaling-Scaling-Applying-a-Scaling-Policy-CLI"></a>

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

次の例では、`myscalablepolicy` というターゲット追跡スケーリングポリシーを、`myscalablecluster` という名前の Valkey と Redis OSS に対応した ElastiCache クラスターに 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:NodeGroups \
    --target-tracking-scaling-policy-configuration file://config.json
```

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:NodeGroups ^
    --target-tracking-scaling-policy-configuration file://config.json
```

## API を使用したスケーリングポリシーの適用
<a name="AutoScaling-Scaling-Applying-a-Scaling-Policy-API"></a>

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

次の例では、`myscalablepolicy` というターゲット追跡スケーリングポリシーを、`myscalablecluster` という名前の ElastiCache クラスターに ElastiCache の自動スケーリングを使用して適用します。`ElastiCachePrimaryEngineCPUUtilization` 事前定義メトリクスに基づいてポリシー設定を使用します。

```
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:NodeGroups",
    "PolicyType": "TargetTrackingScaling",
    "TargetTrackingScalingPolicyConfiguration": {
        "TargetValue": 40.0,
        "PredefinedMetricSpecification":
        {
            "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
        }
    }
}
```

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

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

## AWS マネジメントコンソール を使用したスケーリングポリシーの編集
<a name="AutoScaling-Scaling-Editing-a-Scaling-Policy-CON"></a>

**Valkey と Redis OSS に対応した ElastiCache クラスターの Auto Scaling ポリシーを編集する方法**

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

1. ナビゲーションペインで、適切なエンジンを選択します。

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

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

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

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

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

## AWS CLI または API を使用したスケーリングポリシーの編集
<a name="AutoScaling-Scaling-Editing-a-Scaling-Policy-CLI"></a>

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

詳細については、「[スケーリングポリシーの適用](AutoScaling-Scaling-Applying-a-Scaling-Policy.md)」を参照してください。

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

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

## AWS マネジメントコンソール を使用したスケーリングポリシーの削除
<a name="AutoScaling-Scaling-Editing-a-Scaling-Policy-CON"></a>

**ElastiCache for Redis OSS クラスターの Auto Scaling ポリシーを削除するには**

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 を使用したスケーリングポリシーの削除
<a name="AutoScaling-Scaling-Deleting-a-Scaling-Policy-CLI"></a>

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

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

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:NodeGroups
```

Windows の場合:

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

## API を使用したスケーリングポリシーの削除
<a name="AutoScaling-Scaling-Deleting-a-Scaling-Policy-API"></a>

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

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

```
POST / HTTP/1.1
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:NodeGroups"
}
```

# Auto Scaling ポリシーで CloudFormation を使用する
<a name="AutoScaling-with-Cloudformation-Shards"></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: 3
     MinCapacity: 1
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:NodeGroups'
     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:NodeGroups'
      TargetTrackingScalingPolicyConfiguration:
        PredefinedMetricSpecification:
          PredefinedMetricType: ElastiCachePrimaryEngineCPUUtilization
        TargetValue: 40
```

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

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

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

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

**定期的なスケジュールで作成するには**

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. [**Auto Scaling ポリシー**] タブを選択します。

1. [**Auto Scaling ポリシー**] セクションで、[**スケーリングポリシーの追加**] ダイアログボックスが表示されます。[**スケジュールされたスケーリング**] を選択します。

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

1. [**スケーラブルディメンション**] では、[**シャード**] を選択します。

1. [**ターゲットシャード**] では、値を選択します。

1. [**繰り返し**] では、**繰り返し**] を選択します。

1. [**頻度**]では、それぞれの値を選択します。

1. [**開始日**] および [**開始時間**] では、ポリシーが有効になる時刻を選択します。

1. [**Add policy**] を選択します。

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

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. [**Auto Scaling ポリシー**] タブを選択します。

1. [**Auto Scaling ポリシー**] セクションで、[**スケーリングポリシーの追加**] ダイアログボックスが表示されます。[**スケジュールされたスケーリング**] を選択します。

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

1. [**スケーラブルディメンション**] では、[**シャード**] を選択します。

1. [**ターゲットシャード**] では、値を選択します。

1. [**繰り返し**] では、[**1 回**] を選択します。

1. [**開始日**] および [**開始時間**] では、ポリシーが有効になる時刻を選択します。

1. **終了日**では、ポリシーが有効になるときの日付を選択します。

1. [**Add policy**] を選択します。

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

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. [**Auto Scaling ポリシー**] タブを選択します。

1. [**Auto Scaling Policies (Auto Scaling ポリシー)**] セクションで Auto Scaling ポリシーを選択してから、[**Actions (アクション)**] メニューから [**Delete (削除)**] を選択します。

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

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

## CloudFormation を使用して、スケジュールされたアクションを作成するには
<a name="AutoScaling-with-Cloudformation-Declare-Scheduled-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: 3
     MinCapacity: 1
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:NodeGroups'
     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 * * ? *)'
```