

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

# 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) 섹션을 참조하세요.