

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 노드 기반 클러스터 조정
<a name="Scaling-self-designed"></a>

애플리케이션에서 처리해야 하는 데이터의 양은 거의 정적이 아닙니다. 비즈니스가 성장하거나 수요에서 일반적인 변동을 경험할 경우, 데이터의 양이 증가하거나 감소합니다. 캐시를 자체적으로 관리할 경우 최고의 수요에 대해 충분한 하드웨어를 프로비저닝해야 하므로, 비용이 많이 들 수 있습니다. Amazon ElastiCache를 사용하면 현재 수요에 맞게 조정할 수 있어, 사용한 만큼만 요금을 지불할 수 있습니다. ElastiCache를 통해 수요에 맞게 캐시 크기를 조정할 수 있습니다.

**참고**  
Valkey 또는 Redis OSS 클러스터가 하나 이상의 리전에 복제되는 경우 해당 리전은 순서대로 조정됩니다. 스케일 업 시 보조 리전은 먼저 조정된 다음 기본 리전이 조정됩니다. 스케일 다운 시 기본 리전이 먼저 조정되고 그 다음 보조 리전이 조정됩니다.  
엔진 버전을 업데이트할 때 순서는 보조 리전과 그 다음 기본 리전 순입니다.

**Topics**
+ [

# Memcached의 클러스터의 온디맨드 스케일링
](Scaling-self-designed.mem-heading.md)
+ [

# Memcached 클러스터의 수동 규모 조정
](Scaling.Memcached.manually.md)
+ [

# Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 클러스터 규모 조정
](scaling-redis-classic.md)
+ [

# Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 복제본 노드 규모 조정
](Scaling.RedisReplGrps.md)
+ [

# Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 규모 조정
](scaling-redis-cluster-mode-enabled.md)

# Memcached의 클러스터의 온디맨드 스케일링
<a name="Scaling-self-designed.mem-heading"></a>

ElastiCache for Memcached는AWS클라우드에서 Memcached를 배포, 운영 및 수직 확장하는 완전 관리형 인 메모리 캐싱 서비스를 제공합니다.

**온디맨드 수직적 스케일링**

수직적 스케일링을 통해 ElastiCache for Memcached는 데이터베이스 로드를 완화하여 동적 애플리케이션의 속도를 높이는 데 널리 사용되는 고성능 분산 메모리 캐싱 시스템을 제공합니다. RAM에 데이터와 객체를 저장하므로 외부 데이터 소스에서 읽을 필요가 줄어듭니다.

기존 노드 기반 클러스터와 새 클러스터에 수직적 스케일링을 적용할 수 있습니다. 이를 통해 리소스 할당의 유연성을 제공하여 사용자가 클러스터 아키텍처를 변경하지 않고도 변화하는 워크로드에 효율적으로 적응할 수 있습니다. 이러한 규모 조정 기능은 수요가 많은 기간에는 캐시 용량을 늘리고 수요가 적은 기간에는 비용을 최적화하도록 스케일 다운하여 성능을 개선합니다. 이렇게 하면 작업이 간소화되고, 리소스 요구 사항을 이동하기 위해 새 클러스터를 생성할 필요가 없으며, 트래픽 변동에 신속하게 대응할 수 있습니다. 전반적으로 Memcached 노드 기반 클러스터의 수직적 스케일링은 비용 효율성을 높이고 리소스 사용률을 개선하며 사용자가 Memcached 인스턴스 유형을 변경하도록 하는 데 도움이 될 수 있습니다. 이를 통해 사용자는 실제 애플리케이션 요구 사항에 맞게 캐싱 인프라를 더 쉽게 조정할 수 있습니다.

**참고**  
노드 유형 수정은 엔진 버전이 1.5 이상인 노드 기반 Memcached 클러스터에서만 사용할 수 있습니다.
수직적 스케일링을 사용하려면 자동 검색을 활성화해야 합니다.

## 노드 기반 Memcached 클러스터에 대한 온디맨드 수직적 스케일링 설정
<a name="Scaling.Memcached.automatically.setup.cli"></a>

두 개의 파라미터가 포함된 `scale-config`를 사용하여 Memcached에 대한 온디맨드 수직적 스케일링을 구성할 수 있습니다.

1. **ScaleIntervalMinutes:** Memcached 업그레이드 프로세스 중 조정 배치 간 시간(분)

1. **ScalePercentage:** Memcached 업그레이드 프로세스 중에 동시에 규모를 조정할 노드의 백분율

**기존 Memcached 노드 유형을 CLI를 통해 수직적으로 스케일링할 수 있는 캐시로 변환**

기존 Memcached 노드 기반 클러스터를 수직적으로 스케일링할 수 있는 캐시로 변환하려면 CLI를 통해`elasticache modify-cache-cluster`를 사용할 수 있습니다.

```
aws elasticache modify-cache-cluster \
    --cache-cluster-id <your-cluster-id> \
    --cache-node-type <new-node-type> \
    --scale-config <scale-config> \ 
    --apply-immediately
```

**CLI를 사용하여 수직적 스케일링 설정**

CLI를 통해 노드 기반 Memcached 클러스터에 대한 수직적 스케일링을 설정하려면 `scale-config` 및 해당 파라미터 `ScalePercentage` 및 `ScaleIntervalMinutes`와 함께 `elasticache modify-cache-cluster`를 사용합니다.
+ **scale-interval-minutes:** 조정 배치 간의 시간(분)을 정의합니다. 이 설정의 범위는 2\$130분입니다. 값을 지정하지 않으면 기본값으로 5분이 적용됩니다.
+ **scale-percentage:** 각 배치에서 동시에 규모를 조정할 노드의 비율을 지정합니다. 이 설정의 범위는 10\$1100입니다. 분할 시 설정이 반올림되므로 예를 들어 결과가 49.5인 경우 50의 설정이 적용됩니다. 값을 지정하지 않으면 기본값으로 20이 적용됩니다.

이러한 구성 옵션을 사용하면 특정 요구 사항에 따라 스케일링 프로세스를 미세 조정하여 클러스터 중단을 최소화하고 스케일링 속도를 최적화할 수 있습니다. scale-config 파라미터는 Memcached 엔진 유형에만 적용되며 다른 캐시 엔진에는 무시되므로 다른 클러스터의 기존 API 사용과 이전 버전과의 호환성이 보장됩니다.

**API 직접 호출**

```
aws elasticache modify-cache-cluster \
    --cache-cluster-id <your-cluster-id> \
    --cache-node-type <new-node-type> \
    --scale-config '{
            "ScalePercentage": 30,
            "ScaleIntervalMinutes": 2
          }'
    --apply-immediately
```

**결과:**

클러스터 ID와 보류 중인 변경 사항을 반환합니다.

```
{
    "CacheCluster": {
        "CacheNodeType": "old_insance_type",
         ...
         ...
         "PendingModifiedValues": {
            "CacheNodeType": "new_instance_type"
         },
    }
}
```

**Memcached 캐시 수직적 스케일링 설정 나열**

Memcached 캐시에 대한 조정 옵션을 검색하고 수직적 스케일링에 대한 현재 옵션을 확인할 수 있습니다.

**API 직접 호출**

```
aws elasticache list-allowed-node-type-modifications --cache-cluster-id <your-cluster-id>
```

**결과: **

```
{ 
  "ScaleUpModifications": [
      "cache.x.xxxx", 
      "cache.x.xxxx"
   	  ],
   "ScaleDownModifications": [ 
      "cache.x.xxxx", 
      "cache.x.xxxx", 
      "cache.x.xxxx" 
      ] 
}
```

**를 사용한 Memcached의 수직 조정AWS Management Console**

다음 단계에 따라를 사용하여 노드 기반 Memcached 클러스터를 수직 확장 가능 클러스터로AWS Management Console변환합니다.

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 변환할 Memcached 클러스터를 선택합니다.

1. **수정** 탭을 선택합니다.

1. **캐시 설정** 섹션으로 이동하여 원하는 **노드 유형**을 선택합니다.

1. **변경 사항 미리 보기**를 선택하고 변경 사항을 검토합니다.

1. **수정**을 선택합니다.

## Memcached의 자동 수평적 스케일링
<a name="Scaling-self-designed.mem-heading.horizontal"></a>

이제 ElastiCache는AWS Application Auto Scaling(AAS) 서비스와 통합되어 Memcached 클러스터에 대한 자동 수평 조정을 포함합니다.AWS Application Auto Scaling 서비스를 통해 조정 정책을 정의하고 사전 정의된 지표 또는 일정에 따라 필요에 따라 Memcached 클러스터의 노드 수를 자동으로 조정할 수 있습니다.

**참고**  
현재 베이징 및 닝샤 리전에서는 자동 수평적 스케일링을 사용할 수 없습니다.

다음은 노드 기반 클러스터에 자동 수평적 스케일링을 수행하는 데 사용할 수 있는 방법입니다.
+ **예약된 스케일링:** 일정을 기반으로 스케일링을 수행하면 예측 가능한 로드 변경에 맞게 스케일링 일정을 설정할 수 있습니다. 예를 들어, 매주 수요일에 웹 애플리케이션에 대한 트래픽이 증가하고 목요일까지 높은 상태로 유지되다가 금요일이 줄어들기 시작합니다. Auto Scaling이 수요일에 용량을 늘리고 금요일에 용량을 줄이도록 구성할 수 있습니다.
+ **대상 추적:** 대상 추적 스케일링 정책을 사용하는 경우 스케일링 지표를 선택하고 대상 값을 설정합니다. Application Auto Scaling은 스케일링 정책을 트리거하는 CloudWatch 경보를 생성 및 관리하고 지표와 대상 값을 기준으로 스케일링 조절을 계산합니다. 스케일링 정책은 필요에 따라 용량을 추가하거나 제거하여 지표를 지정한 목푯값으로, 혹은 목표 값에 가깝게 유지합니다.

**CLI를 통해 노드 기반 Memcached 클러스터에 대한 수평적 스케일링을 설정하는 방법**

노드 기반 Memcached 클러스터를 수평적으로 스케일링하는 경우 대상 추적 정책, 예약된 정책 또는 둘 다를 사용할 수 있습니다.

1. **리소스를 확장 가능 대상으로 등록**

   AWS Application Auto Scaling에서 `RegisterScalableTarget` API를 호출하여 확장 가능한 차원에 대한 대상을 등록합니다`elasticache:cache-cluster:Nodes`.

   **API: ApplicationAutoScaling.RegisterScalableTarget**

   입력:

   ```
   {
   	"ScalableDimension": "elasticache:cache-cluster:Nodes",
   	"ResourceId": "cache-cluster/test-cluster-1",
   	"ServiceNamespace": "elasticache",
   	"MinCapacity": 20,  
   	"MaxCapacity": 50 
   }
   ```

1. **대상 추적 스케일링 정책 생성**

   다음으로 put 스케일링 정책 API를 직접 호출하여 리소스에 대한 대상 추적 스케일링 정책을 생성할 수 있습니다.

1. **사전 정의된 지표**

   다음은 클러스터 test-cluster-1에 대해 50으로 설정된 사전 정의된 지표 ` ElastiCacheCPUUtilization`을 사용하여 캐시 노드의 차원에 따라 규모가 조정되는 정책입니다. 스케일 인을 위해 노드를 삭제하면 마지막 n개의 노드가 제거됩니다.

   API: ApplicationAutoScaling.PutScalingPolicy

   입력:

   ```
   {
   	"PolicyName": "cpu50-target-tracking-scaling-policy",
   	"PolicyType": "TargetTrackingScaling",
   	"TargetTrackingScalingPolicyConfiguration": {
   		"TargetValue": 50,
   		"PredefinedMetricSpecification": {
   			"PredefinedMetricType": "ElastiCacheCPUUtilization"
   			},
   		"ScaleOutCooldown": 600,
   		"ScaleInCooldown": 600
   			},
   	"ServiceNamespace": "elasticache",
   	"ScalableDimension": "elasticache:cache-cluster:Nodes",
   	"ResourceId": "cache-cluster/test-cluster-1"
   }
   ```

   출력:

   ```
   {
   	"PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/elasticache/cache-cluster/test-cluster-1:policyName/cpu50-target-tracking-scaling-policy",
   	"Alarms": [
   		{
   		"AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca",
   		"AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca"
   		},
   		{
   		"AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d",
   		"AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d"
   		}
   	]
   }
   ```

1. **사용자 지정 지표**

   Cloudwatch 지표를 기반으로 하는 사용자 지정 백분율을 사용하여 차원에 대한 스케일링 정책을 설정할 수도 있습니다.

   입력:

   ```
   {
   	"PolicyName": "cpu50-target-tracking-scaling-policy",
   	"PolicyType": "TargetTrackingScaling",
   	"TargetTrackingScalingPolicyConfiguration": {
   		"CustomizedMetricSpecification": { 
   			"Dimensions": [ 
   				{ 
   				"Name": "MyMetricDimension",
   				"Value": "DimensionValue"
   				}
   				],
   			"MetricName": "MyCustomMetric",
   			"Namespace": "MyNamespace",
   			"Statistic": "Average",
   			"Unit": "Percent"
   			},
   		"TargetValue": 40,
   		"ScaleOutCooldown": 600,
   		"ScaleInCooldown": 600
   		},
   	"ServiceNamespace": "elasticache",
   	"ScalableDimension": "elasticache:cache-cluster:Nodes",
   	"ResourceId": "cache-cluster/test-cluster-1"
   }
   ```

1. **예약된 작업**

   특정 이벤트에 대해 스케일 아웃한 다음 이벤트 후에 스케일 인해야 하는 경우 `PutScheduledAction` API를 직접 호출하여 2개의 예약된 작업을 생성할 수 있습니다.

   **정책 1: 스케일 아웃**

   `--schedule` 일정의 `at` 명령은 미래의 지정된 날짜 및 시간에 한 번 실행되도록 작업을 예약합니다. 일정 필드는 rate(분, 시간, 일 등) 및 cron(cron 표현식)도 지원합니다.

   지정된 날짜 및 시간이 되면 Application Auto Scaling이 `MinCapacity` 및 `MaxCapacity` 값을 업데이트합니다. Application Auto Scaling은 캐시 노드를 70으로 설정하기 위해 MinCapacity로 스케일 아웃합니다.

   **API: ApplicationAutoScaling.PutScheduledAction**

   입력:

   ```
   {
   	"ResourceId": "elasticache:ache-cluster:test-cluster-1",
   	"ScalableDimension": "elasticache:cache-cluster:Nodes",
   		"ScalableTargetAction": { 
   			"MaxCapacity": 100,
   			"MinCapacity": 70
   			},
   	"Schedule": "at(2020-05-20T17:05:00)",
   	"ScheduledActionName": "ScalingOutScheduledAction",
   	"ServiceNamespace": "elasticache",
   }
   ```

   **정책 2: 스케일 인**

   지정된 날짜 및 시간이 되면 Application Auto Scaling이 테이블의 `MinCapacity` 및 `MaxCapacity`를 업데이트하고 `MaxCapacity`로 스케일 인하여 캐시 노드를 60으로 돌려놓습니다.

   **API: ApplicationAutoScaling.PutScheduledAction**

   입력:

   ```
   {
   	"ResourceId": "elasticache:cache-cluster:test-cluster-1",
   	"ScalableDimension": "elasticache:cache-cluster:Nodes",
   	"ScalableTargetAction": { 
   		"MaxCapacity": 60,
   		"MinCapacity": 40
   		},
   	"Schedule": "at(2020-05-21T17:05:00)",
   	"ScheduledActionName": "ScalingInScheduledAction",
   	"ServiceNamespace": "elasticache",
   }
   ```

1. **스케일링 활동 보기**

   `DescribeScalingActivities` API를 사용하여 스케일링 활동을 볼 수 있습니다.

   **API: ApplicationAutoScaling.DescribeScalingActivities**

   출력:

   ```
   {
   	"ScalingActivities": [
   		{
   		"ScalableDimension": "elasticache:elasticache:DesiredCount",
   		"Description": "Setting desired count to 30.",
   		"ResourceId": "elasticache/cache-cluster/test-cluster-1",
   		"ActivityId": "4d759079-a31f-4d0c-8468-504c56e2eecf",
   		"StartTime": 1462574194.658,
   		"elasticacheNamespace": "elasticache",
   		"EndTime": 1462574276.686,
   		"Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy",
   		"StatusMessage": "Failed to set desired count to 30",
   		"StatusCode": "Failed"
   		},
   		{
   		"ScalableDimension": "elasticache:elasticache:DesiredCount",
   		"Description": "Setting desired count to 25.",
   		"ResourceId": "elasticache/cache-cluster/test-cluster-1",
   		"ActivityId": "90aff0eb-dd6a-443c-889b-b809e78061c1",
   		"StartTime": 1462574254.223,
   		"elasticacheNamespace": "elasticache",
   		"EndTime": 1462574333.492,
   		"Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy",
   		"StatusMessage": "Successfully set desired count to 25. Change successfully fulfilled by elasticache.",
   		"StatusCode": "Successful"
   		}
   	]
   }
   ```

1. **스케일링 정책 편집/삭제**

   `PutScalingPolicy` API를 다시 직접 호출하거나 `DeleteScalingPolicy` 또는 `DeleteScheduled` 작업을 직접 호출하여 정책을 편집하거나 삭제할 수 있습니다.

1. **스케일링 가능 대상 등록 취소**

   `DeregisterScalableTarget` API를 통해 스케일링 가능 대상의 등록을 취소할 수 있습니다. 스케일링 가능 대상을 등록 취소하면 스케일링 정책과 이와 연결된 예약된 작업이 삭제됩니다.

   **API: ApplicationAutoScaling.DeregisterScalableTarget**

   입력:

   ```
   {
   	"ResourceId": "elasticache/cache-cluster/test-cluster-1",
   	"ServiceNamespace": "elasticache",
   	"ScalableDimension": "elasticache:cache-cluster:Nodes"
   }
   ```

1. **스케일링 정책 정리**

1. **여러 스케일링 정책**

   여러 스케일링 정책을 생성할 수 있습니다. 다음은 [Auto Scaling 대상 추적](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)의 동작에 대한 주요 콜아웃입니다.
   + 각각 다른 지표를 사용한다는 전제하에 확장 가능한 대상에 대해 다수의 대상 추적 스케일링 정책을 보유할 수 있습니다.
   + Application Auto Scaling은 항상 가용성을 우선시하므로, 대상 추적 정책이 확장 또는 축소를 허용하는지에 따라 그 동작이 달라집니다. 대상 추적 정책 중 하나라도 확장을 허용할 경우 확장 가능한 대상을 확장하지만 모든 대상 추적 정책(축소 부분이 활성화됨)이 축소를 허용하는 경우에만 대상을 축소합니다.
   + 여러 정책이 확장 가능한 대상에 확장 또는 축소를 동시에 지시하는 경우 Application Auto Scaling은 축소와 확장 모두에 대해 가장 큰 용량을 제공하는 정책에 따라 조정합니다. 이로써 다양한 시나리오를 수용할 만큼 폭넓은 유연성을 발휘할 뿐만 아니라 애플리케이션 워크로드를 처리하는 데 필요한 용량을 항상 충분히 확보할 수 있습니다.
**참고**  
AWS Application Auto Scaling은 조정 정책을 대기열에 추가하지 않습니다. Application Auto Scaling은 첫 번째 스케일링이 완료될 때까지 기다린 다음 휴지 상태로 전환한 다음 위의 알고리즘을 반복합니다.

**를 통해 노드 기반 Memcached 클러스터를 자동으로 수평적으로 조정AWS Management Console**

다음 단계에 따라AWS Management Console를 사용하여 기존 노드 기반 Memcached 클러스터를 수평적으로 확장 가능한 클러스터로 변환합니다.

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 변환할 Memcached 캐시를 선택합니다.

1. **자동 크기 조정** 탭으로 이동합니다.

1. **동적 크기 조정 추가** 또는 **예약된 크기 조정 추가**를 선택하여 적용할 조정 정책을 선택합니다.

1. 필요에 따라 선택한 정책의 세부 정보를 입력합니다.

1. **생성**을 클릭합니다.

# Memcached 클러스터의 수동 규모 조정
<a name="Scaling.Memcached.manually"></a>

수동으로 Memcached 클러스터를 스케일 인 또는 아웃하는 것은 클러스터에서 노드를 추가 또는 제거하는 것만큼 쉽습니다. Memcached 클러스터는 1\$160개의 노드로 구성되어 있습니다.

Memcached 클러스터의 모든 노드로 데이터를 분할할 수 있으므로 더 많은 양의 메모리가 있는 노드 유형으로 스케일 업할 필요가 거의 없습니다. 그러나 Memcached 엔진이 데이터를 유지하지 않으므로 다른 노드 유형으로 조정할 경우 애플리케이션에서 채우지 않으면 새 클러스터가 비워집니다.

Memcached 클러스터를 수동으로 수직적 스케일링하려면 새 클러스터를 생성해야 합니다. Memcached 클러스터는 애플리케이션이 채울 때까지 항상 비어 있습니다.


**Memcached 클러스터 수동 규모 조정**  

| 작업 | Topic | 
| --- | --- | 
|  확장  |  [클러스터에 노드 추가](Clusters.html#AddNode)  | 
|  축소  |  [클러스터에서 노드 삭제](Clusters.html#DeleteNode)  | 
|  노드 유형 변경  |  [노드 기반 Memcached 클러스터를 수직으로 수동 규모 조정](#Scaling.Memcached.Vertically)  | 

**Topics**
+ [

## 노드 기반 Memcached 클러스터를 수평으로 수동 규모 조정
](#Scaling.Memcached.Horizontally)
+ [

## 노드 기반 Memcached 클러스터를 수직으로 수동 규모 조정
](#Scaling.Memcached.Vertically)

## 노드 기반 Memcached 클러스터를 수평으로 수동 규모 조정
<a name="Scaling.Memcached.Horizontally"></a>

Memcached 엔진은 여러 노드에 대한 데이터 분할을 지원합니다. 따라서 Memcached 클러스터는 쉽게 수평으로 조정됩니다. 수평으로 Memcached 클러스터를 조정하려면 노드를 추가 또는 제거하면 됩니다.

다음 항목은 노드를 추가 또는 제거하여 Memcached 클러스터를 스케일 아웃 또는 스케일 인하는 방법을 자세히 설명합니다.
+ [클러스터에 노드 추가](Clusters.html#AddNode)
+ [클러스터에서 노드 삭제](Clusters.html#AddNode)

Memcached 클러스터의 노드 수를 변경할 때마다 키스페이스의 일부라도 다시 매핑해야 정확한 노드에 매핑됩니다. Memcached 클러스터의 로드 밸런싱에 대한 자세한 내용은 [효율적인 로드 밸런싱을 위해 ElastiCache 클라이언트 구성(Memcached)](BestPractices.LoadBalancing.md) 섹션을 참조하세요.

Memcached 클러스터에 대해 Auto Discovery를 사용할 경우 노드를 추가 또는 제거할 때 애플리케이션에 있는 엔드포인트를 변경할 필요가 없습니다. 자동 검색에 대한 자세한 내용은 [클러스터의 노드 자동 식별(Memcached)](AutoDiscovery.md) 섹션을 참조합니다. 자동 검색을 사용하지 않을 경우 Memcached 클러스터의 노드 수를 변경할 때마다 애플리케이션에 있는 엔드포인트를 업데이트해야 합니다.

## 노드 기반 Memcached 클러스터를 수직으로 수동 규모 조정
<a name="Scaling.Memcached.Vertically"></a>

Memcached 클러스터를 수동으로 스케일 업 또는 다운하는 경우 새 클러스터를 생성해야 합니다. Memcached 클러스터는 애플리케이션이 채울 때까지 항상 비어 있습니다.

**중요**  
소형 노드 유형으로 스케일 다운할 경우 소형 노드 유형이 데이터 및 오버헤드에 적합해야 합니다. 자세한 내용은 [노드 크기 선택](CacheNodes.SelectSize.md) 단원을 참조하십시오.

**Topics**
+ [

### 노드 기반 Memcached 클러스터를 수직으로 규모 조정(콘솔)
](#Scaling.Memcached.Vertically.CON)
+ [

### 노드 기반 Memcached 클러스터를 수직으로 규모 조정(AWS CLI)
](#Scaling.Memcached.Vertically.CLI)
+ [

### 노드 기반 Memcached 클러스터를 수직으로 규모를 조정하려면(ElastiCache API)
](#Scaling.Memcached.Vertically.API)

### 노드 기반 Memcached 클러스터를 수직으로 규모 조정(콘솔)
<a name="Scaling.Memcached.Vertically.CON"></a>

다음 절차는AWS Management Console를 사용하여 노드 기반 Memcached 클러스터를 수직으로 조정하는 방법을 안내합니다.

1. 새 노드 유형으로 새 클러스터를 생성합니다. 자세한 내용은 [Memcached 클러스터 생성(콘솔)](Clusters.Create-mc.md#Clusters.Create.CON.Memcached) 섹션을 참조하세요.

1. 애플리케이션에서 엔드포인트를 새 클러스터의 엔드포인트로 업데이트합니다. 자세한 내용은 [클러스터 엔드포인트 찾기(콘솔)(Memcached)](Endpoints.md#Endpoints.Find.Memcached) 단원을 참조하십시오.

1. 이전 클러스터를 삭제합니다. 자세한 내용은 [Memcached에서 새 노드 삭제](Clusters.html#Delete.CON.Memcached)를 참조하세요.

### 노드 기반 Memcached 클러스터를 수직으로 규모 조정(AWS CLI)
<a name="Scaling.Memcached.Vertically.CLI"></a>

다음 절차는AWS CLI를 사용하여 노드 기반 Memcached 클러스터를 수직으로 조정하는 방법을 안내합니다.

1. 새 노드 유형으로 새 클러스터를 생성합니다. 자세한 내용은 [클러스터 생성(AWS CLI)](Clusters.Create.md#Clusters.Create.CLI) 단원을 참조하십시오.

1. 애플리케이션에서 엔드포인트를 새 클러스터의 엔드포인트로 업데이트합니다. 자세한 내용은 [엔드포인트 찾기(AWS CLI)](Endpoints.md#Endpoints.Find.CLI) 단원을 참조하십시오.

1. 이전 클러스터를 삭제합니다. 자세한 내용은 [AWS CLI를 사용하여 ElastiCache 클러스터 삭제](Clusters.Delete.md#Clusters.Delete.CLI) 단원을 참조하십시오.

### 노드 기반 Memcached 클러스터를 수직으로 규모를 조정하려면(ElastiCache API)
<a name="Scaling.Memcached.Vertically.API"></a>

다음 절차는 ElastiCache API를 사용하여 노드 기반 Memcached 클러스터를 수직으로 규모를 조정하는 방법을 안내합니다.

1. 새 노드 유형으로 새 클러스터를 생성합니다. 자세한 내용은 [Memcached용 클러스터 생성(ElastiCache API)](Clusters.Create-mc.md#Clusters.Create.API.mem-heading) 섹션을 참조하세요.

1. 애플리케이션에서 엔드포인트를 새 클러스터의 엔드포인트로 업데이트합니다. 자세한 내용은 [엔드포인트 찾기(ElastiCache API)](Endpoints.md#Endpoints.Find.API) 단원을 참조하십시오.

1. 이전 클러스터를 삭제합니다. 자세한 내용은 [ElastiCache API 사용](Clusters.Delete.md#Clusters.Delete.API) 단원을 참조하십시오.

# Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 클러스터 규모 조정
<a name="scaling-redis-classic"></a>

Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터는 샤드가 없는 단일 노드 클러스터이거나 샤드가 1개인 다중 노드 클러스터일 수 있습니다. 단일 노드 클러스터에서는 읽기와 쓰기에 모두 사용되는 노드 1개를 사용합니다. 다중 노드 클러스터에는 읽기/쓰기 프라이머리 노드인 노드 1개와 0\$15개의 읽기 전용 복제본 노드가 있습니다.

**Topics**
+ [

## Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 클러스터 규모 조정
](#Scaling.RedisStandalone)


**Valkey 또는 Redis OSS 클러스터 규모 조정**  

| 작업 | Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) | Valkey 또는 Redis OSS(클러스터 모드 활성화됨) | 
| --- | --- | --- | 
|  축소  |  [ElastiCache 클러스터에서 노드 제거](Clusters.DeleteNode.md)  |  [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 규모 조정](scaling-redis-cluster-mode-enabled.md)  | 
|  확장  |  [클러스터에 노드 추가](Clusters.html#AddNode)  |  [Valkey 또는 Redis OSS(클러스터 모드 활성화됨)에 대한 온라인 리샤딩](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online)  | 
|  노드 유형 변경  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/scaling-redis-classic.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/scaling-redis-classic.html)  |  [노드 유형 수정하여 온라인 수직 조정](redis-cluster-vertical-scaling.md)  | 
|  노드 그룹의 수 변경  |  Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터에는 지원되지 않음  |  [Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 규모 조정](scaling-redis-cluster-mode-enabled.md)  | 

**Contents**
+ [

## Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 클러스터 규모 조정
](#Scaling.RedisStandalone)
  + [

### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 업
](#Scaling.RedisStandalone.ScaleUp)
    + [

#### Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 단일 노드 클러스터 스케일 업(콘솔)
](#Scaling.RedisStandalone.ScaleUp.CON)
    + [

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 업(AWS CLI)
](#Scaling.RedisStandalone.ScaleUp.CLI)
    + [

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 업(ElastiCache API)
](#Scaling.RedisStandalone.ScaleUp.API)
  + [

### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운
](#Scaling.RedisStandalone.ScaleDown)
    + [

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운(콘솔)
](#Scaling.RedisStandalone.ScaleDown.CON)
    + [

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운(AWS CLI)
](#Scaling.RedisStandalone.ScaleUpDown-Modify.CLI)
    + [

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운(ElastiCache API)
](#Scaling.RedisStandalone.ScaleDown.API)

## Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 클러스터 규모 조정
<a name="Scaling.RedisStandalone"></a>

Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 노드는 모든 캐시의 데이터와 Valkey 또는 Redis OSS 오버헤드를 포함할 만큼 충분히 커야 합니다. Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터의 데이터 용량을 변경하려면 수직으로 조정해야 합니다. 대형 노드 유형으로 스케일 업하여 데이터 용량을 늘리거나 소형 노드 유형으로 스케일 다운하여 데이터 용량을 줄입니다.

ElastiCache 스케일 업 프로세스는 기존 데이터를 최대한 유지할 수 있도록 진행되며, 성공적인 Valkey 또는 Redis OSS 복제가 필요합니다. Valkey 또는 Redis OSS(클러스터 모드 사용 중지됨) 클러스터의 경우, Valkey 또는 Redis OSS에 충분한 메모리를 사용할 수 있도록 하는 것이 좋습니다.

여러 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터로 데이터를 분할할 수 없습니다. 그러나 클러스터의 읽기 용량만 늘리거나 줄여야 하는 경우 복제본 노드가 있는 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터를 생성하고 읽기 전용 복제본을 추가 또는 제거할 수 있습니다. 단일 노드 Valkey 또는 Redis OSS 클러스터를 기본 클러스터로 사용하여 복제본 노드가 있는 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터를 생성하려면 [Valkey(클러스터 모드 비활성화됨) 클러스터 생성(콘솔)](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs) 섹션을 참조하세요.

복제본이 있는 클러스터를 생성하면 읽기 전용 복제본을 추가하여 읽기 용량을 늘릴 수 있습니다. 나중에 필요한 경우 읽기 전용 복제본을 제거하여 읽기 용량을 줄일 수 있습니다. 자세한 내용은 [읽기 용량 늘리기](Scaling.RedisReplGrps.md#Scaling.RedisReplGrps.ScaleOut) 또는 [읽기 용량 줄이기](Scaling.RedisReplGrps.md#Scaling.RedisReplGrps.ScaleIn)을 참조하세요.

읽기 용량을 조정할 수 있는 것 외에도 복제본이 있는 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터는 다른 비즈니스 혜택을 제공합니다. 자세한 내용은 [고가용성을 위한 복제 그룹 사용](Replication.md) 단원을 참조하십시오.

**중요**  
파라미터 그룹이 `reserved-memory`를 사용하여 Valkey 또는 Redis OSS 오버헤드에 대한 메모리를 구분한 경우, 조정을 시작하기 전에 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 파라미터 그룹이 있어야 합니다. 또는 `reserved-memory-percent`를 사용하고 새 클러스터에 대해 해당 파라미터 그룹을 사용하도록 사용자 지정 파라미터 그룹을 수정할 수 있습니다.  
`reserved-memory-percent`를 사용할 경우에는 이렇게 하지 않아도 됩니다.  
자세한 내용은 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md) 단원을 참조하십시오.

**Topics**
+ [

### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 업
](#Scaling.RedisStandalone.ScaleUp)
+ [

### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운
](#Scaling.RedisStandalone.ScaleDown)

### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 업
<a name="Scaling.RedisStandalone.ScaleUp"></a>

단일 노드 Valkey 또는 Redis OSS 클러스터를 스케일 업하면 ElastiCache는 ElastiCache 콘솔,AWS CLI또는 ElastiCache API를 사용하는지 여부에 관계없이 다음 프로세스를 수행합니다.

1. 새 노드 유형이 있는 새 클러스터가 동일한 가용 영역에서 기존 클러스터로 실행됩니다.

1. 기존 클러스터의 캐시 데이터가 새 클러스터로 복사됩니다. 이 프로세스의 기간은 노드 유형 및 클러스터에 있는 데이터의 양에 따라 달라집니다.

1. 새 클러스터를 사용하여 읽기 및 쓰기를 수행합니다. 새 클러스터의 엔드포인트가 이전 클러스터의 엔드포인트와 동일하므로 애플리케이션에 있는 엔드포인트를 업데이트할 필요가 없습니다. DNS 항목이 업데이트되는 동안 프라이머리 노드의 읽기 및 쓰기가 잠깐(몇 초) 중단될 수 있습니다.

1. ElastiCache가 이전 클러스터를 삭제합니다. 이전 노드에 대한 연결이 끊어지기 때문에 이전 노드의 읽기 및 쓰기가 잠깐(몇 초) 중단될 수 있습니다.

**참고**  
r6gd 노드 유형을 실행하는 클러스터의 경우 r6gd 노드 패밀리 내의 노드 크기로만 조정할 수 있습니다.

다음 표에 표시된 대로 다음 유지 관리 기간에 대해 엔진 업그레이드가 예약된 경우 Valkey 또는 Redis OSS 스케일 업 작업이 차단됩니다. 유지 관리 기간에 대한 자세한 내용은 [ElastiCache 클러스터 유지 관리](maintenance-window.md) 섹션을 참조하세요.


**차단된 Valkey 또는 Redis OSS 작업**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/scaling-redis-classic.html)

사용자를 차단하는 대기 중 작업이 있는 경우 다음 중 하나를 수행할 수 있습니다.
+ **Apply immediately** 확인란을 선택 취소하여 다음 유지 관리 기간에 대해 Valkey 또는 Redis OSS 스케일 업 작업을 예약합니다(CLI 사용: `--no-apply-immediately`, API 사용: `ApplyImmediately=false`).
+ Valkey 또는 Redis OSS 스케일 업 작업을 수행하기 위해 다음 유지 관리 기간(또는 그 이후)까지 기다립니다.
+ **즉시 적용** 확인란을 선택한 채로 이 클러스터 수정 사항에 Valkey 또는 Redis OSS 엔진 업그레이드를 추가합니다(CLI 사용: `--apply-immediately`, API 사용: `ApplyImmediately=true`). 이렇게 하면 스케일 업 작업의 차단이 해제되어 엔진 업그레이드가 즉시 수행됩니다.

ElastiCache 콘솔, 또는 ElastiCache ElastiCache API를 사용하여 단일 노드 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터를 확장할 수 있습니다.AWS CLI

**중요**  
파라미터 그룹이 `reserved-memory`를 사용하여 Valkey 또는 Redis OSS 오버헤드에 대한 메모리를 구분한 경우, 조정을 시작하기 전에 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 파라미터 그룹이 있어야 합니다. 또는 `reserved-memory-percent`를 사용하고 새 클러스터에 대해 해당 파라미터 그룹을 사용하도록 사용자 지정 파라미터 그룹을 수정할 수 있습니다.  
`reserved-memory-percent`를 사용할 경우에는 이렇게 하지 않아도 됩니다.  
자세한 내용은 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md) 단원을 참조하십시오.

#### Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 단일 노드 클러스터 스케일 업(콘솔)
<a name="Scaling.RedisStandalone.ScaleUp.CON"></a>

다음 절차에서는 ElastiCache Management Console을 사용하여 단일 노드 Valkey 또는 Redis OSS 클러스터를 스케일 업하는 방법에 대해 설명합니다. 이 프로세스 동안 Valkey 또는 Redis OSS 클러스터는 가동 중지 시간을 최소화하면서 요청을 계속 처리합니다.

**단일 노드 Valkey 또는 Redis OSS 클러스터를 스케일 업하려면(콘솔)**

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 또는 Redis OSS 클러스터**를 선택합니다.

1. 클러스터 목록에서 스케일 업할 클러스터를 선택합니다(Clustered Valkey or Redis OSS 엔진이 아닌 Valkey or Redis OSS 엔진을 실행해야 함).

1. **수정**을 선택합니다.

1. [**Modify Cluster**] 마법사에서 다음을 수행합니다.

   1. [**Node type**] 목록에서 조정할 노드 유형을 선택합니다.

   1. `reserved-memory`를 사용하여 메모리를 관리할 경우 [**Parameter Group**] 목록에서 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 파라미터 그룹을 선택합니다.

1. 스케일 업 프로세스를 즉시 수행하려면 [**Apply immediately**] 상자를 선택합니다. [**Apply immediately**] 상자를 선택하지 않으면 이 클러스터의 다음 유지 관리 기간 중 스케일 업 프로세스가 수행됩니다.

1. **수정**을 선택합니다.

   이전 단계에서 [**Apply immediately**]를 선택한 경우 클러스터의 상태가 *수정 중*으로 변경됩니다. 상태가 *사용 가능*으로 변경되면 수정이 완료되고 새 클러스터의 사용을 시작할 수 있습니다.

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 업(AWS CLI)
<a name="Scaling.RedisStandalone.ScaleUp.CLI"></a>

다음 절차에서는AWS CLI를 사용하여 단일 노드 Valkey 또는 Redis OSS 클러스터를 스케일 업하는 방법에 대해 설명합니다. 이 프로세스 동안 Valkey 또는 Redis OSS 클러스터는 가동 중지 시간을 최소화하면서 요청을 계속 처리합니다.

**단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 업하려면(AWS CLI)**

1. 다음 파라미터로 `list-allowed-node-type-modifications` 명령을 실행AWS CLI하여 스케일 업할 수 있는 노드 유형을 결정합니다.
   + `--cache-cluster-id`

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications \
   	    --cache-cluster-id my-cache-cluster-id
   ```

   Windows의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications ^
   	    --cache-cluster-id my-cache-cluster-id
   ```

   위 명령의 출력은 다음과 같습니다(JSON 형식).

   ```
   {
   	    "ScaleUpModifications": [
   	        "cache.m3.2xlarge", 
   	        "cache.m3.large", 
   	        "cache.m3.xlarge", 
   	        "cache.m4.10xlarge", 
   	        "cache.m4.2xlarge", 
   	        "cache.m4.4xlarge", 
   	        "cache.m4.large", 
   	        "cache.m4.xlarge", 
   	        "cache.r3.2xlarge", 
   	        "cache.r3.4xlarge", 
   	        "cache.r3.8xlarge", 
   	        "cache.r3.large", 
   	        "cache.r3.xlarge"
   	    ]
   	       "ScaleDownModifications": [
   	        "cache.t2.micro", 
   	        "cache.t2.small ", 
   	        "cache.t2.medium ",
               "cache.t1.small ",
   	    ], 
   
   	}
   ```

   자세한 내용은 *AWS CLI참조*의 [list-allowed-node-type-modifications](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-allowed-node-type-modifications.html) 섹션을 참조하세요.

1. 명령과 다음 파라미터를 사용하여 확장할 클러스터와 새롭고 더 큰 노드 유형을 지정하여 기존 클러스터를AWS CLI`modify-cache-cluster` 수정합니다.
   + `--cache-cluster-id` - 스케일 업할 클러스터의 이름입니다.
   + `--cache-node-type` - 클러스터를 조정할 새 노드 유형입니다. 이 값은 1단계의 `list-allowed-node-type-modifications` 명령에 의해 반환되는 노드 유형 중 하나여야 합니다.
   + `--cache-parameter-group-name` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `--apply-immediately` - 스케일 업 프로세스가 즉시 적용되도록 합니다. 스케일 업 프로세스를 클러스터의 다음 유지 관리 기간으로 연기하려면 `--no-apply-immediately` 파라미터를 사용하세요.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache modify-cache-cluster \
   	    --cache-cluster-id my-redis-cache-cluster \
   	    --cache-node-type cache.m3.xlarge \
   	    --cache-parameter-group-name redis32-m2-xl \
   	    --apply-immediately
   ```

   Windows의 경우:

   ```
   aws elasticache modify-cache-cluster ^
   	    --cache-cluster-id my-redis-cache-cluster ^
   	    --cache-node-type cache.m3.xlarge ^
   	    --cache-parameter-group-name redis32-m2-xl ^
   	    --apply-immediately
   ```

   위 명령의 출력은 다음과 같습니다(JSON 형식).

   ```
   {
   	    "CacheCluster": {
   	        "Engine": "redis", 
   	        "CacheParameterGroup": {
   	            "CacheNodeIdsToReboot": [], 
   	            "CacheParameterGroupName": "default.redis6.x", 
   	            "ParameterApplyStatus": "in-sync"
   	        }, 
   	        "SnapshotRetentionLimit": 1, 
   	        "CacheClusterId": "my-redis-cache-cluster", 
   	        "CacheSecurityGroups": [], 
   	        "NumCacheNodes": 1, 
   	        "SnapshotWindow": "00:00-01:00", 
   	        "CacheClusterCreateTime": "2017-02-21T22:34:09.645Z", 
   	        "AutoMinorVersionUpgrade": true, 
   	        "CacheClusterStatus": "modifying", 
   	        "PreferredAvailabilityZone": "us-west-2a", 
   	        "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
   	        "CacheSubnetGroupName": "default", 
   	        "EngineVersion": "6.0", 
   	        "PendingModifiedValues": {
   	            "CacheNodeType": "cache.m3.2xlarge"
   	        }, 
   	        "PreferredMaintenanceWindow": "tue:11:30-tue:12:30", 
   	        "CacheNodeType": "cache.m3.medium",
   	         "DataTiering": "disabled"
   	    }
   	}
   ```

   자세한 내용은 *AWS CLI참조*의 [modify-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html) 섹션을 참조하세요.

1. 를 사용한 경우 다음 파라미터와 함께 명령을 사용하여AWS CLI`describe-cache-clusters` 새 클러스터의 상태를 `--apply-immediately`확인합니다. 상태가 *사용 가능*으로 변경되면 새로운 대형 클러스터의 사용을 시작할 수 있습니다.
   + `--cache-cluster-id` - 단일 노드 Valkey 또는 Redis OSS 클러스터의 이름입니다. 모든 클러스터 대신 특정 클러스터를 설명하려면 이 파라미터를 사용하세요.

   ```
   aws elasticache describe-cache-clusters --cache-cluster-id my-redis-cache-cluster
   ```

   자세한 내용은 *AWS CLI참조*의 [describe-cache-clusters](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html) 섹션을 참조하세요.

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 업(ElastiCache API)
<a name="Scaling.RedisStandalone.ScaleUp.API"></a>

다음 절차에서는 ElastiCache API를 사용하여 단일 노드 Valkey 또는 Redis OSS 클러스터를 스케일 업하는 방법에 대해 설명합니다. 이 프로세스 동안 Valkey 또는 Redis OSS 클러스터는 가동 중지 시간을 최소화하면서 요청을 계속 처리합니다.

**단일 노드 Valkey 또는 Redis OSS 클러스터를 스케일 업하려면(ElastiCache API)**

1. 다음 파라미터와 함께 ElastiCache API `ListAllowedNodeTypeModifications` 작업을 실행하여 확장할 수 있는 노드 유형을 확인합니다.
   + `CacheClusterId` - 스케일 업할 단일 노드 Valkey 또는 Redis OSS 클러스터의 이름입니다.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeModifications
   	   &CacheClusterId=MyRedisCacheCluster
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ListAllowedNodeTypeModifications](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListAllowedNodeTypeModifications.html) 섹션을 참조하세요.

1. `ModifyCacheCluster` ElastiCache API 작업 및 다음 파라미터를 사용하여 스케일 업할 클러스터 및 새로운 대형 노드 유형을 지정하도록 기존 클러스터를 수정합니다.
   + `CacheClusterId` - 스케일 업할 클러스터의 이름입니다.
   + `CacheNodeType` - 클러스터를 조정할 새로운 대형 노드 유형입니다. 이 값은 이전 단계의 `ListAllowedNodeTypeModifications` 작업에 의해 반환되는 노드 유형 중 하나여야 합니다.
   + `CacheParameterGroupName` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `ApplyImmediately` - 스케일 업 프로세스가 즉시 수행되도록 하려면 `true`로 설정합니다. 스케일 업 프로세스를 클러스터의 다음 유지 관리 기간으로 연기하려면 `ApplyImmediately``=false`를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ModifyCacheCluster
   	   &ApplyImmediately=true
   	   &CacheClusterId=MyRedisCacheCluster
   	   &CacheNodeType=cache.m3.xlarge
   	   &CacheParameterGroupName redis32-m2-xl
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ModifyCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html) 섹션을 참조하세요.

1. `ApplyImmediately``=true`를 사용한 경우 ElastiCache API `DescribeCacheClusters` 작업을 다음 파라미터와 함께 사용하여 새 클러스터의 상태를 확인합니다. 상태가 *사용 가능*으로 변경되면 새로운 대형 클러스터의 사용을 시작할 수 있습니다.
   + `CacheClusterId` - 단일 노드 Valkey 또는 Redis OSS 클러스터의 이름입니다. 모든 클러스터 대신 특정 클러스터를 설명하려면 이 파라미터를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=DescribeCacheClusters
   	   &CacheClusterId=MyRedisCacheCluster
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [DescribeCacheClusters](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html) 섹션을 참조하세요.

### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운
<a name="Scaling.RedisStandalone.ScaleDown"></a>

다음 섹션에서는 단일 노드 Valkey 또는 Redis OSS 클러스터를 소형 노드 유형으로 축소하는 방법을 살펴봅니다. 새 Valkey 또는 Redis OSS 클러스터의 장기적인 성공을 위해 새로운 소형 노드 유형이 모든 데이터와 Valkey 또는 Redis OSS 오버헤드를 수용할 만큼 충분히 큰지 확인하는 것이 중요합니다. 자세한 내용은 [충분한 메모리를 확보하여 Valkey 또는 Redis OSS 스냅샷 생성](BestPractices.BGSAVE.md) 단원을 참조하십시오.

**참고**  
r6gd 노드 유형을 실행하는 클러스터의 경우 r6gd 노드 패밀리 내의 노드 크기로만 조정할 수 있습니다.

**Topics**
+ [

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운(콘솔)
](#Scaling.RedisStandalone.ScaleDown.CON)
+ [

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운(AWS CLI)
](#Scaling.RedisStandalone.ScaleUpDown-Modify.CLI)
+ [

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운(ElastiCache API)
](#Scaling.RedisStandalone.ScaleDown.API)

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운(콘솔)
<a name="Scaling.RedisStandalone.ScaleDown.CON"></a>

다음 절차는 ElastiCache 콘솔을 사용하여 단일 노드 Valkey 또는 Redis OSS 클러스터를 소형 노드 유형으로 축소하는 방법을 안내합니다.

**중요**  
파라미터 그룹이 `reserved-memory`를 사용하여 Valkey 또는 Redis OSS 오버헤드에 대한 메모리를 구분한 경우, 조정을 시작하기 전에 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 파라미터 그룹이 있어야 합니다. 또는 `reserved-memory-percent`를 사용하고 새 클러스터에 대해 해당 파라미터 그룹을 사용하도록 사용자 지정 파라미터 그룹을 수정할 수 있습니다.  
`reserved-memory-percent`를 사용할 경우에는 이렇게 하지 않아도 됩니다.  
자세한 내용은 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md) 단원을 참조하십시오.

**단일 노드 Valkey 또는 Redis OSS 클러스터를 스케일 다운하려면(콘솔)**

1. 소형 노드 유형이 데이터 및 오버헤드 요구 사항에 적합한지 확인합니다.

1. 파라미터 그룹이 `reserved-memory`를 사용하여 Valkey 또는 Redis OSS 오버헤드에 대한 메모리를 구분한 경우, 새 노드 유형에 대해 올바른 메모리 양을 구분하는 사용자 지정 파라미터 그룹이 있어야 합니다.

   또는 `reserved-memory-percent`를 사용하여 사용자 지정 파라미터 그룹을 수정할 수 있습니다. 자세한 내용은 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md) 단원을 참조하십시오.

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 클러스터 목록에서 스케일 다운할 클러스터를 선택합니다. 이 클러스터는 Clustered Valkey 또는 Redis OSS 엔진이 아닌 Valkey 또는 Redis OSS 엔진을 실행해야 합니다.

1. **수정**을 선택합니다.

1. [**Modify Cluster**] 마법사에서 다음을 수행합니다.

   1. [**Node type**] 목록에서 스케일 다운할 노드 유형을 선택합니다.

   1. `reserved-memory`를 사용하여 메모리를 관리할 경우 [**Parameter Group**] 목록에서 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 파라미터 그룹을 선택합니다.

1. 스케일 다운 프로세스를 즉시 수행하려면 [**Apply immediately**] 확인란을 선택합니다. [**Apply immediately**] 확인란을 선택하지 않고 비워 두면 이 클러스터의 다음 유지 관리 기간 중 스케일 다운 프로세스가 수행됩니다.

1. **수정**을 선택합니다.

1. 클러스터의 상태가 *수정 중*에서 *사용 가능*으로 변경되면 클러스터가 새 노드 유형으로 조정된 것입니다. 애플리케이션에서 엔드포인트를 업데이트할 필요가 없습니다.

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운(AWS CLI)
<a name="Scaling.RedisStandalone.ScaleUpDown-Modify.CLI"></a>

다음 절차에서는AWS CLI를 사용하여 단일 노드 Valkey 또는 Redis OSS 클러스터를 스케일 다운하는 방법에 대해 설명합니다.

**단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운하려면(AWS CLI)**

1. 다음 파라미터로 `list-allowed-node-type-modifications` 명령을 실행AWS CLI하여 축소할 수 있는 노드 유형을 결정합니다.
   + `--cache-cluster-id`

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications \
   	    --cache-cluster-id my-cache-cluster-id
   ```

   Windows의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications ^
   	    --cache-cluster-id my-cache-cluster-id
   ```

   위 명령의 출력은 다음과 같습니다(JSON 형식).

   ```
   {
   	    "ScaleUpModifications": [
   	        "cache.m3.2xlarge", 
   	        "cache.m3.large", 
   	        "cache.m3.xlarge", 
   	        "cache.m4.10xlarge", 
   	        "cache.m4.2xlarge", 
   	        "cache.m4.4xlarge", 
   	        "cache.m4.large", 
   	        "cache.m4.xlarge", 
   	        "cache.r3.2xlarge", 
   	        "cache.r3.4xlarge", 
   	        "cache.r3.8xlarge", 
   	        "cache.r3.large", 
   	        "cache.r3.xlarge"
   	    ]
   	       "ScaleDownModifications": [
   	        "cache.t2.micro", 
   	        "cache.t2.small ", 
   	        "cache.t2.medium ",
               "cache.t1.small ",
   	    ], 
   
   	}
   ```

   자세한 내용은 *AWS CLI참조*의 [list-allowed-node-type-modifications](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-allowed-node-type-modifications.html) 섹션을 참조하세요.

1. 명령과 다음 파라미터를 사용하여 스케일 다운할 클러스터와 새롭고 더 작은 노드 유형을 지정하여 기존 클러스터를AWS CLI`modify-cache-cluster` 수정합니다.
   + `--cache-cluster-id` - 스케일 다운할 클러스터의 이름입니다.
   + `--cache-node-type` - 클러스터를 조정할 새 노드 유형입니다. 이 값은 1단계의 `list-allowed-node-type-modifications` 명령에 의해 반환되는 노드 유형 중 하나여야 합니다.
   + `--cache-parameter-group-name` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `--apply-immediately` - 축소 프로세스가 즉시 적용되도록 합니다. 스케일 업 프로세스를 클러스터의 다음 유지 관리 기간으로 연기하려면 `--no-apply-immediately` 파라미터를 사용하세요.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache modify-cache-cluster \
   	    --cache-cluster-id my-redis-cache-cluster \
   	    --cache-node-type cache.m3.xlarge \
   	    --cache-parameter-group-name redis32-m2-xl \
   	    --apply-immediately
   ```

   Windows의 경우:

   ```
   aws elasticache modify-cache-cluster ^
   	    --cache-cluster-id my-redis-cache-cluster ^
   	    --cache-node-type cache.m3.xlarge ^
   	    --cache-parameter-group-name redis32-m2-xl ^
   	    --apply-immediately
   ```

   위 명령의 출력은 다음과 같습니다(JSON 형식).

   ```
   {
   	    "CacheCluster": {
   	        "Engine": "redis", 
   	        "CacheParameterGroup": {
   	            "CacheNodeIdsToReboot": [], 
   	            "CacheParameterGroupName": "default.redis6,x", 
   	            "ParameterApplyStatus": "in-sync"
   	        }, 
   	        "SnapshotRetentionLimit": 1, 
   	        "CacheClusterId": "my-redis-cache-cluster", 
   	        "CacheSecurityGroups": [], 
   	        "NumCacheNodes": 1, 
   	        "SnapshotWindow": "00:00-01:00", 
   	        "CacheClusterCreateTime": "2017-02-21T22:34:09.645Z", 
   	        "AutoMinorVersionUpgrade": true, 
   	        "CacheClusterStatus": "modifying", 
   	        "PreferredAvailabilityZone": "us-west-2a", 
   	        "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
   	        "CacheSubnetGroupName": "default", 
   	        "EngineVersion": "6.0", 
   	        "PendingModifiedValues": {
   	            "CacheNodeType": "cache.m3.2xlarge"
   	        }, 
   	        "PreferredMaintenanceWindow": "tue:11:30-tue:12:30", 
   	        "CacheNodeType": "cache.m3.medium",
   	         "DataTiering": "disabled"
   	    }
   	}
   ```

   자세한 내용은 *AWS CLI참조*의 [modify-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html) 섹션을 참조하세요.

1. 를 사용한 경우 다음 파라미터와 함께 명령을 사용하여AWS CLI`describe-cache-clusters` 새 클러스터의 상태를 `--apply-immediately`확인합니다. 상태가 *사용 가능*으로 변경되면 새로운 대형 클러스터의 사용을 시작할 수 있습니다.
   + `--cache-cluster-id` - 단일 노드 Valkey 또는 Redis OSS 클러스터의 이름입니다. 모든 클러스터 대신 특정 클러스터를 설명하려면 이 파라미터를 사용하세요.

   ```
   aws elasticache describe-cache-clusters --cache-cluster-id my-redis-cache-cluster
   ```

   자세한 내용은 *AWS CLI참조*의 [describe-cache-clusters](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html) 섹션을 참조하세요.

#### 단일 노드 Valkey 또는 Redis OSS 클러스터 스케일 다운(ElastiCache API)
<a name="Scaling.RedisStandalone.ScaleDown.API"></a>

다음 절차에서는 ElastiCache API를 사용하여 단일 노드 Valkey 또는 Redis OSS 클러스터를 스케일 업 및 스케일 다운하는 방법에 대해 설명합니다.

**단일 노드 Valkey 또는 Redis OSS 클러스터를 스케일 다운하려면(ElastiCache API)**

1. 다음 파라미터와 함께 ElastiCache API `ListAllowedNodeTypeModifications` 작업을 실행하여 축소할 수 있는 노드 유형을 확인합니다.
   + `CacheClusterId` - 스케일 다운할 단일 노드 Valkey 또는 Redis OSS 클러스터의 이름입니다.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeModifications
   	   &CacheClusterId=MyRedisCacheCluster
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ListAllowedNodeTypeModifications](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListAllowedNodeTypeModifications.html) 섹션을 참조하세요.

1. `ModifyCacheCluster` ElastiCache API 작업 및 다음 파라미터를 사용하여 스케일 업할 클러스터 및 새로운 대형 노드 유형을 지정하도록 기존 클러스터를 수정합니다.
   + `CacheClusterId` - 스케일 다운할 클러스터의 이름입니다.
   + `CacheNodeType` - 클러스터를 스케일 다운할 새롭고 더 작은 노드 유형입니다. 이 값은 이전 단계의 `ListAllowedNodeTypeModifications` 작업에 의해 반환되는 노드 유형 중 하나여야 합니다.
   + `CacheParameterGroupName` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `ApplyImmediately` - 축소 프로세스가 즉시 수행되도록 하려면 `true`로 설정합니다. 스케일 업 프로세스를 클러스터의 다음 유지 관리 기간으로 연기하려면 `ApplyImmediately``=false`를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ModifyCacheCluster
   	   &ApplyImmediately=true
   	   &CacheClusterId=MyRedisCacheCluster
   	   &CacheNodeType=cache.m3.xlarge
   	   &CacheParameterGroupName redis32-m2-xl
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ModifyCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html) 섹션을 참조하세요.

1. `ApplyImmediately``=true`를 사용한 경우 ElastiCache API `DescribeCacheClusters` 작업을 다음 파라미터와 함께 사용하여 새 클러스터의 상태를 확인합니다. 상태가 *사용 가능*으로 변경되면 새롭고 더 작은 클러스터를 사용할 수 있습니다.
   + `CacheClusterId` - 단일 노드 Valkey 또는 Redis OSS 클러스터의 이름입니다. 모든 클러스터 대신 특정 클러스터를 설명하려면 이 파라미터를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=DescribeCacheClusters
   	   &CacheClusterId=MyRedisCacheCluster
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [DescribeCacheClusters](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html) 섹션을 참조하세요.

# Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)에 대한 복제본 노드 규모 조정
<a name="Scaling.RedisReplGrps"></a>

복제본 노드가 있는 Valkey 또는 Redis OSS 클러스터(API/CLI에서 *복제 그룹*이라고 함)는 자동 장애 조치가 활성화된 다중 AZ가 있는 복제를 통해 고가용성을 제공합니다. 복제본 노드가 있는 클러스터는 최대 6개의 Valkey 또는 Redis OSS 노드의 논리적 모음으로, 이 중 프라이머리 노드는 읽기 및 쓰기 요청을 모두 제공할 수 있습니다. 클러스터의 다른 모든 노드는 프라이머리 노드의 읽기 전용 복제본입니다. 기본에 작성된 데이터는 클러스터의 모든 읽기 전용 복제본으로 비동기식으로 복제됩니다. Valkey 또는 Redis OSS(클러스터 모드 비활성화됨)는 여러 클러스터로의 데이터 분할을 지원하지 않으므로 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 복제 그룹의 각 클러스터에는 전체 캐시 데이터세트가 포함됩니다. Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터는 최대 500개 샤드로의 데이터 분할을 지원합니다.

클러스터의 데이터 용량을 변경하려면 대형 노드 유형으로 스케일 업하거나 소형 노드 유형으로 스케일 다운해야 합니다.

클러스터의 읽기 용량을 변경하려면 최대 5개의 추가 읽기 전용 복제본을 추가하거나 읽기 전용 복제본을 제거하세요.

ElastiCache 스케일 업 프로세스는 기존 데이터를 최대한 유지할 수 있도록 진행되며, 성공적인 Valkey 또는 Redis OSS 복제가 필요합니다. 복제본이 있는 Valkey 또는 Redis OSS 클러스터의 경우, Valkey 또는 Redis OSS에 충분한 메모리를 사용할 수 있도록 하는 것이 좋습니다.

**Topics**
+ [

## 복제본이 있는 Valkey 또는 Redis OSS 클러스터 스케일 업
](#Scaling.RedisReplGrps.ScaleUp)
+ [

## 복제본이 있는 Valkey 또는 Redis OSS 클러스터 스케일 다운
](#Scaling.RedisReplGrps.ScaleDown)
+ [

## 읽기 용량 늘리기
](#Scaling.RedisReplGrps.ScaleOut)
+ [

## 읽기 용량 줄이기
](#Scaling.RedisReplGrps.ScaleIn)

**관련 항목**
+ [고가용성을 위한 복제 그룹 사용](Replication.md)
+ [복제: Valkey 및 Redis OSS 클러스터 모드 비활성화됨과 활성화됨](Replication.Redis-RedisCluster.md)
+ [Valkey 및 Redis OSS와 함께 다중 AZ를 사용하여 ElastiCache의 가동 중지 시간 최소화](AutoFailover.md)
+ [충분한 메모리를 확보하여 Valkey 또는 Redis OSS 스냅샷 생성](BestPractices.BGSAVE.md)

**Topics**
+ [

## 복제본이 있는 Valkey 또는 Redis OSS 클러스터 스케일 업
](#Scaling.RedisReplGrps.ScaleUp)
+ [

## 복제본이 있는 Valkey 또는 Redis OSS 클러스터 스케일 다운
](#Scaling.RedisReplGrps.ScaleDown)
+ [

## 읽기 용량 늘리기
](#Scaling.RedisReplGrps.ScaleOut)
+ [

## 읽기 용량 줄이기
](#Scaling.RedisReplGrps.ScaleIn)

## 복제본이 있는 Valkey 또는 Redis OSS 클러스터 스케일 업
<a name="Scaling.RedisReplGrps.ScaleUp"></a>

Amazon ElastiCache는 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 복제 그룹 확장에 대한 콘솔, CLI 및 API 지원을 제공합니다.

확장 프로세스가 시작되면 ElastiCache는 다음을 수행합니다.

1. 새 노드 유형을 사용하여 복제 그룹을 시작합니다.

1. 현재 프라이머리 노드에서 새 프라이머리 노드로 모든 데이터를 복사합니다.

1. 새 읽기 전용 복제본을 새 프라이머리 노드와 동기화합니다.

1. DNS 항목이 새 노드를 가리키도록 해당 항목을 업데이트합니다. 따라서 애플리케이션의 엔드포인트를 업데이트할 필요가 없습니다. Valkey 7.2 이상 또는 Redis OSS 5.0.5 이상의 경우 클러스터가 계속 온라인 상태를 유지하고 들어오는 요청을 처리하는 동안 자동 장애 조치(failover) 지원 클러스터를 조정할 수 있습니다. Redis OSS 버전 4.0.10 이하에서, DNS 항목이 업데이트되는 동안 프라이머리 노드에서 이전 버전에 대한 읽기 및 쓰기가 잠깐 중단될 수 있습니다.

1. 이전 노드(CLI/API: 복제 그룹)를 삭제합니다. 이전 노드에 대한 연결이 끊어지기 때문에 이전 노드의 읽기 및 쓰기가 잠깐(몇 초) 중단될 수 있습니다.

이 프로세스의 기간은 노드 유형 및 클러스터에 있는 데이터의 양에 따라 달라집니다.

다음 표에 표시된 대로, 클러스터의 다음 유지 관리 기간에 대해 엔진 업그레이드가 예약된 경우 Valkey 또는 Redis OSS 스케일 업 작업이 차단됩니다.


**차단된 Valkey 또는 Redis OSS 작업**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/dg/Scaling.RedisReplGrps.html)

사용자를 차단하는 대기 중 작업이 있는 경우 다음 중 하나를 수행할 수 있습니다.
+ **Apply immediately** 확인란을 선택 취소하여 다음 유지 관리 기간에 대해 Valkey 또는 Redis OSS 스케일 업 작업을 예약합니다(CLI 사용: `--no-apply-immediately`, API 사용: `ApplyImmediately=false`).
+ Valkey 또는 Redis OSS 스케일 업 작업을 수행하기 위해 다음 유지 관리 기간(또는 그 이후)까지 기다립니다.
+ **즉시 적용** 확인란을 선택한 채로 이 클러스터 수정 사항에 Valkey 또는 Redis OSS 엔진 업그레이드를 추가합니다(CLI 사용: `--apply-immediately`, API 사용: `ApplyImmediately=true`). 이렇게 하면 스케일 업 작업의 차단이 해제되어 엔진 업그레이드가 즉시 수행됩니다.

다음 섹션에서는 ElastiCache 콘솔,AWS CLI및 ElastiCache API를 사용하여 복제본이 있는 Valkey 또는 Redis OSS 클러스터를 확장하는 방법을 설명합니다.

**중요**  
파라미터 그룹이 `reserved-memory`를 사용하여 Valkey 또는 Redis OSS 오버헤드에 대한 메모리를 구분한 경우, 조정을 시작하기 전에 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 파라미터 그룹이 있어야 합니다. 또는 `reserved-memory-percent`를 사용하고 새 클러스터에 대해 해당 파라미터 그룹을 사용하도록 사용자 지정 파라미터 그룹을 수정할 수 있습니다.  
`reserved-memory-percent`를 사용할 경우에는 이렇게 하지 않아도 됩니다.  
자세한 내용은 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md) 단원을 참조하십시오.

### 복제본을 사용하여 Valkey 또는 Redis OSS 클러스터 스케일 업(콘솔)
<a name="Scaling.RedisReplGrps.ScaleUp.CON"></a>

대형 노드 유형으로 스케일 업하는 데 걸리는 시간은 노드 유형 및 현재 클러스터에 있는 데이터의 양에 따라 달라집니다.

다음 절차는 ElastiCache 콘솔을 사용하여 복제본이 있는 클러스터를 현재 노드 유형에서 새로운 대형 노드 유형으로 조정합니다. 이 프로세스 중 DNS 항목이 업데이트되는 동안 프라이머리 노드에서 다른 버전에 대한 읽기 및 쓰기가 잠깐 중단될 수 있습니다. 5.0.6 이상 버전에서 실행 중인 노드의 경우 1초 미만, 이전 버전의 경우 몇 초 동안 가동 중지가 발생할 수 있습니다.

**복제본을 사용하여 Valkey 또는 Redis OSS 클러스터를 스케일 업하려면(콘솔)**

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 클러스터** 또는 **Redis OSS 클러스터**를 선택합니다.

1. 클러스터 목록에서 스케일 업할 클러스터를 선택합니다. 이 클러스터는 Clustered Valkey 또는 Redis OSS 엔진이 아닌 Valkey 또는 Redis OSS 엔진을 실행해야 합니다.

1. **수정**을 선택합니다.

1. [**Modify Cluster**] 마법사에서 다음을 수행합니다.

   1. [**Node type**] 목록에서 조정할 노드 유형을 선택합니다. 모든 노드 유형을 축소할 수 있는 것은 아닙니다.

   1. `reserved-memory`를 사용하여 메모리를 관리할 경우 [**Parameter Group**] 목록에서 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 파라미터 그룹을 선택합니다.

1. 스케일 업 프로세스를 즉시 수행하려면 [**Apply immediately**] 확인란을 선택합니다. [**Apply immediately**] 확인란을 선택하지 않고 비워 두면 이 클러스터의 다음 유지 관리 기간 중 스케일 업 프로세스가 수행됩니다.

1. **수정**을 선택합니다.

1. 클러스터의 상태가 *수정 중*에서 *사용 가능*으로 변경되면 클러스터가 새 노드 유형으로 조정된 것입니다. 애플리케이션에서 엔드포인트를 업데이트할 필요가 없습니다.

### Valkey 또는 Redis OSS 복제 그룹 스케일 업(AWS CLI)
<a name="Scaling.RedisReplGrps.ScaleUp.CLI"></a>

다음 절차는AWS CLI를 사용하여 복제 그룹을 현재 노드 유형에서 새롭고 더 큰 노드 유형으로 조정합니다. 이 프로세스 중에 ElastiCache는 DNS 항목이 새 노드를 가리키도록 해당 항목을 업데이트합니다. 따라서 애플리케이션의 엔드포인트를 업데이트할 필요가 없습니다. Valkey 7.2 이상 또는 Redis OSS 5.0.5 이상의 경우 클러스터가 계속 온라인 상태를 유지하고 들어오는 요청을 처리하는 동안 자동 장애 조치(failover) 지원 클러스터를 조정할 수 있습니다. 버전 4.0.10 이하의 경우, DNS 항목이 업데이트되는 동안 프라이머리 노드에서 이전 버전에 대한 읽기 및 쓰기가 잠깐 중단될 수 있습니다.

대형 노드 유형으로 스케일 업하는 데 걸리는 시간은 노드 유형 및 현재 클러스터에 있는 데이터의 양에 따라 달라집니다.

**Valkey 또는 Redis OSS 복제 그룹을 스케일 업하려면(AWS CLI)**

1. 다음 파라미터로AWS CLI`list-allowed-node-type-modifications` 명령을 실행하여 확장할 수 있는 노드 유형을 결정합니다.
   + `--replication-group-id` - 복제 그룹의 이름입니다. 모든 복제 그룹 대신 특정 복제 그룹을 설명하려면 이 파라미터를 사용하세요.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications \
   	    --replication-group-id my-repl-group
   ```

   Windows의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications ^
   	    --replication-group-id my-repl-group
   ```

   이 작업의 출력은 다음과 같습니다(JSON 형식).

   ```
   {
   	    "ScaleUpModifications": [
   	        "cache.m3.2xlarge", 
   	        "cache.m3.large", 
   	        "cache.m3.xlarge", 
   	        "cache.m4.10xlarge", 
   	        "cache.m4.2xlarge", 
   	        "cache.m4.4xlarge", 
   	        "cache.m4.large", 
   	        "cache.m4.xlarge", 
   	        "cache.r3.2xlarge", 
   	        "cache.r3.4xlarge", 
   	        "cache.r3.8xlarge", 
   	        "cache.r3.large", 
   	        "cache.r3.xlarge"
   	    ]
   	}
   ```

   자세한 내용은 *AWS CLI참조*의 [list-allowed-node-type-modifications](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-allowed-node-type-modifications.html) 섹션을 참조하세요.

1. 다음 파라미터와 함께 `modify-replication-group` 명령을 사용하여AWS CLI현재 복제 그룹을 새 노드 유형으로 확장합니다.
   + `--replication-group-id` - 복제 그룹의 이름입니다.
   + `--cache-node-type` - 이 복제 그룹에 있는 클러스터의 새로운 대형 노드 유형입니다. 이 값은 이전 단계의 `list-allowed-node-type-modifications` 명령에 의해 반환되는 인스턴스 유형 중 하나여야 합니다.
   + `--cache-parameter-group-name` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `--apply-immediately` - 스케일 업 프로세스가 즉시 적용되도록 합니다. 스케일 업 작업을 다음 유지 관리 기간으로 연기하려면 `--no-apply-immediately`를 사용하세요.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache modify-replication-group \
   	    --replication-group-id my-repl-group \
   	    --cache-node-type cache.m3.xlarge \
   	    --cache-parameter-group-name redis32-m3-2xl \
   	    --apply-immediately
   ```

   Windows의 경우:

   ```
   aws elasticache modify-replication-group ^
   	    --replication-group-id my-repl-group ^
   	    --cache-node-type cache.m3.xlarge ^
   	    --cache-parameter-group-name redis32-m3-2xl \
   	    --apply-immediately
   ```

   이 명령의 출력은 다음과 같습니다(JSON 형식).

   ```
   {
   	"ReplicationGroup": {
   		"Status": "available",
   		"Description": "Some description",
   		"NodeGroups": [{
   			"Status": "available",
   			"NodeGroupMembers": [{
   					"CurrentRole": "primary",
   					"PreferredAvailabilityZone": "us-west-2b",
   					"CacheNodeId": "0001",
   					"ReadEndpoint": {
   						"Port": 6379,
   						"Address": "my-repl-group-001.8fdx4s.0001.usw2.cache.amazonaws.com"
   					},
   					"CacheClusterId": "my-repl-group-001"
   				},
   				{
   					"CurrentRole": "replica",
   					"PreferredAvailabilityZone": "us-west-2c",
   					"CacheNodeId": "0001",
   					"ReadEndpoint": {
   						"Port": 6379,
   						"Address": "my-repl-group-002.8fdx4s.0001.usw2.cache.amazonaws.com"
   					},
   					"CacheClusterId": "my-repl-group-002"
   				}
   			],
   			"NodeGroupId": "0001",
   			"PrimaryEndpoint": {
   				"Port": 6379,
   				"Address": "my-repl-group.8fdx4s.ng.0001.usw2.cache.amazonaws.com"
   			}
   		}],
   		"ReplicationGroupId": "my-repl-group",
   		"SnapshotRetentionLimit": 1,
   		"AutomaticFailover": "disabled",
   		"SnapshotWindow": "12:00-13:00",
   		"SnapshottingClusterId": "my-repl-group-002",
   		"MemberClusters": [
   			"my-repl-group-001",
   			"my-repl-group-002"
   		],
   		"PendingModifiedValues": {}
   	}
   }
   ```

   자세한 내용은 *AWS CLI참조*의 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html) 섹션을 참조하세요.

1. `--apply-immediately` 파라미터를 사용한 경우 다음 파라미터와 함께 `describe-replication-group` 명령을 사용하여AWS CLI복제 그룹의 상태를 모니터링합니다. 상태가 계속 *수정 중*이면 5.0.6 이상 버전에서 실행 중인 노드의 경우 1초 미만의 가동 중지가 발생할 수 있고, DNS 항목이 업데이트되는 동안 프라이머리 노드에서 이전 버전에 대한 읽기 및 쓰기가 잠깐 중단될 수 있습니다.
   + `--replication-group-id` - 복제 그룹의 이름입니다. 모든 복제 그룹 대신 특정 복제 그룹을 설명하려면 이 파라미터를 사용하세요.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache describe-replication-groups \
   	    --replication-group-id my-replication-group
   ```

   Windows의 경우:

   ```
   aws elasticache describe-replication-groups ^
   	    --replication-group-id my-replication-group
   ```

   자세한 내용은 *AWS CLI참조*에서 [describe-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-replication-groups.html)를 참조하세요.

### Valkey 또는 Redis OSS 복제 그룹 스케일 업(ElastiCache API)
<a name="Scaling.RedisReplGrps.ScaleUp.API"></a>

다음 절차는 ElastiCache API를 사용하여 복제 그룹을 현재 노드 유형에서 새로운 대형 노드 유형으로 조정합니다. Valkey 7.2 이상 또는 Redis OSS 5.0.5 이상의 경우 클러스터가 계속 온라인 상태를 유지하고 들어오는 요청을 처리하는 동안 자동 장애 조치(failover) 지원 클러스터를 조정할 수 있습니다. Redis OSS 버전 4.0.10 이하의 경우, DNS 항목이 업데이트되는 동안 프라이머리 노드에서 이전 버전에 대한 읽기 및 쓰기가 잠깐 중단될 수 있습니다.

대형 노드 유형으로 스케일 업하는 데 걸리는 시간은 노드 유형 및 현재 클러스터에 있는 데이터의 양에 따라 달라집니다.

**Valkey 또는 Redis OSS 복제 그룹 스케일 업하려면(ElastiCache API)**

1. 다음 파라미터와 함께 ElastiCache API `ListAllowedNodeTypeModifications` 작업을 사용하여 확장할 수 있는 노드 유형을 확인합니다.
   + `ReplicationGroupId` - 복제 그룹의 이름입니다. 모든 복제 그룹 대신 특정 복제 그룹을 설명하려면 이 파라미터를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeModifications
   	   &ReplicationGroupId=MyReplGroup
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ListAllowedNodeTypeModifications](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListAllowedNodeTypeModifications.html) 섹션을 참조하세요.

1. 다음 파라미터와 함께 `ModifyReplicationGroup` ElastiCache API 작업을 사용하여 현재 복제 그룹을 새 노드 유형으로 확장합니다.
   + `ReplicationGroupId` - 복제 그룹의 이름입니다.
   + `CacheNodeType` - 이 복제 그룹에 있는 클러스터의 새로운 대형 노드 유형입니다. 이 값은 이전 단계의 `ListAllowedNodeTypeModifications` 작업에 의해 반환되는 인스턴스 유형 중 하나여야 합니다.
   + `CacheParameterGroupName` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `ApplyImmediately` - 스케일 업 프로세스가 즉시 적용되도록 하려면 `true`로 설정합니다. 스케일 업 프로세스를 다음 유지 관리 기간으로 연기하려면 `ApplyImmediately``=false`를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ModifyReplicationGroup
   	   &ApplyImmediately=true
   	   &CacheNodeType=cache.m3.2xlarge
   	   &CacheParameterGroupName=redis32-m3-2xl
   	   &ReplicationGroupId=myReplGroup
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20141201T220302Z
   	   &Version=2014-12-01
   	   &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
   	   &X-Amz-Date=20141201T220302Z
   	   &X-Amz-SignedHeaders=Host
   	   &X-Amz-Expires=20141201T220302Z
   	   &X-Amz-Credential=<credential>
   	   &X-Amz-Signature=<signature>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html) 섹션을 참조하세요.

1. `ApplyImmediately``=true`를 사용한 경우 ElastiCache API `DescribeReplicationGroups` 작업을 다음 파라미터와 함께 사용하여 복제 그룹의 상태를 모니터링합니다. 상태가 *수정 중*에서 *사용 가능*으로 변경되면 스케일 업된 새 복제 그룹에 쓰기를 시작할 수 있습니다.
   + `ReplicationGroupId` - 복제 그룹의 이름입니다. 모든 복제 그룹 대신 특정 복제 그룹을 설명하려면 이 파라미터를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=DescribeReplicationGroups
   	   &ReplicationGroupId=MyReplGroup
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html) 섹션을 참조하세요.

## 복제본이 있는 Valkey 또는 Redis OSS 클러스터 스케일 다운
<a name="Scaling.RedisReplGrps.ScaleDown"></a>

다음 섹션에서는 복제본 노드가 있는 Valkey 또는 Redis OSS(클러스터 모드 비활성화됨) 클러스터를 소형 노드 유형으로 축소하는 방법을 살펴봅니다. 성공을 위해 새로운 소형 노드 유형이 모든 데이터와 오버헤드를 수용할 만큼 충분히 큰지 확인하는 것이 매우 중요합니다. 자세한 내용은 [충분한 메모리를 확보하여 Valkey 또는 Redis OSS 스냅샷 생성](BestPractices.BGSAVE.md) 단원을 참조하십시오.

**참고**  
r6gd 노드 유형을 실행하는 클러스터의 경우 r6gd 노드 패밀리 내의 노드 크기로만 조정할 수 있습니다.

**중요**  
파라미터 그룹이 `reserved-memory`를 사용하여 Valkey 또는 Redis OSS 오버헤드에 대한 메모리를 구분한 경우, 조정을 시작하기 전에 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 파라미터 그룹이 있어야 합니다. 또는 `reserved-memory-percent`를 사용하고 새 클러스터에 대해 해당 파라미터 그룹을 사용하도록 사용자 지정 파라미터 그룹을 수정할 수 있습니다.  
`reserved-memory-percent`를 사용할 경우에는 이렇게 하지 않아도 됩니다.  
자세한 내용은 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md) 단원을 참조하십시오.

**Topics**

### 복제본을 사용하여 Valkey 또는 Redis OSS 클러스터 스케일 다운(콘솔)
<a name="Scaling.RedisReplGrps.ScaleDown.CON"></a>

다음 절차는 ElastiCache 콘솔을 사용하여 복제본 노드가 있는 Valkey 또는 Redis OSS 클러스터를 소형 노드 유형으로 조정합니다.

**복제본 노드가 있는 Valkey 또는 Redis OSS 클러스터를 스케일 다운하려면(콘솔)**

1. 소형 노드 유형이 데이터 및 오버헤드 요구 사항에 적합한지 확인합니다.

1. 파라미터 그룹이 `reserved-memory`를 사용하여 Valkey 또는 Redis OSS 오버헤드에 대한 메모리를 구분한 경우, 새 노드 유형에 대해 올바른 메모리 양을 구분하는 사용자 지정 파라미터 그룹이 있어야 합니다.

   또는 `reserved-memory-percent`를 사용하여 사용자 지정 파라미터 그룹을 수정할 수 있습니다. 자세한 내용은 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md) 단원을 참조하십시오.

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 클러스터 목록에서 스케일 다운할 클러스터를 선택합니다. 이 클러스터는 Clustered Valkey 또는 Redis OSS 엔진이 아닌 Valkey 또는 Redis OSS 엔진을 실행해야 합니다.

1. **수정**을 선택합니다.

1. [**Modify Cluster**] 마법사에서 다음을 수행합니다.

   1. [**Node type**] 목록에서 스케일 다운할 노드 유형을 선택합니다.

   1. `reserved-memory`를 사용하여 메모리를 관리할 경우 [**Parameter Group**] 목록에서 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 파라미터 그룹을 선택합니다.

1. 스케일 다운 프로세스를 즉시 수행하려면 [**Apply immediately**] 확인란을 선택합니다. [**Apply immediately**] 확인란을 선택하지 않고 비워 두면 이 클러스터의 다음 유지 관리 기간 중 스케일 다운 프로세스가 수행됩니다.

1. **수정**을 선택합니다.

1. 클러스터의 상태가 *수정 중*에서 *사용 가능*으로 변경되면 클러스터가 새 노드 유형으로 조정된 것입니다. 애플리케이션에서 엔드포인트를 업데이트할 필요가 없습니다.

### Valkey 또는 Redis OSS 복제 그룹 스케일 다운(AWS CLI)
<a name="Scaling.RedisReplGrps.ScaleUp.CLI"></a>

다음 절차는AWS CLI를 사용하여 복제 그룹을 현재 노드 유형에서 새롭고 더 작은 노드 유형으로 조정합니다. 이 프로세스 중에 ElastiCache는 DNS 항목이 새 노드를 가리키도록 해당 항목을 업데이트합니다. 따라서 애플리케이션의 엔드포인트를 업데이트할 필요가 없습니다. Valkey 7.2 이상 또는 Redis OSS 5.0.5 이상의 경우 클러스터가 계속 온라인 상태를 유지하고 들어오는 요청을 처리하는 동안 자동 장애 조치(failover) 지원 클러스터를 조정할 수 있습니다. 버전 4.0.10 이하의 경우, DNS 항목이 업데이트되는 동안 프라이머리 노드에서 이전 버전에 대한 읽기 및 쓰기가 잠깐 중단될 수 있습니다.

그러나 읽기 전용 복제본 클러스터에서 읽기는 계속 중단되지 않습니다.

더 작은 노드 유형으로 축소하는 데 걸리는 시간은 노드 유형 및 현재 클러스터에 있는 데이터의 양에 따라 달라집니다.

**Valkey 또는 Redis OSS 복제 그룹을 스케일 다운하려면(AWS CLI)**

1. 다음 파라미터로AWS CLI`list-allowed-node-type-modifications` 명령을 실행하여 축소할 수 있는 노드 유형을 결정합니다.
   + `--replication-group-id` - 복제 그룹의 이름입니다. 모든 복제 그룹 대신 특정 복제 그룹을 설명하려면 이 파라미터를 사용하세요.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications \
   	    --replication-group-id my-repl-group
   ```

   Windows의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications ^
   	    --replication-group-id my-repl-group
   ```

   이 작업의 출력은 다음과 같습니다(JSON 형식).

   ```
   {
   	    "ScaleDownModifications": [
   	        "cache.m3.2xlarge", 
   	        "cache.m3.large", 
   	        "cache.m3.xlarge", 
   	        "cache.m4.10xlarge", 
   	        "cache.m4.2xlarge", 
   	        "cache.m4.4xlarge", 
   	        "cache.m4.large", 
   	        "cache.m4.xlarge", 
   	        "cache.r3.2xlarge", 
   	        "cache.r3.4xlarge", 
   	        "cache.r3.8xlarge", 
   	        "cache.r3.large", 
   	        "cache.r3.xlarge"
   	    ]
   	}
   ```

   자세한 내용은 *AWS CLI참조*의 [list-allowed-node-type-modifications](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-allowed-node-type-modifications.html) 섹션을 참조하세요.

1. 다음 파라미터와 함께 `modify-replication-group` 명령을 사용하여AWS CLI현재 복제 그룹을 새 노드 유형으로 확장합니다.
   + `--replication-group-id` - 복제 그룹의 이름입니다.
   + `--cache-node-type` - 이 복제 그룹에 있는 클러스터의 새롭고 더 작은 노드 유형입니다. 이 값은 이전 단계의 `list-allowed-node-type-modifications` 명령에 의해 반환되는 인스턴스 유형 중 하나여야 합니다.
   + `--cache-parameter-group-name` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `--apply-immediately` - 스케일 업 프로세스가 즉시 적용되도록 합니다. 스케일 업 작업을 다음 유지 관리 기간으로 연기하려면 `--no-apply-immediately`를 사용하세요.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache modify-replication-group \
   	    --replication-group-id my-repl-group \
   	    --cache-node-type cache.t2.small  \
   	    --cache-parameter-group-name redis32-m3-2xl \
   	    --apply-immediately
   ```

   Windows의 경우:

   ```
   aws elasticache modify-replication-group ^
   	    --replication-group-id my-repl-group ^
   	    --cache-node-type cache.t2.small  ^
   	    --cache-parameter-group-name redis32-m3-2xl \
   	    --apply-immediately
   ```

   이 명령의 출력은 다음과 같습니다(JSON 형식).

   ```
   {"ReplicationGroup": {
   	        "Status": "available", 
   	        "Description": "Some description", 
   	        "NodeGroups": [
   	            {
   	                "Status": "available", 
   	                "NodeGroupMembers": [
   	                    {
   	                        "CurrentRole": "primary", 
   	                        "PreferredAvailabilityZone": "us-west-2b", 
   	                        "CacheNodeId": "0001", 
   	                        "ReadEndpoint": {
   	                            "Port": 6379, 
   	                            "Address": "my-repl-group-001.8fdx4s.0001.usw2.cache.amazonaws.com"
   	                        }, 
   	                        "CacheClusterId": "my-repl-group-001"
   	                    }, 
   	                    {
   	                        "CurrentRole": "replica", 
   	                        "PreferredAvailabilityZone": "us-west-2c", 
   	                        "CacheNodeId": "0001", 
   	                        "ReadEndpoint": {
   	                            "Port": 6379, 
   	                            "Address": "my-repl-group-002.8fdx4s.0001.usw2.cache.amazonaws.com"
   	                        }, 
   	                        "CacheClusterId": "my-repl-group-002"
   	                    }
   	                ], 
   	                "NodeGroupId": "0001", 
   	                "PrimaryEndpoint": {
   	                    "Port": 6379, 
   	                    "Address": "my-repl-group.8fdx4s.ng.0001.usw2.cache.amazonaws.com"
   	                }
   	            }
   	        ], 
   	        "ReplicationGroupId": "my-repl-group", 
   	        "SnapshotRetentionLimit": 1, 
   	        "AutomaticFailover": "disabled", 
   	        "SnapshotWindow": "12:00-13:00", 
   	        "SnapshottingClusterId": "my-repl-group-002", 
   	        "MemberClusters": [
   	            "my-repl-group-001", 
   	            "my-repl-group-002", 
   	        ], 
   	        "PendingModifiedValues": {}
   	    }
   	}
   ```

   자세한 내용은 *AWS CLI참조*의 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html) 섹션을 참조하세요.

1. `--apply-immediately` 파라미터를 사용한 경우 다음 파라미터와 함께 `describe-replication-group` 명령을 사용하여AWS CLI복제 그룹의 상태를 모니터링합니다. 상태가 *수정 중*에서 *사용 가능*으로 변경되면 축소된 새 복제 그룹에 쓰기를 시작할 수 있습니다.
   + `--replication-group-id` - 복제 그룹의 이름입니다. 모든 복제 그룹 대신 특정 복제 그룹을 설명하려면 이 파라미터를 사용하세요.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache describe-replication-group \
   	    --replication-group-id my-replication-group
   ```

   Windows의 경우:

   ```
   aws elasticache describe-replication-groups ^
   	    --replication-group-id my-replication-group
   ```

   자세한 내용은 *AWS CLI참조*에서 [describe-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-replication-groups.html)를 참조하세요.

### Valkey 또는 Redis OSS 복제 그룹 스케일 다운(ElastiCache API)
<a name="Scaling.RedisReplGrps.ScaleDown.API"></a>

다음 절차는 ElastiCache API를 사용하여 복제 그룹을 현재 노드 유형에서 새롭고 더 작은 노드 유형으로 조정합니다. 이 프로세스 중에 ElastiCache는 DNS 항목이 새 노드를 가리키도록 해당 항목을 업데이트합니다. 따라서 애플리케이션의 엔드포인트를 업데이트할 필요가 없습니다. Valkey 7.2 이상 또는 Redis OSS 5.0.5 이상의 경우 클러스터가 계속 온라인 상태를 유지하고 들어오는 요청을 처리하는 동안 자동 장애 조치(failover) 지원 클러스터를 조정할 수 있습니다. Redis OSS 버전 4.0.10 이하에서, DNS 항목이 업데이트되는 동안 프라이머리 노드에서 이전 버전에 대한 읽기 및 쓰기가 잠깐 중단될 수 있습니다. 그러나 읽기 전용 복제본 클러스터에서 읽기는 계속 중단되지 않습니다.

더 작은 노드 유형으로 축소하는 데 걸리는 시간은 노드 유형 및 현재 클러스터에 있는 데이터의 양에 따라 달라집니다.

**Valkey 또는 Redis OSS 복제 그룹 스케일 다운하려면(ElastiCache API)**

1. 다음 파라미터와 함께 ElastiCache API `ListAllowedNodeTypeModifications` 작업을 사용하여 축소할 수 있는 노드 유형을 확인합니다.
   + `ReplicationGroupId` - 복제 그룹의 이름입니다. 모든 복제 그룹 대신 특정 복제 그룹을 설명하려면 이 파라미터를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeModifications
   	   &ReplicationGroupId=MyReplGroup
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ListAllowedNodeTypeModifications](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListAllowedNodeTypeModifications.html) 섹션을 참조하세요.

1. 다음 파라미터와 함께 `ModifyReplicationGroup` ElastiCache API 작업을 사용하여 현재 복제 그룹을 새 노드 유형으로 확장합니다.
   + `ReplicationGroupId` - 복제 그룹의 이름입니다.
   + `CacheNodeType` - 이 복제 그룹에 있는 클러스터의 새롭고 더 작은 노드 유형입니다. 이 값은 이전 단계의 `ListAllowedNodeTypeModifications` 작업에 의해 반환되는 인스턴스 유형 중 하나여야 합니다.
   + `CacheParameterGroupName` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `ApplyImmediately` - 스케일 업 프로세스가 즉시 적용되도록 하려면 `true`로 설정합니다. 축소 프로세스를 다음 유지 관리 기간으로 연기하려면 `ApplyImmediately``=false`를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ModifyReplicationGroup
   	   &ApplyImmediately=true
   	   &CacheNodeType=cache.m3.2xlarge
   	   &CacheParameterGroupName=redis32-m3-2xl
   	   &ReplicationGroupId=myReplGroup
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20141201T220302Z
   	   &Version=2014-12-01
   	   &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
   	   &X-Amz-Date=20141201T220302Z
   	   &X-Amz-SignedHeaders=Host
   	   &X-Amz-Expires=20141201T220302Z
   	   &X-Amz-Credential=<credential>
   	   &X-Amz-Signature=<signature>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html) 섹션을 참조하세요.

1. `ApplyImmediately``=true`를 사용한 경우 ElastiCache API `DescribeReplicationGroups` 작업을 다음 파라미터와 함께 사용하여 복제 그룹의 상태를 모니터링합니다. 상태가 *수정 중*에서 *사용 가능*으로 변경되면 축소된 새 복제 그룹에 쓰기를 시작할 수 있습니다.
   + `ReplicationGroupId` - 복제 그룹의 이름입니다. 모든 복제 그룹 대신 특정 복제 그룹을 설명하려면 이 파라미터를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=DescribeReplicationGroups
   	   &ReplicationGroupId=MyReplGroup
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html) 섹션을 참조하세요.

## 읽기 용량 늘리기
<a name="Scaling.RedisReplGrps.ScaleOut"></a>

읽기 용량을 늘리려면 읽기 전용 복제본(최대 5개)을 Valkey 또는 Redis OSS 복제 그룹에 추가합니다.

ElastiCache 콘솔, 또는 ElastiCache API를 사용하여 Valkey 또는 Redis OSS 클러스터의 읽기 용량을 조정할 수 ElastiCache.AWS CLI자세한 내용은 [Valkey 또는 Redis OSS에 대한 읽기 전용 복제본 추가(클러스터 모드 비활성화됨)](Replication.AddReadReplica.md) 단원을 참조하십시오.

## 읽기 용량 줄이기
<a name="Scaling.RedisReplGrps.ScaleIn"></a>

읽기 용량을 줄이려면 복제본이 있는 Valkey 또는 Redis OSS 클러스터(API/CLI에서 *복제 그룹*이라고 함)에서 하나 이상의 읽기 전용 복제본을 삭제합니다. 클러스터가 자동 장애 조치가 활성화된 다중 AZ인 경우 먼저 다중 AZ를 비활성화해야 마지막 읽기 전용 복제본을 삭제할 수 있습니다. 자세한 내용은 [복제 그룹 수정](Replication.Modify.md) 단원을 참조하십시오.

자세한 내용은 [Valkey 또는 Redis OSS에 대한 읽기 전용 복제본 삭제(클러스터 모드 비활성화됨)](Replication.RemoveReadReplica.md) 단원을 참조하십시오.

# Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 규모 조정
<a name="scaling-redis-cluster-mode-enabled"></a>

클러스터에 대한 수요 변화에 따라 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 내 샤드 수를 변경해 성능을 향상시키거나 비용을 줄이도록 결정할 수 있습니다. 이와 같이 하려면 온라인 수평적 조정을 사용하는 것이 좋은데, 이 방법은 조정 프로세스 중에도 클러스터가 계속해서 요청을 처리하도록 하기 때문입니다.

클러스터를 다시 조정하도록 결정할 수 있는 조건은 다음과 같습니다.
+ **메모리 부족:**

  클러스터의 노드에서 메모리가 부족하면 데이터를 저장 및 요청 처리에 더 많은 리소스를 사용하도록 확장을 결정할 수 있습니다.

  *FreeableMemory*, *SwapUsage* 및 *BytesUsedForCache* 지표를 모니터링해 노드에서 메모리가 부족한지 확인할 수 있습니다.
+ **CPU 또는 네트워크 병목 현상:**

  클러스터에서 지연 시간/처리량 문제가 발생하면 문제를 해결하기 위해 확장이 필요할 수 있습니다.

  *CPUUtilization*, *NetworkBytesIn*, *NetworkBytesOut*, *CurrConnections* 및 *NewConnections* 지표를 모니터링해 지연 시간 및 처리량 수준을 모니터링할 수 있습니다.
+ **클러스터가 과도하게 조정됨:**

  축소와 같은 클러스터에 대한 현재 수요는 성능을 저하시키지 않고 비용을 줄입니다.

  다음 *FreeableMemory*, *SwapUsage*, *BytesUsedForCache*, *CPUUtilization*, *NetworkBytesIn*, *NetworkBytesOut*, *CurrConnections* 및 *NewConnections* 지표를 사용하여 클러스터의 사용을 모니터링해 안전하게 스케일 인할 수 있는지 확인할 수 있습니다.

**조정의 성능 영향**  
오프라인 프로세스를 사용해 조정하는 경우, 프로세스 중 상당 부분에서 클러스터가 오프라인 상태가 되기 때문에 요청을 처리할 수 없습니다. 온라인 방법을 사용해 조정하는 경우, 클러스터가 조정 작업 전체에서 계속해서 요청을 처리할 수 있음에도 불구하고 조정은 컴퓨팅 집약적인 작업이기 때문에 성능 저하가 발생합니다. 저하 정도는 일반적인 CPU 사용률과 데이터에 따라 달라집니다.

Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터를 조정하는 방법에는 수평적 스케일링과 수직적 스케일링이라는 두 가지 방법이 있습니다.
+ 수평 확장에서는 노드 그룹(샤드)을 추가 또는 제거하여 복제 그룹 내 노드 그룹(샤드) 수를 변경할 수 있습니다. 온라인 리샤딩 프로세스를 통해 클러스터가 들어오는 요청을 계속 처리하는 동안 확장/축소할 수 있습니다.

  새 클러스터에서 이전 클러스터에서와 달리 슬롯을 구성합니다. 오프라인 방법에만 해당합니다.
+ 수직 확장 - 노드 유형을 변경하여 클러스터의 크기를 조정합니다. 온라인 수직 확장을 통해 클러스터가 들어오는 요청을 계속 처리하는 동안 확장/축소할 수 있습니다.

클러스터의 크기 및 메모리 용량을 스케일 인하거나 스케일 다운하여 줄이는 경우, 새 구성에 데이터 및 Valkey 또는 Redis OSS 오버헤드가 충분한 메모리가 있는지 확인합니다.

자세한 내용은 [노드 크기 선택](CacheNodes.SelectSize.md) 단원을 참조하십시오.

**Contents**
+ [

## Valkey 또는 Redis OSS(클러스터 모드 활성화됨)에 대한 오프라인 리샤딩
](#redis-cluster-resharding-offline)
+ [

## Valkey 또는 Redis OSS(클러스터 모드 활성화됨)에 대한 온라인 리샤딩
](#redis-cluster-resharding-online)
  + [

### 온라인 리샤딩을 사용하여 샤드 추가
](#redis-cluster-resharding-online-add)
  + [

### 온라인 리샤딩을 사용하여 샤드 제거
](#redis-cluster-resharding-online-remove)
    + [

#### 샤드 제거(콘솔)
](#redis-cluster-resharding-online-remove-console)
    + [

#### 샤드 제거(AWS CLI)
](#redis-cluster-resharding-online-remove-cli)
    + [

#### 샤드 제거(ElastiCache API)
](#redis-cluster-resharding-online-remove-api)
  + [

### 온라인 샤드 재분배
](#redis-cluster-resharding-online-rebalance)
    + [

#### 온라인 샤드 재분배(콘솔)
](#redis-cluster-resharding-online-rebalance-console)
    + [

#### 온라인 샤드 재분배(AWS CLI)
](#redis-cluster-resharding-online-rebalance-cli)
    + [

#### 온라인 샤드 재분배(ElastiCache API)
](#redis-cluster-resharding-online-rebalance-api)
+ [

# 노드 유형 수정하여 온라인 수직 조정
](redis-cluster-vertical-scaling.md)
  + [

## 온라인 확장
](redis-cluster-vertical-scaling.md#redis-cluster-vertical-scaling-scaling-up)
    + [

### Valkey 또는 Redis OSS 클러스터 스케일 업(콘솔)
](redis-cluster-vertical-scaling.md#redis-cluster-vertical-scaling-console)
    + [

### Valkey 또는 Redis OSS 클러스터 스케일 업(AWS CLI)
](redis-cluster-vertical-scaling.md#Scaling.RedisStandalone.ScaleUp.CLI)
    + [

### Valkey 또는 Redis OSS 클러스터 스케일 업(ElastiCache API)
](redis-cluster-vertical-scaling.md#VeticalScaling.RedisReplGrps.ScaleUp.API)
  + [

## 온라인 축소
](redis-cluster-vertical-scaling.md#redis-cluster-vertical-scaling-scaling-down)
    + [

### Valkey 또는 Redis OSS 클러스터 스케일 다운(콘솔)
](redis-cluster-vertical-scaling.md#redis-cluster-vertical-scaling-down-console)
    + [

### Valkey 또는 Redis OSS 클러스터 스케일 다운(AWS CLI)
](redis-cluster-vertical-scaling.md#Scaling.RedisStandalone.ScaleDown.CLI)
    + [

### Valkey 또는 Redis OSS 클러스터 스케일 다운(ElastiCache API)
](redis-cluster-vertical-scaling.md#Scaling.Vertical.ScaleDown.API)

## Valkey 또는 Redis OSS(클러스터 모드 활성화됨)에 대한 오프라인 리샤딩
<a name="redis-cluster-resharding-offline"></a>

오프라인 리샤딩 재구성의 주요 이점은 복제 그룹에서 단순히 샤드를 추가 또는 제거하는 것 이상을 할 수 있다는 점입니다. 오프라인 리샤딩 및 리밸런싱 시 복제 그룹의 샤드 수를 변경하는 것 이외에 다음을 수행할 수 있습니다.

**참고**  
데이터 계층화가 활성화된 Valkey 또는 Redis OSS 클러스터에서는 오프라인 리샤딩이 지원되지 않습니다. 자세한 내용은 [ElastiCache의 데이터 계층화](data-tiering.md) 단원을 참조하십시오.
+ 복제 그룹의 노드 유형을 변경합니다.
+ 복제 그룹의 각 노드에 대한 가용 영역을 지정합니다.
+ 최신 엔진 버전으로 업그레이드합니다.
+ 각 샤드 내 복제 노드 수를 독립적으로 지정합니다.
+ 각 샤드에 대한 키스페이스를 지정합니다.

오프라인 샤드 재구성의 주요 단점은 프로세스의 복원 부분에서 클러스터가 오프라인 상태가 되어 애플리케이션에서 엔드포인트를 업데이트할 때까지 이 상태가 지속된다는 점입니다. 클러스터가 오프라인 상태도 지속되는 기간은 클러스터 내 데이터의 양에 따라 달라집니다.

**샤드 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터를 오프라인 상태에서 재구성하려면**

1. 기존 Valkey 또는 Redis OSS 클러스터의 수동 백업을 생성합니다. 자세한 내용은 [수동 백업 지원](backups-manual.md) 단원을 참조하십시오.

1. 백업에서 복원해 새 클러스터를 생성합니다. 자세한 내용은 [백업에서 새 캐시로 복원](backups-restoring.md) 단원을 참조하십시오.

1. 애플리케이션에서 엔드포인트를 새 클러스터의 엔드포인트로 업데이트합니다. 자세한 내용은 [ElastiCache에서 연결 엔드포인트 찾기](Endpoints.md) 단원을 참조하십시오.

## Valkey 또는 Redis OSS(클러스터 모드 활성화됨)에 대한 온라인 리샤딩
<a name="redis-cluster-resharding-online"></a>

ElastiCache Valkey 7.2 이상 또는 Redis OSS 버전 3.2.10 이상에서 온라인 리샤딩 및 샤드 리밸런싱을 사용하면 가동 중지 시간 없이 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터를 동적으로 확장할 수 있습니다. 이러한 접근 방식은 조정 또는 재분배 진행 중에도 클러스터에서 계속해서 요청을 처리할 수 있음을 의미합니다.

다음을 수행할 수 있습니다.
+ **스케일 아웃** - Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터(복제 그룹)에 샤드(노드 그룹)를 추가해 읽기 및 쓰기 용량을 늘립니다.

  복제 그룹에 샤드를 하나 이상 추가하는 경우 각 샤드의 노드 수는 기존의 가장 작은 샤드에 있는 노드 수와 동일합니다.
+ **스케일 인** - Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 제거해 읽기 및 쓰기 용량을 줄여 비용을 절감합니다.
+ **재분배** - Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드 간에 키스페이스를 이동해 샤드 간에 키스페이스가 가급적 균일하게 분배되도록 합니다.

다음을 수행할 수 없습니다.
+ **독립적으로 샤드 구성:**

  샤드의 키스페이스는 독립적으로 지정할 수 없습니다. 이렇게 하려면 오프라인 프로세스를 사용해야 합니다.

현재, ElastiCache 온라인 리샤딩 및 리밸런싱에는 다음 제한 사항이 적용됩니다.
+ 이러한 프로세스에는 Valkey 7.2 이상 또는 Redis OSS 3.2.10 이상이 필요합니다. 엔진 버전 업그레이드에 대한 자세한 내용은 [ElastiCache용 버전 관리](VersionManagement.md) 섹션을 참조하세요.
+ 슬롯 또는 키스페이스와 대용량 항목에 대한 제한 사항이 있습니다.

  샤드 내 키에 대용량 항목이 포함되어 있으면 확장 또는 재분배 시 해당 키가 새 샤드로 마이그레이션되지 않습니다. 이 기능으로 인해 불균형 샤드가 발생할 수 있습니다.

  샤드 내 키에 대용량 항목(직렬화 후 256MB보다 큰 항목)이 포함되어 있으면 축소 시 해당 샤드는 삭제되지 않습니다. 이 기능으로 인해 일부 샤드가 삭제되지 않을 수 있습니다.
+ 확장 시 새 샤드의 노드 수는 기존의 가장 작은 노드 수와 동일합니다.
+ 확장 시 기존의 모든 샤드에 공통된 태그는 새 샤드로 복사됩니다.
+ 글로벌 데이터 스토어 클러스터를 스케일 아웃할 때, ElastiCache는 기존 노드 중 하나에서 새 노드로 함수를 자동으로 복제하지 않습니다. 클러스터를 스케일 아웃한 후, 새 샤드에 함수를 로드하여 모든 샤드가 동일한 함수를 갖도록 하는 것이 좋습니다.

**참고**  
ElastiCache for Valkey 7.2 이상 및 ElastiCache for Redis OSS 버전 7 이상: 클러스터를 스케일 아웃할 때 ElastiCache는 기존 노드 중 하나(임의로 선택됨)에 로드된 함수를 새 노드에 자동으로 복제합니다. 애플리케이션이 [함수](https://valkey.io/topics/functions-intro/)를 사용하는 경우, 모든 함수를 모든 샤드에 로드해야 스케일 아웃으로 인해 클러스터가 샤드마다 다른 함수 정의로 종결되는 상황을 방지할 수 있습니다.

자세한 내용은 [온라인 클러스터 크기 조정](best-practices-online-resharding.md) 단원을 참조하십시오.

AWS Management Console,AWS CLI및 ElastiCache API를 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터를 수평적으로 조정 또는 재분배할 수 있습니다.

### 온라인 리샤딩을 사용하여 샤드 추가
<a name="redis-cluster-resharding-online-add"></a>

AWS Management ConsoleAWS CLI또는 ElastiCache API를 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에 샤드를 추가할 수 있습니다. Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에 샤드를 추가하면 기존 샤드의 모든 태그가 새 샤드로 복사됩니다.

**Topics**

#### 샤드 추가(콘솔)
<a name="redis-cluster-resharding-online-add-console"></a>

AWS Management Console를 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에 하나 이상의 샤드를 추가할 수 있습니다. 다음 절차에서는 이러한 프로세스를 설명합니다.

**Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에 샤드를 추가하려면**

1. [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 클러스터** 또는 **Redis OSS 클러스터**를 선택합니다.

1. 샤드를 추가하고자 하는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터의 이름 왼쪽에 있는 상자가 아닌 클러스터의 이름을 찾아 선택합니다.
**작은 정보**  
Valkey 또는 Redis OSS(클러스터 모드 활성화됨)는 **모드** 열에 **Clustered Valkey** 또는 **Clustered Redis OSS**를 표시합니다.

1. [**Add shard**]를 선택합니다.

   1. [**Number of shards to be added**]에서 이 클러스터에 추가할 샤드 수를 선택합니다.

   1. [**Availability zone(s)**]에서는 [**No preference**] 또는 [**Specify availability zones**]을 선택합니다.

   1. [**Specify availability zones**]를 선택한 경우 각 샤드의 각 노드에 대해 [Availability Zones] 목록에서 노드의 가용 영역을 선택합니다.

   1. **추가**를 선택합니다.

#### 샤드 추가(AWS CLI)
<a name="redis-cluster-resharding-online-add-cli"></a>

다음 프로세스에서는AWS CLI를 사용해 샤드를 추가하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 재구성하는 방법을 설명합니다.

`modify-replication-group-shard-configuration`에 다음 파라미터를 사용합니다.

**Parameters**
+ `--apply-immediately` - 필수입니다. 즉시 시작할 샤드 재구성 작업을 지정합니다.
+ `--replication-group-id` - 필수입니다. 샤드 재구성 작업을 수행할 복제 그룹(클러스터)을 지정합니다.
+ `--node-group-count` - 필수입니다. 작업 완료 시 존재할 샤드(노드 그룹) 수를 지정합니다. 샤드를 추가하는 경우 `--node-group-count`의 값은 현재 샤드 수보다 커야 합니다.

  경우에 따라 `--resharding-configuration`을 사용해 복제 그룹의 각 노드에 대한 가용 영역을 지정할 수 있습니다.
+ `--resharding-configuration` – 선택 사항입니다. 복제 그룹 내에 있는 각 샤드의 개별 노드에 대한 기본 가용 영역 목록입니다. 이 파라미터는 `--node-group-count`의 값이 현재 샤드 수보다 큰 경우에만 사용합니다. 샤드 추가 시 이 파라미터를 사용하지 않으면 Amazon ElastiCache에서는 새 노드에 대해 가용 영역을 선택합니다.

다음 예에서는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) `my-cluster`이라는 클러스터에서 샤드 4개에 대한 키스페이스를 재구성합니다. 또한 이 예에서는 각 샤드 내 개별 노드에 대한 가용 영역을 지정합니다. 작업이 즉시 시작됩니다.

**Example - 샤드 추가**  
Linux, macOS, Unix의 경우:  

```
aws elasticache modify-replication-group-shard-configuration \
    --replication-group-id my-cluster \
    --node-group-count 4 \
    --resharding-configuration \
        "PreferredAvailabilityZones=us-east-2a,us-east-2c" \
        "PreferredAvailabilityZones=us-east-2b,us-east-2a" \
        "PreferredAvailabilityZones=us-east-2c,us-east-2d" \
        "PreferredAvailabilityZones=us-east-2d,us-east-2c" \
    --apply-immediately
```
Windows의 경우:  

```
aws elasticache modify-replication-group-shard-configuration ^
    --replication-group-id my-cluster ^
    --node-group-count 4 ^
    --resharding-configuration ^
        "PreferredAvailabilityZones=us-east-2a,us-east-2c" ^
        "PreferredAvailabilityZones=us-east-2b,us-east-2a" ^
        "PreferredAvailabilityZones=us-east-2c,us-east-2d" ^
        "PreferredAvailabilityZones=us-east-2d,us-east-2c" ^
    --apply-immediately
```

자세한 내용은AWS CLI설명서의 [modify-replication-group-shard-configuration](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group-shard-configuration.html)을 참조하세요.

#### 샤드 추가(ElastiCache API)
<a name="redis-cluster-resharding-online-add-api"></a>

ElastiCache API에서 `ModifyReplicationGroupShardConfiguration` 작업을 사용해 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 내 샤드를 온라인으로 재구성할 수 있습니다.

`ModifyReplicationGroupShardConfiguration`에 다음 파라미터를 사용합니다.

**Parameters**
+ `ApplyImmediately=true` - 필수입니다. 즉시 시작할 샤드 재구성 작업을 지정합니다.
+ `ReplicationGroupId` - 필수입니다. 샤드 재구성 작업을 수행할 복제 그룹(클러스터)을 지정합니다.
+ `NodeGroupCount` - 필수입니다. 작업 완료 시 존재할 샤드(노드 그룹) 수를 지정합니다. 샤드를 추가하는 경우 `NodeGroupCount`의 값은 현재 샤드 수보다 커야 합니다.

  경우에 따라 `ReshardingConfiguration`을 사용해 복제 그룹의 각 노드에 대한 가용 영역을 지정할 수 있습니다.
+ `ReshardingConfiguration` – 선택 사항입니다. 복제 그룹 내에 있는 각 샤드의 개별 노드에 대한 기본 가용 영역 목록입니다. 이 파라미터는 `NodeGroupCount`의 값이 현재 샤드 수보다 큰 경우에만 사용합니다. 샤드 추가 시 이 파라미터를 사용하지 않으면 Amazon ElastiCache에서는 새 노드에 대해 가용 영역을 선택합니다.

다음 프로세스에서는 ElastiCache API를 사용해 샤드를 추가하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 재구성하는 방법을 설명합니다.

**Example - 샤드 추가**  
다음 예에서는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 `my-cluster`에 노드 그룹을 추가해 작업을 완료하면 노드 그룹이 총 4개가 됩니다. 또한 이 예에서는 각 샤드 내 개별 노드에 대한 가용 영역을 지정합니다. 작업이 즉시 시작됩니다.  

```
https://elasticache.us-east-2.amazonaws.com/
    ?Action=ModifyReplicationGroupShardConfiguration
    &ApplyImmediately=true
    &NodeGroupCount=4
    &ReplicationGroupId=my-cluster
    &ReshardingConfiguration.ReshardingConfiguration.1.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2a 
    &ReshardingConfiguration.ReshardingConfiguration.1.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2c 
    &ReshardingConfiguration.ReshardingConfiguration.2.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2b 
    &ReshardingConfiguration.ReshardingConfiguration.2.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2a 
    &ReshardingConfiguration.ReshardingConfiguration.3.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2c 
    &ReshardingConfiguration.ReshardingConfiguration.3.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2d 
    &ReshardingConfiguration.ReshardingConfiguration.4.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2d 
    &ReshardingConfiguration.ReshardingConfiguration.4.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2c 
    &Version=2015-02-02
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20171002T192317Z
    &X-Amz-Credential=<credential>
```

자세한 내용은 ElastiCache API 참조의 [ModifyReplicationGroupShardConfiguration](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html)을 참조하세요.

### 온라인 리샤딩을 사용하여 샤드 제거
<a name="redis-cluster-resharding-online-remove"></a>

AWS Management ConsoleAWS CLI또는 ElastiCache API를 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 제거할 수 있습니다.

**Topics**
+ [

#### 샤드 제거(콘솔)
](#redis-cluster-resharding-online-remove-console)
+ [

#### 샤드 제거(AWS CLI)
](#redis-cluster-resharding-online-remove-cli)
+ [

#### 샤드 제거(ElastiCache API)
](#redis-cluster-resharding-online-remove-api)

#### 샤드 제거(콘솔)
<a name="redis-cluster-resharding-online-remove-console"></a>

다음 프로세스에서는AWS Management Console을 사용해 샤드를 제거하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 재구성하는 방법을 설명합니다.

복제 그룹에서 노드 그룹(샤드)을 제거하기 전에 ElastiCache에서는 모든 데이터가 나머지 샤드에 맞는지 확인합니다. 데이터가 맞으면 요청된 대로 지정된 샤드가 복제 그룹에서 삭제됩니다. 데이터가 나머지 노드 그룹에 맞지 않으면 프로세스가 종료되고 복제 그룹은 요청이 작성되기 전과 동일한 노드 그룹 구성으로 남습니다.

AWS Management Console를 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 하나 이상의 샤드를 제거할 수 있습니다. 복제 그룹에서 샤드를 모두 제거할 수는 없습니다. 대신 복제 그룹을 삭제해야 합니다. 자세한 내용은 [복제 그룹 삭제](Replication.DeletingRepGroup.md) 단원을 참조하십시오. 다음 절차는 샤드를 하나 이상 삭제하는 프로세스를 설명합니다.

**Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 제거하려면**

1. [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 클러스터** 또는 **Redis OSS 클러스터**를 선택합니다.

1. 샤드를 제거하고자 하는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터의 이름 왼쪽에 있는 상자가 아닌 클러스터의 이름을 찾아 선택합니다.
**작은 정보**  
Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터의 **샤드** 열에는 1보다 크거나 같은 값이 있습니다.

1. 샤드 목록에서 삭제하고자 하는 각 샤드의 이름 왼쪽에 있는 상자를 선택합니다.

1. [**Delete shard**]를 선택합니다.

#### 샤드 제거(AWS CLI)
<a name="redis-cluster-resharding-online-remove-cli"></a>

다음 프로세스에서는AWS CLI을 사용해 샤드를 제거하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 재구성하는 방법을 설명합니다.

**중요**  
복제 그룹에서 노드 그룹(샤드)을 제거하기 전에 ElastiCache에서는 모든 데이터가 나머지 샤드에 맞는지 확인합니다. 데이터가 맞으면 요청된 대로 지정된 샤드(`--node-groups-to-remove`)가 복제 그룹에서 삭제되고 해당 샤드의 키스페이스가 나머지 샤드로 매핑됩니다. 데이터가 나머지 노드 그룹에 맞지 않으면 프로세스가 종료되고 복제 그룹은 요청이 작성되기 전과 동일한 노드 그룹 구성으로 남습니다.

AWS CLI를 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 하나 이상의 샤드를 제거할 수 있습니다. 복제 그룹에서 샤드를 모두 제거할 수는 없습니다. 대신 복제 그룹을 삭제해야 합니다. 자세한 내용은 [복제 그룹 삭제](Replication.DeletingRepGroup.md) 단원을 참조하십시오.

`modify-replication-group-shard-configuration`에 다음 파라미터를 사용합니다.

**Parameters**
+ `--apply-immediately` - 필수입니다. 즉시 시작할 샤드 재구성 작업을 지정합니다.
+ `--replication-group-id` - 필수입니다. 샤드 재구성 작업을 수행할 복제 그룹(클러스터)을 지정합니다.
+ `--node-group-count` - 필수입니다. 작업 완료 시 존재할 샤드(노드 그룹) 수를 지정합니다. 샤드를 제거하는 경우 `--node-group-count`의 값은 현재 샤드 수보다 작아야 합니다.

  
+ `--node-groups-to-remove` - `--node-group-count`가 노드 그룹(샤드)의 현재 수보다 작은 경우에만 필요합니다. 복제 그룹에서 제거할 샤드(노드 그룹) ID 목록입니다.

다음 절차는 샤드를 하나 이상 삭제하는 프로세스를 설명합니다.

**Example - 샤드 제거**  
다음 예에서는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 `my-cluster`에서 노드 그룹 두 개를 제거해 작업을 완료하면 노드 그룹이 총 2개가 됩니다. 제거된 샤드의 키스페이스는 나머지 샤드 간에 균일하게 분배됩니다.  
Linux, macOS, Unix의 경우:  

```
aws elasticache modify-replication-group-shard-configuration \
    --replication-group-id my-cluster \
    --node-group-count 2 \
    --node-groups-to-remove "0002" "0003" \
    --apply-immediately
```
Windows의 경우:  

```
aws elasticache modify-replication-group-shard-configuration ^
    --replication-group-id my-cluster ^
    --node-group-count 2 ^
    --node-groups-to-remove "0002" "0003" ^
    --apply-immediately
```

#### 샤드 제거(ElastiCache API)
<a name="redis-cluster-resharding-online-remove-api"></a>

ElastiCache API에서 `ModifyReplicationGroupShardConfiguration` 작업을 사용해 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 내 샤드를 온라인으로 재구성할 수 있습니다.

다음 프로세스에서는 ElastiCache API를 사용해 샤드를 제거하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 재구성하는 방법을 설명합니다.

**중요**  
복제 그룹에서 노드 그룹(샤드)을 제거하기 전에 ElastiCache에서는 모든 데이터가 나머지 샤드에 맞는지 확인합니다. 데이터가 맞으면 요청된 대로 지정된 샤드(`NodeGroupsToRemove`)가 복제 그룹에서 삭제되고 해당 샤드의 키스페이스가 나머지 샤드로 매핑됩니다. 데이터가 나머지 노드 그룹에 맞지 않으면 프로세스가 종료되고 복제 그룹은 요청이 작성되기 전과 동일한 노드 그룹 구성으로 남습니다.

ElastiCache API를 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 하나 이상 제거할 수 있습니다. 복제 그룹에서 샤드를 모두 제거할 수는 없습니다. 대신 복제 그룹을 삭제해야 합니다. 자세한 내용은 [복제 그룹 삭제](Replication.DeletingRepGroup.md) 단원을 참조하십시오.

`ModifyReplicationGroupShardConfiguration`에 다음 파라미터를 사용합니다.

**Parameters**
+ `ApplyImmediately=true` - 필수입니다. 즉시 시작할 샤드 재구성 작업을 지정합니다.
+ `ReplicationGroupId` - 필수입니다. 샤드 재구성 작업을 수행할 복제 그룹(클러스터)을 지정합니다.
+ `NodeGroupCount` - 필수입니다. 작업 완료 시 존재할 샤드(노드 그룹) 수를 지정합니다. 샤드를 제거하는 경우 `NodeGroupCount`의 값은 현재 샤드 수보다 작아야 합니다.
+ `NodeGroupsToRemove` - `--node-group-count`가 노드 그룹(샤드)의 현재 수보다 작은 경우에만 필요합니다. 복제 그룹에서 제거할 샤드(노드 그룹) ID 목록입니다.

다음 절차는 샤드를 하나 이상 삭제하는 프로세스를 설명합니다.

**Example - 샤드 제거**  
다음 예에서는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 `my-cluster`에서 노드 그룹 두 개를 제거해 작업을 완료하면 노드 그룹이 총 2개가 됩니다. 제거된 샤드의 키스페이스는 나머지 샤드 간에 균일하게 분배됩니다.  

```
https://elasticache.us-east-2.amazonaws.com/
    ?Action=ModifyReplicationGroupShardConfiguration
    &ApplyImmediately=true
    &NodeGroupCount=2
    &ReplicationGroupId=my-cluster
    &NodeGroupsToRemove.member.1=0002
    &NodeGroupsToRemove.member.2=0003
    &Version=2015-02-02
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20171002T192317Z
    &X-Amz-Credential=<credential>
```

### 온라인 샤드 재분배
<a name="redis-cluster-resharding-online-rebalance"></a>

AWS Management ConsoleAWS CLI또는 ElastiCache API를 사용하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터의 샤드를 리밸런싱할 수 있습니다.

**Topics**
+ [

#### 온라인 샤드 재분배(콘솔)
](#redis-cluster-resharding-online-rebalance-console)
+ [

#### 온라인 샤드 재분배(AWS CLI)
](#redis-cluster-resharding-online-rebalance-cli)
+ [

#### 온라인 샤드 재분배(ElastiCache API)
](#redis-cluster-resharding-online-rebalance-api)

#### 온라인 샤드 재분배(콘솔)
<a name="redis-cluster-resharding-online-rebalance-console"></a>

다음 프로세스에서는AWS Management Console을 사용해 샤드를 재분배하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 재구성하는 방법을 설명합니다.

**Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드 간에 키스페이스를 재분배하려면**

1. [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 클러스터** 또는 **Redis OSS 클러스터**를 선택합니다.

1. 재분배하고자 하는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터의 이름 왼쪽에 있는 상자가 아닌 클러스터의 이름을 선택합니다.
**작은 정보**  
Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터의 **샤드** 열에는 1보다 크거나 같은 값이 있습니다.

1. [**Rebalance**]를 선택합니다.

1. 메시지가 나타나면 **Rebalance**를 선택합니다. 다음과 유사한 메시지가 표시될 수 있습니다. *Slots in the replication group are uniformly distributed. Nothing to do. (Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidReplicationGroupState; Request ID: 2246cebd-9721-11e7-8d5b-e1b0f086c8cf)*. 이러한 메시지가 표시되면 [**Cancel**]을 선택합니다.

#### 온라인 샤드 재분배(AWS CLI)
<a name="redis-cluster-resharding-online-rebalance-cli"></a>

`modify-replication-group-shard-configuration`에 다음 파라미터를 사용합니다.

**Parameters**
+ `-apply-immediately` - 필수입니다. 즉시 시작할 샤드 재구성 작업을 지정합니다.
+ `--replication-group-id` - 필수입니다. 샤드 재구성 작업을 수행할 복제 그룹(클러스터)을 지정합니다.
+ `--node-group-count` - 필수입니다. 클러스터 내 모드 샤드 간에 키스페이스를 재분배하려면 이 값이 현재 샤드 수와 동일해야 합니다.

다음 프로세스에서는AWS CLI을 사용해 샤드를 재분배하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 재구성하는 방법을 설명합니다.

**Example - 클러스터에서 샤드 재분배**  
다음 예에서는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 `my-cluster`에서 슬롯을 재분배하여 슬롯이 가급적 균일하게 분산되도록 합니다. `--node-group-count`(`4`)의 값은 클러스터 내 현재 샤드 수입니다.  
Linux, macOS, Unix의 경우:  

```
aws elasticache modify-replication-group-shard-configuration \
    --replication-group-id my-cluster \
    --node-group-count 4 \
    --apply-immediately
```
Windows의 경우:  

```
aws elasticache modify-replication-group-shard-configuration ^
    --replication-group-id my-cluster ^
    --node-group-count 4 ^
    --apply-immediately
```

#### 온라인 샤드 재분배(ElastiCache API)
<a name="redis-cluster-resharding-online-rebalance-api"></a>

ElastiCache API에서 `ModifyReplicationGroupShardConfiguration` 작업을 사용해 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 내 샤드를 온라인으로 재구성할 수 있습니다.

`ModifyReplicationGroupShardConfiguration`에 다음 파라미터를 사용합니다.

**Parameters**
+ `ApplyImmediately=true` - 필수입니다. 즉시 시작할 샤드 재구성 작업을 지정합니다.
+ `ReplicationGroupId` - 필수입니다. 샤드 재구성 작업을 수행할 복제 그룹(클러스터)을 지정합니다.
+ `NodeGroupCount` - 필수입니다. 클러스터 내 모드 샤드 간에 키스페이스를 재분배하려면 이 값이 현재 샤드 수와 동일해야 합니다.

다음 프로세스에서는 ElastiCache API를 사용해 샤드를 재분배하여 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터에서 샤드를 재구성하는 방법을 설명합니다.

**Example - 클러스터 재분배**  
다음 예에서는 Valkey 또는 Redis OSS(클러스터 모드 활성화됨) 클러스터 `my-cluster`에서 슬롯을 재분배하여 슬롯이 가급적 균일하게 분산되도록 합니다. `NodeGroupCount`(`4`)의 값은 클러스터 내 현재 샤드 수입니다.  

```
https://elasticache.us-east-2.amazonaws.com/
    ?Action=ModifyReplicationGroupShardConfiguration
    &ApplyImmediately=true
    &NodeGroupCount=4
    &ReplicationGroupId=my-cluster
    &Version=2015-02-02
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20171002T192317Z
    &X-Amz-Credential=<credential>
```

# 노드 유형 수정하여 온라인 수직 조정
<a name="redis-cluster-vertical-scaling"></a>

Valkey 버전 7.2 이상 또는 Redis OSS 버전 3.2.10 이상에서 온라인 수직적 스케일링을 사용하면 가동 중지 시간을 최소화하면서 Valkey 또는 Redis OSS 클러스터를 동적으로 규모를 조정할 수 있습니다. 이를 통해 Valkey 또는 Redis OSS 클러스터는 조정 중에도 요청을 처리할 수 있습니다.

**참고**  
데이터 계층화 클러스터(예: r6gd 노드 유형을 사용하는 클러스터)와 데이터 계층화를 사용하지 않는 클러스터(예: r6g 노드 유형을 사용하는 클러스터) 간에는 크기 조정이 지원되지 않습니다. 자세한 내용은 [ElastiCache의 데이터 계층화](data-tiering.md) 단원을 참조하십시오.

다음을 수행할 수 있습니다.
+ **스케일 업** - Valkey 또는 Redis OSS 클러스터의 노드 유형을 더 큰 노드 유형을 사용하도록 조정하여 읽기 및 쓰기 용량을 늘립니다.

  ElastiCache에서는 온라인 상태로 요청을 처리하는 동안 클러스터 크기를 동적으로 조정합니다.
+ **축소** - 더 작은 노드를 사용하도록 노드 유형을 조정하여 읽기 및 쓰기 용량을 줄입니다. 마찬가지로, ElastiCache에서는 온라인 상태로 요청을 처리하는 동안 클러스터 크기를 동적으로 조정합니다. 이 경우, 노드를 축소하여 비용을 절감할 수 있습니다.

**참고**  
확장 및 축소 프로세스는 새로 선택한 노드 유형을 사용하여 클러스터를 생성하고 새 노드를 이전 노드와 동기화합니다. 원활한 확장/축소 흐름을 위해 다음을 수행합니다.  
ENI(탄력적 네트워크 인터페이스) 용량이 충분한지 확인합니다. 축소된 경우, 작은 노드에 예상 트래픽을 흡수할 수 있는 충분한 메모리가 있어야 합니다.  
메모리 관리 모범 사례에 대해서는 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md)를 참조합니다.
수직 확장 프로세스는 온라인 상태를 유지하도록 설계되었지만 이전 노드와 새 노드 간의 데이터 동기화에 의존합니다. 데이터 트래픽이 최소 수준일 것으로 예상되는 시간 동안 확장/축소를 시작하는 것이 좋습니다.
가능한 경우, 준비 환경에서 조정 중 애플리케이션 동작을 테스트합니다.

**Contents**
+ [

## 온라인 확장
](#redis-cluster-vertical-scaling-scaling-up)
  + [

### Valkey 또는 Redis OSS 클러스터 스케일 업(콘솔)
](#redis-cluster-vertical-scaling-console)
  + [

### Valkey 또는 Redis OSS 클러스터 스케일 업(AWS CLI)
](#Scaling.RedisStandalone.ScaleUp.CLI)
  + [

### Valkey 또는 Redis OSS 클러스터 스케일 업(ElastiCache API)
](#VeticalScaling.RedisReplGrps.ScaleUp.API)
+ [

## 온라인 축소
](#redis-cluster-vertical-scaling-scaling-down)
  + [

### Valkey 또는 Redis OSS 클러스터 스케일 다운(콘솔)
](#redis-cluster-vertical-scaling-down-console)
  + [

### Valkey 또는 Redis OSS 클러스터 스케일 다운(AWS CLI)
](#Scaling.RedisStandalone.ScaleDown.CLI)
  + [

### Valkey 또는 Redis OSS 클러스터 스케일 다운(ElastiCache API)
](#Scaling.Vertical.ScaleDown.API)

## 온라인 확장
<a name="redis-cluster-vertical-scaling-scaling-up"></a>

**Topics**
+ [

### Valkey 또는 Redis OSS 클러스터 스케일 업(콘솔)
](#redis-cluster-vertical-scaling-console)
+ [

### Valkey 또는 Redis OSS 클러스터 스케일 업(AWS CLI)
](#Scaling.RedisStandalone.ScaleUp.CLI)
+ [

### Valkey 또는 Redis OSS 클러스터 스케일 업(ElastiCache API)
](#VeticalScaling.RedisReplGrps.ScaleUp.API)

### Valkey 또는 Redis OSS 클러스터 스케일 업(콘솔)
<a name="redis-cluster-vertical-scaling-console"></a>

다음 절차에서는 ElastiCache Management Console을 사용하여 Valkey 또는 Redis OSS 클러스터를 스케일 업하는 방법에 대해 설명합니다. 이 프로세스 동안 클러스터는 가동 중지 시간을 최소화하면서 요청을 계속 처리합니다.

**Valkey 또는 Redis OSS 클러스터를 스케일 업하려면(콘솔)**

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 클러스터** 또는 **Redis OSS 클러스터**를 선택합니다.

1. 클러스터 목록에서 클러스터를 선택합니다.

1. **수정**을 선택합니다.

1. [**Modify Cluster**] 마법사에서 다음을 수행합니다.

   1. [**Node type**] 목록에서 조정할 노드 유형을 선택합니다. 확장하려면, 기존 노드보다 큰 노드 유형을 선택합니다.

1. 확장 프로세스를 즉시 수행하려면 **즉시 적용** 상자를 선택합니다. [**Apply immediately**] 상자를 선택하지 않으면 이 클러스터의 다음 유지 관리 기간 중 스케일 업 프로세스가 수행됩니다.

1. **수정**을 선택합니다.

   이전 단계에서 [**Apply immediately**]를 선택한 경우 클러스터의 상태가 *수정 중*으로 변경됩니다. 상태가 *사용 가능*으로 변경되면 수정이 완료되고 새 클러스터의 사용을 시작할 수 있습니다.

### Valkey 또는 Redis OSS 클러스터 스케일 업(AWS CLI)
<a name="Scaling.RedisStandalone.ScaleUp.CLI"></a>

다음 절차에서는AWS CLI를 사용하여 Valkey 또는 Redis OSS 클러스터를 스케일 업하는 방법에 대해 설명합니다. 이 프로세스 동안 클러스터는 가동 중지 시간을 최소화하면서 요청을 계속 처리합니다.

**Valkey 또는 Redis OSS 클러스터를 스케일 업하려면(AWS CLI)**

1. 다음 파라미터로 `list-allowed-node-type-modifications` 명령을 실행AWS CLI하여 스케일 업할 수 있는 노드 유형을 결정합니다.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications \
   	    --replication-group-id my-replication-group-id
   ```

   Windows의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications ^
   	    --replication-group-id my-replication-group-id
   ```

   위 명령의 출력은 다음과 같습니다(JSON 형식).

   ```
   {
   	    "ScaleUpModifications": [
   	        "cache.m3.2xlarge", 
   	        "cache.m3.large", 
   	        "cache.m3.xlarge", 
   	        "cache.m4.10xlarge", 
   	        "cache.m4.2xlarge", 
   	        "cache.m4.4xlarge", 
   	        "cache.m4.large", 
   	        "cache.m4.xlarge", 
   	        "cache.r3.2xlarge", 
   	        "cache.r3.4xlarge", 
   	        "cache.r3.8xlarge", 
   	        "cache.r3.large", 
   	        "cache.r3.xlarge"
   	    ]
   	       "ScaleDownModifications": [
   	        "cache.t2.micro", 
   	        "cache.t2.small ", 
   	        "cache.t2.medium",
   	       	"cache.t1.small "
   	    ], 
   }
   ```

   자세한 내용은 *AWS CLI참조*의 [list-allowed-node-type-modifications](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-allowed-node-type-modifications.html) 섹션을 참조하세요.

1. 명령과 다음 파라미터를 사용하여AWS CLI`modify-replication-group` 더 큰 새 노드 유형으로 확장하도록 복제 그룹을 수정합니다.
   + `--replication-group-id` - 확장하는 복제 그룹의 이름입니다.
   + `--cache-node-type` - 클러스터를 조정할 새 노드 유형입니다. 이 값은 1단계의 `list-allowed-node-type-modifications` 명령에 의해 반환되는 노드 유형 중 하나여야 합니다.
   + `--cache-parameter-group-name` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `--apply-immediately` - 스케일 업 프로세스가 즉시 적용되도록 합니다. 스케일 업 프로세스를 클러스터의 다음 유지 관리 기간으로 연기하려면 `--no-apply-immediately` 파라미터를 사용하세요.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache modify-replication-group  \
   	    --replication-group-id my-redis-cluster \
   	    --cache-node-type cache.m3.xlarge \	    
   	    --apply-immediately
   ```

   Windows의 경우:

   ```
   aws elasticache modify-replication-group ^
   	    --replication-group-id my-redis-cluster ^
   	    --cache-node-type cache.m3.xlarge ^	   
   	    --apply-immediately
   ```

   위 명령의 출력은 다음과 같습니다(JSON 형식).

   ```
   {
   		"ReplicationGroup": {
           "Status": "modifying",
           "Description": "my-redis-cluster",
           "NodeGroups": [
               {
                   "Status": "modifying",
                   "Slots": "0-16383",
                   "NodeGroupId": "0001",
                   "NodeGroupMembers": [
                       {
                           "PreferredAvailabilityZone": "us-east-1f",
                           "CacheNodeId": "0001",
                           "CacheClusterId": "my-redis-cluster-0001-001"
                       },
                       {
                           "PreferredAvailabilityZone": "us-east-1d",
                           "CacheNodeId": "0001",
                           "CacheClusterId": "my-redis-cluster-0001-002"
                       }
                   ]
               }
           ],
           "ConfigurationEndpoint": {
               "Port": 6379,
               "Address": "my-redis-cluster.r7gdfi.clustercfg.use1.cache.amazonaws.com"
           },
           "ClusterEnabled": true,
           "ReplicationGroupId": "my-redis-cluster",
           "SnapshotRetentionLimit": 1,
           "AutomaticFailover": "enabled",
           "SnapshotWindow": "07:30-08:30",
           "MemberClusters": [
               "my-redis-cluster-0001-001",
               "my-redis-cluster-0001-002"
           ],
           "CacheNodeType": "cache.m3.xlarge",
            "DataTiering": "disabled"
           "PendingModifiedValues": {}
       }
   }
   ```

   자세한 내용은 *AWS CLI참조*의 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html) 섹션을 참조하세요.

1. 를 사용한 경우 다음 파라미터와 함께 명령을 사용하여AWS CLI`describe-cache-clusters` 클러스터의 상태를 `--apply-immediately`확인합니다. 상태가 *사용 가능*으로 변경되면 새롭고 더 큰 클러스터 노드를 사용할 수 있습니다.

### Valkey 또는 Redis OSS 클러스터 스케일 업(ElastiCache API)
<a name="VeticalScaling.RedisReplGrps.ScaleUp.API"></a>

다음 절차는 ElastiCache API를 사용하여 클러스터를 현재 노드 유형에서 새롭고 더 큰 노드 유형으로 조정합니다. 이 프로세스 중에 ElastiCache는 DNS 항목이 새 노드를 가리키도록 해당 항목을 업데이트합니다. 따라서 애플리케이션의 엔드포인트를 업데이트할 필요가 없습니다. Valkey 7.2 이상 Redis OSS 5.0.5 이상의 경우 클러스터가 계속 온라인 상태를 유지하고 들어오는 요청을 처리하는 동안 자동 장애 조치(failover) 지원 클러스터를 조정할 수 있습니다. Redis OSS 버전 4.0.10 이하의 경우, DNS 항목이 업데이트되는 동안 프라이머리 노드에서 이전 버전에 대한 읽기 및 쓰기가 잠깐 중단될 수 있습니다.

대형 노드 유형으로 스케일 업하는 데 걸리는 시간은 노드 유형 및 현재 클러스터에 있는 데이터의 양에 따라 달라집니다.

**Valkey 또는 Redis OSS 캐시 클러스터를 스케일 업하려면(ElastiCache API)**

1. 다음 파라미터와 함께 ElastiCache API `ListAllowedNodeTypeModifications` 작업을 사용하여 확장할 수 있는 노드 유형을 확인합니다.
   + `ReplicationGroupId` - 복제 그룹의 이름입니다. 모든 복제 그룹 대신 특정 복제 그룹을 설명하려면 이 파라미터를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeModifications
   	   &ReplicationGroupId=MyReplGroup
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ListAllowedNodeTypeModifications](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListAllowedNodeTypeModifications.html) 섹션을 참조하세요.

1. 다음 파라미터와 함께 `ModifyReplicationGroup` ElastiCache API 작업을 사용하여 현재 복제 그룹을 새 노드 유형으로 확장합니다.
   + `ReplicationGroupId` - 복제 그룹의 이름입니다.
   + `CacheNodeType` - 이 복제 그룹에 있는 클러스터의 새로운 대형 노드 유형입니다. 이 값은 이전 단계의 `ListAllowedNodeTypeModifications` 작업에 의해 반환되는 인스턴스 유형 중 하나여야 합니다.
   + `CacheParameterGroupName` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `ApplyImmediately` - 스케일 업 프로세스가 즉시 적용되도록 하려면 `true`로 설정합니다. 스케일 업 프로세스를 다음 유지 관리 기간으로 연기하려면 `ApplyImmediately``=false`를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ModifyReplicationGroup
   	   &ApplyImmediately=true
   	   &CacheNodeType=cache.m3.2xlarge
   	   &CacheParameterGroupName=redis32-m3-2xl
   	   &ReplicationGroupId=myReplGroup
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20141201T220302Z
   	   &Version=2014-12-01
   	   &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
   	   &X-Amz-Date=20141201T220302Z
   	   &X-Amz-SignedHeaders=Host
   	   &X-Amz-Expires=20141201T220302Z
   	   &X-Amz-Credential=<credential>
   	   &X-Amz-Signature=<signature>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html) 섹션을 참조하세요.

1. `ApplyImmediately``=true`를 사용한 경우 ElastiCache API `DescribeReplicationGroups` 작업을 다음 파라미터와 함께 사용하여 복제 그룹의 상태를 모니터링합니다. 상태가 *수정 중*에서 *사용 가능*으로 변경되면 스케일 업된 새 복제 그룹에 쓰기를 시작할 수 있습니다.
   + `ReplicationGroupId` - 복제 그룹의 이름입니다. 모든 복제 그룹 대신 특정 복제 그룹을 설명하려면 이 파라미터를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=DescribeReplicationGroups
   	   &ReplicationGroupId=MyReplGroup
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html) 섹션을 참조하세요.

## 온라인 축소
<a name="redis-cluster-vertical-scaling-scaling-down"></a>

**Topics**
+ [

### Valkey 또는 Redis OSS 클러스터 스케일 다운(콘솔)
](#redis-cluster-vertical-scaling-down-console)
+ [

### Valkey 또는 Redis OSS 클러스터 스케일 다운(AWS CLI)
](#Scaling.RedisStandalone.ScaleDown.CLI)
+ [

### Valkey 또는 Redis OSS 클러스터 스케일 다운(ElastiCache API)
](#Scaling.Vertical.ScaleDown.API)

### Valkey 또는 Redis OSS 클러스터 스케일 다운(콘솔)
<a name="redis-cluster-vertical-scaling-down-console"></a>

다음 절차에서는 ElastiCache Management Console을 사용하여 Valkey 또는 Redis OSS 클러스터를 스케일 다운하는 방법에 대해 설명합니다. 이 프로세스 동안 Valkey 또는 Redis OSS 클러스터는 가동 중지 시간을 최소화하면서 요청을 계속 처리합니다.

**Valkey 또는 Redis OSS 클러스터를 스케일 다운하려면(콘솔)**

1. 에 로그인AWS Management Console하고 [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey 클러스터** 또는 **Redis OSS 클러스터**를 선택합니다.

1. 클러스터 목록에서 원하는 클러스터를 선택합니다.

1. **수정**을 선택합니다.

1. [**Modify Cluster**] 마법사에서 다음을 수행합니다.

   1. [**Node type**] 목록에서 조정할 노드 유형을 선택합니다. 축소하려면, 기존 노드보다 작은 노드 유형을 선택합니다. 모든 노드 유형을 축소할 수 있는 것은 아닙니다.

1. 축소 프로세스를 즉시 수행하려면 **즉시 적용** 상자를 선택합니다. **즉시 적용** 상자를 선택하지 않으면 이 클러스터의 다음 유지 관리 기간 중 축소 프로세스가 수행됩니다.

1. **수정**을 선택합니다.

   이전 단계에서 [**Apply immediately**]를 선택한 경우 클러스터의 상태가 *수정 중*으로 변경됩니다. 상태가 *사용 가능*으로 변경되면 수정이 완료되고 새 클러스터의 사용을 시작할 수 있습니다.

### Valkey 또는 Redis OSS 클러스터 스케일 다운(AWS CLI)
<a name="Scaling.RedisStandalone.ScaleDown.CLI"></a>

다음 절차에서는AWS CLI를 사용하여 Valkey 또는 Redis OSS 클러스터를 스케일 다운하는 방법에 대해 설명합니다. 이 프로세스 동안 클러스터는 가동 중지 시간을 최소화하면서 요청을 계속 처리합니다.

**Valkey 또는 Redis OSS 클러스터를 스케일 다운하려면(AWS CLI)**

1. 다음 파라미터로 `list-allowed-node-type-modifications` 명령을 실행AWS CLI하여 축소할 수 있는 노드 유형을 결정합니다.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications \
   	    --replication-group-id my-replication-group-id
   ```

   Windows의 경우:

   ```
   aws elasticache list-allowed-node-type-modifications ^
   	    --replication-group-id my-replication-group-id
   ```

   위 명령의 출력은 다음과 같습니다(JSON 형식).

   ```
   {
   	    "ScaleUpModifications": [
   	        "cache.m3.2xlarge", 
   	        "cache.m3.large", 
   	        "cache.m3.xlarge", 
   	        "cache.m4.10xlarge", 
   	        "cache.m4.2xlarge", 
   	        "cache.m4.4xlarge", 
   	        "cache.m4.large", 
   	        "cache.m4.xlarge", 
   	        "cache.r3.2xlarge", 
   	        "cache.r3.4xlarge", 
   	        "cache.r3.8xlarge", 
   	        "cache.r3.large", 
   	        "cache.r3.xlarge"
   	    ]
   	
   	       "ScaleDownModifications": [
   	        "cache.t2.micro", 
   	        "cache.t2.small ", 
   	        "cache.t2.medium ",
     	      "cache.t1.small"
   	    ]
   }
   ```

   자세한 내용은 *AWS CLI참조*의 [list-allowed-node-type-modifications](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-allowed-node-type-modifications.html) 섹션을 참조하세요.

1. 명령과 다음 파라미터를 사용하여AWS CLI`modify-replication-group` 더 작은 새 노드 유형으로 축소하도록 복제 그룹을 수정합니다.
   + `--replication-group-id` - 축소하는 복제 그룹의 이름입니다.
   + `--cache-node-type` - 클러스터를 조정할 새 노드 유형입니다. 이 값은 1단계의 `list-allowed-node-type-modifications` 명령에 의해 반환되는 노드 유형 중 하나여야 합니다.
   + `--cache-parameter-group-name` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `--apply-immediately` - 스케일 업 프로세스가 즉시 적용되도록 합니다. 축소 프로세스를 클러스터의 다음 유지 관리 기간으로 연기하려면 `--no-apply-immediately` 파라미터를 사용하세요.

   Linux, macOS, Unix의 경우:

   ```
   aws elasticache modify-replication-group  \
   	    --replication-group-id my-redis-cluster \
   	    --cache-node-type cache.t2.micro \	    
   	    --apply-immediately
   ```

   Windows의 경우:

   ```
   aws elasticache modify-replication-group ^
   	    --replication-group-id my-redis-cluster ^
   	    --cache-node-type cache.t2.micro ^	   
   	    --apply-immediately
   ```

   위 명령의 출력은 다음과 같습니다(JSON 형식).

   ```
   {	
   		"ReplicationGroup": {
           "Status": "modifying",
           "Description": "my-redis-cluster",
           "NodeGroups": [
               {
                   "Status": "modifying",
                   "Slots": "0-16383",
                   "NodeGroupId": "0001",
                   "NodeGroupMembers": [
                       {
                           "PreferredAvailabilityZone": "us-east-1f",
                           "CacheNodeId": "0001",
                           "CacheClusterId": "my-redis-cluster-0001-001"
                       },
                       {
                           "PreferredAvailabilityZone": "us-east-1d",
                           "CacheNodeId": "0001",
                           "CacheClusterId": "my-redis-cluster-0001-002"
                       }
                   ]
               }
           ],
           "ConfigurationEndpoint": {
               "Port": 6379,
               "Address": "my-redis-cluster.r7gdfi.clustercfg.use1.cache.amazonaws.com"
           },
           "ClusterEnabled": true,
           "ReplicationGroupId": "my-redis-cluster",
           "SnapshotRetentionLimit": 1,
           "AutomaticFailover": "enabled",
           "SnapshotWindow": "07:30-08:30",
           "MemberClusters": [
               "my-redis-cluster-0001-001",
               "my-redis-cluster-0001-002"
           ],
           "CacheNodeType": "cache.t2.micro",
            "DataTiering": "disabled"
           "PendingModifiedValues": {}
       }
   }
   ```

   자세한 내용은 *AWS CLI참조*의 [modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html) 섹션을 참조하세요.

1. 를 사용한 경우 다음 파라미터와 함께 명령을 사용하여AWS CLI`describe-cache-clusters` 클러스터의 상태를 `--apply-immediately`확인합니다. 상태가 *사용 가능*으로 변경되면 새롭고 더 작은 클러스터 노드를 사용할 수 있습니다.

### Valkey 또는 Redis OSS 클러스터 스케일 다운(ElastiCache API)
<a name="Scaling.Vertical.ScaleDown.API"></a>

다음 절차는 ElastiCache API를 사용하여 복제 그룹을 현재 노드 유형에서 새롭고 더 작은 노드 유형으로 조정합니다. 이 프로세스 동안 Valkey 또는 Redis OSS 클러스터는 가동 중지 시간을 최소화하면서 요청을 계속 처리합니다.

더 작은 노드 유형으로 축소하는 데 걸리는 시간은 노드 유형 및 현재 클러스터에 있는 데이터의 양에 따라 달라집니다.

**축소(ElastiCache API)**

1. 다음 파라미터와 함께 ElastiCache API `ListAllowedNodeTypeModifications` 작업을 사용하여 축소할 수 있는 노드 유형을 확인합니다.
   + `ReplicationGroupId` - 복제 그룹의 이름입니다. 모든 복제 그룹 대신 특정 복제 그룹을 설명하려면 이 파라미터를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeModifications
   	   &ReplicationGroupId=MyReplGroup
   	   &Version=2015-02-02
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20150202T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ListAllowedNodeTypeModifications](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListAllowedNodeTypeModifications.html) 섹션을 참조하세요.

1. 다음 파라미터와 함께 `ModifyReplicationGroup` ElastiCache API 작업을 사용하여 현재 복제 그룹을 새 노드 유형으로 축소합니다.
   + `ReplicationGroupId` - 복제 그룹의 이름입니다.
   + `CacheNodeType` - 이 복제 그룹에 있는 클러스터의 새롭고 더 작은 노드 유형입니다. 이 값은 이전 단계의 `ListAllowedNodeTypeModifications` 작업에 의해 반환되는 인스턴스 유형 중 하나여야 합니다.
   + `CacheParameterGroupName` - [선택 사항] `reserved-memory`를 사용하여 클러스터의 예약된 메모리를 관리할 경우 이 파라미터를 사용합니다. 새 노드 유형에 대해 올바른 메모리 양을 예약하는 사용자 지정 캐시 파라미터 그룹을 지정합니다. `reserved-memory-percent`를 사용할 경우 이 파라미터를 생략할 수 있습니다.
   + `ApplyImmediately` - 축소 프로세스가 즉시 적용되도록 하려면 `true`로 설정합니다. 축소 프로세스를 다음 유지 관리 기간으로 연기하려면 `ApplyImmediately``=false`를 사용하세요.

   ```
   https://elasticache.us-west-2.amazonaws.com/
   	   ?Action=ModifyReplicationGroup
   	   &ApplyImmediately=true
   	   &CacheNodeType=cache.t2.micro
   	   &CacheParameterGroupName=redis32-m3-2xl
   	   &ReplicationGroupId=myReplGroup
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20141201T220302Z
   	   &Version=2014-12-01
   	   &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
   	   &X-Amz-Date=20141201T220302Z
   	   &X-Amz-SignedHeaders=Host
   	   &X-Amz-Expires=20141201T220302Z
   	   &X-Amz-Credential=<credential>
   	   &X-Amz-Signature=<signature>
   ```

   자세한 내용은 *Amazon ElastiCache API 참조*에서 [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html) 섹션을 참조하세요.