

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

# 규모 조정
<a name="scaling"></a>

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

다음은 수행하려는 조정 작업에 대한 올바른 주제를 찾는 데 도움이 됩니다.


**MemoryDB 스케일링**  

| 작업 | MemoryDB | 
| --- | --- | 
|  확장  |  [MemoryDB의 온라인 리샤딩](cluster-resharding-online.md)  | 
|  노드 유형 변경  |  [노드 유형 수정하여 온라인 수직 조정](cluster-vertical-scaling.md)  | 
|  샤드 수 변경  |  [MemoryDB 클러스터 크기 조정](scaling-cluster.md)  | 

# MemoryDB 클러스터 크기 조정
<a name="scaling-cluster"></a>

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

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

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

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

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

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

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

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

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

MemoryDB 클러스터를 조정하는 방법에는 수평 확장과 수직 확장이라는 두 가지 방법이 있습니다.
+ 수평 조정에서는 샤드를 추가 또는 제거하여 클러스터 내 샤드 수를 변경할 수 있습니다. 온라인 리샤딩 프로세스를 통해 클러스터가 들어오는 요청을 계속 처리하는 동안 확장/축소할 수 있습니다.
+ 수직 확장 - 노드 유형을 변경하여 클러스터의 크기를 조정합니다. 온라인 수직 확장을 통해 클러스터가 들어오는 요청을 계속 처리하는 동안 확장/축소할 수 있습니다.

스케일 인 또는 스케일 다운을 통해 클러스터의 크기와 메모리 용량을 줄이는 경우 새 구성에 데이터 및 엔진 오버헤드를 위한 충분한 메모리가 있는지 확인합니다.

# MemoryDB의 오프라인 리샤딩
<a name="cluster-resharding-offline"></a>

오프라인 리샤딩 재구성의 주요 이점은 클러스터에서 단순히 샤드를 추가 또는 제거하는 것 이상을 할 수 있다는 점입니다. 오프라인 리샤딩 시 클러스터의 샤드 수를 변경하는 것 이외에 다음을 수행할 수 있습니다.
+ 클러스터의 노드 유형을 변경합니다.
+ 최신 엔진 버전으로 업그레이드합니다.

**참고**  
데이터 계층화가 활성화된 클러스터에서는 오프라인 리샤딩이 지원되지 않습니다. 자세한 내용은 단원을 참조하십시오[데이터 계층화](data-tiering.md).

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

**샤드 MemoryDB 클러스터를 오프라인 상태에서 재구성하려면**

1. 기존 MemoryDB 클러스터의 수동 스냅샷을 생성합니다. 자세한 내용은 [수동 스냅샷 생성](snapshots-manual.md) 단원을 참조하십시오.

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

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

# MemoryDB의 온라인 리샤딩
<a name="cluster-resharding-online"></a>

MemoryDB에서 온라인 리샤딩을 사용하여 가동 중지 시간 없이 동적으로 MemoryDB의 규모를 조정할 수 있습니다. 이러한 접근 방식은 조정 또는 재분배 진행 중에도 클러스터에서 계속해서 요청을 처리할 수 있음을 의미합니다.

다음을 수행할 수 있습니다.
+ **스케일 아웃** - MemoryDB 클러스터에 샤드를 추가하여 읽기 및 쓰기 용량을 늘립니다.

  클러스터에 샤드를 하나 이상 추가하는 경우, 각 샤드의 노드 수는 기존의 가장 작은 샤드에 있는 노드 수와 동일합니다.
+ **스케일 인** – MemoryDB 클러스터에서 샤드를 제거해 읽기 및 쓰기 용량을 줄여 비용을 절감합니다.

현재, MemoryDB 온라인 리샤딩에는 다음 제한 사항이 적용됩니다.
+ 슬롯 또는 키스페이스와 대용량 항목에 대한 제한 사항이 있습니다.

  샤드 내 키에 대용량 항목이 포함되어 있으면 스케일 아웃 시 해당 키가 새 샤드로 마이그레이션되지 않습니다. 이 기능으로 인해 불균형 샤드가 발생할 수 있습니다.

  샤드 내 키에 대용량 항목(직렬화 후 256MB보다 큰 항목)이 포함되어 있으면 축소 시 해당 샤드는 삭제되지 않습니다. 이 기능으로 인해 일부 샤드가 삭제되지 않을 수 있습니다.
+ 스케일 아웃 시 새 샤드의 노드 수는 기존 샤드의 노드 수와 같습니다.

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

 AWS Management Console, AWS CLI및 MemoryDB API를 사용하여 MemoryDB 클러스터를 수평적 스케일링할 수 있습니다.

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

 AWS Management Console AWS CLI또는 MemoryDB API를 사용하여 MemoryDB 클러스터에 샤드를 추가할 수 있습니다.

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

 AWS Management Console 를 사용하여 MemoryDB 클러스터에 샤드를 하나 이상 추가할 수 있습니다. 다음 절차에서는 이러한 프로세스를 설명합니다.

****

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

1. 클러스터 목록에서 샤드를 추가할 클러스터 이름을 선택합니다.

1. **샤드 및 노드** 탭에서 샤드 **추가/삭제**를 선택합니다.

1. **새 샤드 수**에 원하는 샤드 수를 입력합니다.

1. 변경 내용을 저장하려면 **확인**을 선택하고 취소하려면 **취소**를 선택합니다.

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

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

`update-cluster`에 다음 파라미터를 사용합니다.

**파라미터**
+ `--cluster-name` - 필수입니다. 샤드 재구성 작업을 수행할 클러스터를 지정합니다.
+ `--shard-configuration` - 필수입니다. 샤드 수를 설정할 수 있습니다.
  + `ShardCount` - 이 속성을 설정하여 원하는 샤드 수를 지정합니다.

**Example**  
다음 예제에서는 클러스터 `my-cluster`의 샤드 수를 2로 수정합니다.  
Linux, macOS, Unix의 경우:  

```
aws memorydb update-cluster \
    --cluster-name my-cluster \
    --shard-configuration \
        ShardCount=2
```
Windows의 경우:  

```
aws memorydb update-cluster ^
    --cluster-name my-cluster ^
    --shard-configuration ^
        ShardCount=2
```

다음과 같은 JSON 응답을 반환합니다.

```
{
    "Cluster": {
        "Name": "my-cluster",
        "Status": "updating",
        "NumberOfShards": 2,
        "AvailabilityMode": "MultiAZ",
        "ClusterEndpoint": {
            "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
            "Port": 6379
        },
        "NodeType": "db.r6g.large",
        "EngineVersion": "6.2",
        "EnginePatchVersion": "6.2.6",
        "ParameterGroupName": "default.memorydb-redis6",
        "ParameterGroupStatus": "in-sync",
        "SubnetGroupName": "my-sg",
        "TLSEnabled": true,
        "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster",
        "SnapshotRetentionLimit": 0,
        "MaintenanceWindow": "wed:03:00-wed:04:00",
        "SnapshotWindow": "04:30-05:30",
        "DataTiering": "false",
        "AutoMinorVersionUpgrade": true
    }
}
```

상태가 *업데이트 중*에서 *사용 가능*으로 변경된 후 업데이트된 클러스터의 세부 정보를 보려면 다음 명령을 사용하세요.

Linux, macOS, Unix의 경우:

```
aws memorydb describe-clusters \
    --cluster-name my-cluster
    --show-shard-details
```

Windows의 경우:

```
aws memorydb describe-clusters ^
    --cluster-name my-cluster
    --show-shard-details
```

다음과 같은 JSON 응답을 반환합니다.

```
{
    "Clusters": [
        {
            "Name": "my-cluster",
            "Status": "available",
            "NumberOfShards": 2,
            "Shards": [
                {
                    "Name": "0001",
                    "Status": "available",
                    "Slots": "0-8191",
                    "Nodes": [
                        {
                            "Name": "my-cluster-0001-001",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1a",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        },
                        {
                            "Name": "my-cluster-0001-002",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1b",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        }
                    ],
                    "NumberOfNodes": 2
                },
                {
                    "Name": "0002",
                    "Status": "available",
                    "Slots": "8192-16383",
                    "Nodes": [
                        {
                            "Name": "my-cluster-0002-001",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1b",
                            "CreateTime": "2021-08-22T14:26:18.693000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        },
                        {
                            "Name": "my-cluster-0002-002",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1a",
                            "CreateTime": "2021-08-22T14:26:18.765000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        }
                    ],
                    "NumberOfNodes": 2
                }
            ],
            "ClusterEndpoint": {
                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                "Port": 6379
            },
            "NodeType": "db.r6g.large",
            "EngineVersion": "6.2",
            "EnginePatchVersion": "6.2.6",
            "ParameterGroupName": "default.memorydb-redis6",
            "ParameterGroupStatus": "in-sync",
            "SubnetGroupName": "my-sg",
            "TLSEnabled": true,
            "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster",
            "SnapshotRetentionLimit": 0,
            "MaintenanceWindow": "wed:03:00-wed:04:00",
            "SnapshotWindow": "04:30-05:30",
            "ACLName": "my-acl",
            "DataTiering": "false",
            "AutoMinorVersionUpgrade": true
        }
    ]
}
```

자세한 내용은 AWS CLI 명령 참조의 [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/memorydb/update-cluster.html)를 참조하세요.

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

MemoryDB API에서 `UpdateCluster` 작업을 사용해 MemoryDB 클러스터 내 샤드를 온라인으로 재구성할 수 있습니다.

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

**파라미터**
+ `ClusterName` - 필수입니다. 샤드 재구성 작업을 수행할 클러스터를 지정합니다.
+ `ShardConfiguration` - 필수입니다. 샤드 수를 설정할 수 있습니다.
  + `ShardCount` - 이 속성을 설정하여 원하는 샤드 수를 지정합니다.

자세한 내용은 [UpdateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateCluster.html)를 참조하세요.

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

 AWS Management Console AWS CLI또는 MemoryDB API를 사용하여 MemoryDB 클러스터에서 샤드를 제거할 수 있습니다.

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

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

**중요**  
클러스터에서 샤드를 제거하기 전에 MemoryDB에서는 모든 데이터가 나머지 샤드에 맞는지 확인합니다. 데이터가 맞으면 요청에 따라 샤드가 클러스터에서 삭제됩니다. 데이터가 나머지 샤드에 맞지 않으면 프로세스가 종료되고 클러스터는 요청이 작성되기 전과 동일한 샤드 구성으로 남습니다.

 AWS Management Console 를 사용하여 MemoryDB 클러스터에서 하나 이상의 샤드를 제거할 수 있습니다. 클러스터의 모든 샤드를 제거할 수는 없습니다. 대신 클러스터를 삭제해야 합니다. 자세한 내용은 [5단계: 클러스터 삭제](getting-started.md#clusters.delete) 단원을 참조하십시오. 다음 절차는 샤드를 하나 이상 삭제하는 프로세스를 설명합니다.

****

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

1. 클러스터 목록에서 샤드를 제거할 클러스터 이름을 선택합니다.

1. **샤드 및 노드** 탭에서 샤드 추가/삭제를 선택**합니다.**

1. **새 샤드 수**에 원하는 샤드 수(최소 1개)를 입력합니다.

1. 변경 내용을 저장하려면 **확인**을 선택하고, 취소하려면 **취소**를선택합니다.

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

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

**중요**  
클러스터에서 샤드를 제거하기 전에 MemoryDB에서는 모든 데이터가 나머지 샤드에 맞는지 확인합니다. 데이터가 맞으면 요청된 대로 샤드가 클러스터에서 삭제되고 해당 샤드의 키스페이스가 나머지 샤드로 매핑됩니다. 데이터가 나머지 샤드에 맞지 않으면 프로세스가 종료되고 클러스터는 요청이 작성되기 전과 동일한 샤드 구성으로 남습니다.

 AWS CLI 를 사용하여 MemoryDB 클러스터에서 하나 이상의 샤드를 제거할 수 있습니다. 클러스터의 모든 샤드를 제거할 수는 없습니다. 대신 클러스터를 삭제해야 합니다. 자세한 내용은 [5단계: 클러스터 삭제](getting-started.md#clusters.delete) 단원을 참조하십시오.

`update-cluster`에 다음 파라미터를 사용합니다.

**파라미터**
+ `--cluster-name` - 필수입니다. 샤드 재구성 작업을 수행할 클러스터를 지정합니다.
+ `--shard-configuration` - 필수입니다. `ShardCount` 속성을 사용하여 샤드 수를 설정할 수 있습니다.

  `ShardCount` - 이 속성을 설정하여 원하는 샤드 수를 지정합니다.

**Example**  
다음 예제에서는 클러스터 `my-cluster`의 샤드 수를 2로 수정합니다.  
Linux, macOS, Unix의 경우:  

```
aws memorydb update-cluster \
    --cluster-name my-cluster \
    --shard-configuration \
        ShardCount=2
```
Windows의 경우:  

```
aws memorydb update-cluster ^
    --cluster-name my-cluster ^
    --shard-configuration ^
        ShardCount=2
```

다음과 같은 JSON 응답을 반환합니다.

```
{
    "Cluster": {
        "Name": "my-cluster",
        "Status": "updating",
        "NumberOfShards": 2,
        "AvailabilityMode": "MultiAZ",
        "ClusterEndpoint": {
            "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
            "Port": 6379
        },
        "NodeType": "db.r6g.large",
        "EngineVersion": "6.2",
        "EnginePatchVersion": "6.2.6",
        "ParameterGroupName": "default.memorydb-redis6",
        "ParameterGroupStatus": "in-sync",
        "SubnetGroupName": "my-sg",
        "TLSEnabled": true,
        "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster",
        "SnapshotRetentionLimit": 0,
        "MaintenanceWindow": "wed:03:00-wed:04:00",
        "SnapshotWindow": "04:30-05:30",
        "DataTiering": "false",
        "AutoMinorVersionUpgrade": true
    }
}
```

상태가 *업데이트 중*에서 *사용 가능*으로 변경된 후 업데이트된 클러스터의 세부 정보를 보려면 다음 명령을 사용하세요.

Linux, macOS, Unix의 경우:

```
aws memorydb describe-clusters \
    --cluster-name my-cluster
    --show-shard-details
```

Windows의 경우:

```
aws memorydb describe-clusters ^
    --cluster-name my-cluster
    --show-shard-details
```

다음과 같은 JSON 응답을 반환합니다.

```
{
    "Clusters": [
        {
            "Name": "my-cluster",
            "Status": "available",
            "NumberOfShards": 2,
            "Shards": [
                {
                    "Name": "0001",
                    "Status": "available",
                    "Slots": "0-8191",
                    "Nodes": [
                        {
                            "Name": "my-cluster-0001-001",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1a",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        },
                        {
                            "Name": "my-cluster-0001-002",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1b",
                            "CreateTime": "2021-08-21T20:22:12.405000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        }
                    ],
                    "NumberOfNodes": 2
                },
                {
                    "Name": "0002",
                    "Status": "available",
                    "Slots": "8192-16383",
                    "Nodes": [
                        {
                            "Name": "my-cluster-0002-001",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1b",
                            "CreateTime": "2021-08-22T14:26:18.693000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        },
                        {
                            "Name": "my-cluster-0002-002",
                            "Status": "available",
                            "AvailabilityZone": "us-east-1a",
                            "CreateTime": "2021-08-22T14:26:18.765000-07:00",
                            "Endpoint": {
                                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                                "Port": 6379
                            }
                        }
                    ],
                    "NumberOfNodes": 2
                }
            ],
            "ClusterEndpoint": {
                "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com",
                "Port": 6379
            },
            "NodeType": "db.r6g.large",
            "EngineVersion": "6.2",
            "EnginePatchVersion": "6.2.6",
            "ParameterGroupName": "default.memorydb-redis6",
            "ParameterGroupStatus": "in-sync",
            "SubnetGroupName": "my-sg",
            "TLSEnabled": true,
            "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster",
            "SnapshotRetentionLimit": 0,
            "MaintenanceWindow": "wed:03:00-wed:04:00",
            "SnapshotWindow": "04:30-05:30",
            "ACLName": "my-acl",
            "DataTiering": "false",
            "AutoMinorVersionUpgrade": true
        }
    ]
}
```

자세한 내용은 AWS CLI 명령 참조의 [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/memorydb/update-cluster.html)를 참조하세요.

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

MemoryDB API에서 `UpdateCluster` 작업을 사용해 MemoryDB 클러스터 내 샤드를 온라인으로 재구성할 수 있습니다.

다음 프로세스에서는 MemoryDB API를 사용해 샤드를 제거하여 MemoryDB 클러스터에서 샤드를 재구성하는 방법을 설명합니다.

**중요**  
클러스터에서 샤드를 제거하기 전에 MemoryDB에서는 모든 데이터가 나머지 샤드에 맞는지 확인합니다. 데이터가 맞으면 요청된 대로 샤드가 클러스터에서 삭제되고 해당 샤드의 키스페이스가 나머지 샤드로 매핑됩니다. 데이터가 나머지 샤드에 맞지 않으면 프로세스가 종료되고 클러스터는 요청이 작성되기 전과 동일한 샤드 구성으로 남습니다.

MemoryDB API를 사용하여 MemoryDB 클러스터에서 샤드를 하나 이상 제거할 수 있습니다. 클러스터의 모든 샤드를 제거할 수는 없습니다. 대신 클러스터를 삭제해야 합니다. 자세한 내용은 [5단계: 클러스터 삭제](getting-started.md#clusters.delete) 단원을 참조하십시오.

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

**파라미터**
+ `ClusterName` - 필수입니다. 샤드 재구성 작업을 수행할 클러스터를 지정합니다.
+ `ShardConfiguration` - 필수입니다. `ShardCount` 속성을 사용하여 샤드 수를 설정할 수 있습니다.

  `ShardCount` - 이 속성을 설정하여 원하는 샤드 수를 지정합니다.

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

MemoryDB로 온라인 수직 조정을 사용하여 중단 시간 없이 동적으로 클러스터를 조정할 수 있습니다. 이를 통해 클러스터는 조정 중에도 요청을 처리할 수 있습니다.

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

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

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

**참고**  
확장 및 축소 프로세스는 새로 선택한 노드 유형을 사용하여 클러스터를 생성하고 새 노드를 이전 노드와 동기화합니다. 원활한 확장/축소 흐름을 위해 다음을 수행합니다.  
수직 확장 프로세스는 온라인 상태를 유지하도록 설계되었지만 이전 노드와 새 노드 간의 데이터 동기화에 의존합니다. 데이터 트래픽이 최소 수준일 것으로 예상되는 시간 동안 확장/축소를 시작하는 것이 좋습니다.
가능한 경우, 준비 환경에서 조정 중 애플리케이션 동작을 테스트합니다.

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

**Topics**
+ [MemoryDB 클러스터 스케일 업(콘솔)](#cluster-vertical-scaling-console)
+ [MemoryDB 클러스터 확장(AWS CLI)](#scaling.scaleUp.cli)
+ [MemoryDB 클러스터 스케일 업(MemoryDB API)](#verticalscaling.scaleup.api)

## MemoryDB 클러스터 스케일 업(콘솔)
<a name="cluster-vertical-scaling-console"></a>

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

**클러스터를 스케일 업하려면(콘솔)**

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

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

1. **작업**을 선택한 다음 **수정**을 선택합니다.

1. **클러스터 수정** 대화 상자에서:

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

1. **변경 사항 저장**을 선택합니다.

   클러스터의 상태가 *수정 중*으로 변경됩니다. 상태가 *사용 가능*으로 변경되면 수정이 완료되고 새 클러스터의 사용을 시작할 수 있습니다.

## MemoryDB 클러스터 확장(AWS CLI)
<a name="scaling.scaleUp.cli"></a>

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

**MemoryDB 클러스터를 스케일 업하려면(AWS CLI)**

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

   Linux, macOS, Unix의 경우:

   ```
   aws memorydb list-allowed-node-type-updates \
   	    --cluster-name my-cluster-name
   ```

   Windows의 경우:

   ```
   aws memorydb list-allowed-node-type-updates ^
   	    --cluster-name my-cluster-name
   ```

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

   ```
   {
   	    "ScaleUpNodeTypes": [
   	        "db.r6g.2xlarge", 
   	        "db.r6g.large"	        
   	    ],
   	    "ScaleDownNodeTypes": [
   	        "db.r6g.large"	        
   	    ], 
   }
   ```

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

1. 명령과 다음 파라미터를 사용하여 AWS CLI `update-cluster` 클러스터를 수정하여 더 큰 새 노드 유형으로 확장합니다.
   + `--cluster-name` - 스케일 업할 클러스터의 이름입니다.
   + `--node-type` - 클러스터를 조정할 새 노드 유형입니다. 이 값은 1단계의 `list-allowed-node-type-updates` 명령에 의해 반환되는 노드 유형 중 하나여야 합니다.

   Linux, macOS, Unix의 경우:

   ```
   aws memorydb update-cluster  \
   	--cluster-name my-cluster \
   	--node-type db.r6g.2xlarge
   ```

   Windows의 경우:

   ```
   aws memorydb update-cluster ^
   	    --cluster-name my-cluster ^
   	    --node-type db.r6g.2xlarge ^
   ```

   자세한 내용은 [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/memorydb/update-cluster.html) 단원을 참조하세요.

## MemoryDB 클러스터 스케일 업(MemoryDB API)
<a name="verticalscaling.scaleup.api"></a>

다음 절차는 MemoryDB API를 사용하여 캐시 클러스터를 현재 노드 유형에서 새롭고 더 큰 노드 유형으로 조정합니다. 이 프로세스 중에 MemoryDB는 DNS 항목이 새 노드를 가리키도록 해당 항목을 업데이트합니다. 클러스터가 온라인 상태에서 들어오는 요청을 계속 처리하는 동안 자동 장애 조치가 활성화된 클러스터를 조정할 수 있습니다.

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

**MemoryDB 클러스터를 스케일 업하려면(MemoryDB API)**

1. 다음 파라미터와 함께 MemoryDB API `ListAllowedNodeTypeUpdates` 작업을 사용하여 스케일 업할 수 있는 노드 유형을 확인합니다.
   + `ClusterName` – 클러스터의 이름입니다. 모든 클러스터 대신 특정 클러스터를 설명하려면 이 파라미터를 사용하세요.

   ```
   https://memory-db.us-east-1.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeUpdates
   	   &ClusterName=MyCluster
   	   &Version=2021-01-01
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20210802T192317Z
   	   &X-Amz-Credential=<credential>
   ```

   자세한 내용은 *MemoryDB API 참조*의 [ListAllowedNodeTypeUpdates](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_ListAllowedNodeTypeUpdates.html)를 참조하세요.

1. 다음 파라미터와 함께 `UpdateCluster` MemoryDB API 작업을 사용하여 현재 클러스터를 새 노드 유형으로 확장합니다.
   + `ClusterName` – 클러스터의 이름입니다.
   + `NodeType`- 이 클러스터에 있는 클러스터의 새롭고 더 큰 노드 유형입니다. 이 값은 1단계의 `ListAllowedNodeTypeUpdates` 작업에 의해 반환되는 인스턴스 유형 중 하나여야 합니다.

   ```
   https://memory-db.us-east-1.amazonaws.com/
   	   ?Action=UpdateCluster	  
   	   &NodeType=db.r6g.2xlarge
   	   &ClusterName=myCluster
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20210801T220302Z
   	   &Version=2021-01-01
   	   &X-Amz-Algorithm=Amazon4-HMAC-SHA256
   	   &X-Amz-Date=20210801T220302Z
   	   &X-Amz-SignedHeaders=Host
   	   &X-Amz-Expires=20210801T220302Z
   	   &X-Amz-Credential=<credential>
   	   &X-Amz-Signature=<signature>
   ```

   자세한 내용은 [UpdateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateCluster.html)를 참조하세요.

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

**Topics**
+ [MemoryDB 클러스터 축소(콘솔)](#cluster-vertical-scaling-down-console)
+ [MemoryDB 클러스터 축소(AWS CLI)](#scaling.scaledown.cli)
+ [MemoryDB 클러스터 규모 축소(MemoryDB API)](#scaling.vertical.scaledown.api)

## MemoryDB 클러스터 축소(콘솔)
<a name="cluster-vertical-scaling-down-console"></a>

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

**MemoryDB 클러스터를 축소하려면(콘솔)**

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

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

1. **작업**을 선택한 다음 **수정**을 선택합니다.

1. **클러스터 수정** 대화 상자에서:

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

1. **변경 사항 저장**을 선택합니다.

   클러스터의 상태가 *수정 중*으로 변경됩니다. 상태가 *사용 가능*으로 변경되면 수정이 완료되고 새 클러스터의 사용을 시작할 수 있습니다.

## MemoryDB 클러스터 축소(AWS CLI)
<a name="scaling.scaledown.cli"></a>

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

**MemoryDB 클러스터를 스케일 다운하려면(AWS CLI)**

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

   Linux, macOS, Unix의 경우:

   ```
   aws memorydb list-allowed-node-type-updates \
   	    --cluster-name my-cluster-name
   ```

   Windows의 경우:

   ```
   aws memorydb list-allowed-node-type-updates ^
   	    --cluster-name my-cluster-name
   ```

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

   ```
   {
   	    "ScaleUpNodeTypes": [
   	        "db.r6g.2xlarge", 
   	        "db.r6g.large"	        
   	    ],
   	    "ScaleDownNodeTypes": [
   	        "db.r6g.large"	        
   	    ], 
   }
   ```

   자세한 내용은 [list-allowed-node-type-updates](https://docs.aws.amazon.com/cli/latest/reference/memorydb/list-allowed-node-type-updates.html)를 참조하세요.

1. 다음 파라미터와 함께 `update-cluster` 명령을 사용하여 클러스터를 수정하여 새롭고 더 작은 노드 유형으로 축소합니다.
   + `--cluster-name` - 축소할 캐시 클러스터의 이름입니다.
   + `--node-type` - 클러스터를 조정할 새 노드 유형입니다. 이 값은 1단계의 `list-allowed-node-type-updates` 명령에 의해 반환되는 노드 유형 중 하나여야 합니다.

   Linux, macOS, Unix의 경우:

   ```
   aws memorydb update-cluster  \
   	    --cluster-name my-cluster \
   	    --node-type db.r6g.large
   ```

   Windows의 경우:

   ```
   aws memorydb update-cluster ^
   	    --cluster-name my-cluster ^
   	    --node-type db.r6g.large
   ```

   자세한 내용은 [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/memorydb/update-cluster.html) 단원을 참조하세요.

## MemoryDB 클러스터 규모 축소(MemoryDB API)
<a name="scaling.vertical.scaledown.api"></a>

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

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

**축소 (MemoryDB API)**

1. 다음 파라미터와 함께 [ListAllowedNodeTypeUpdates](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_ListAllowedNodeTypeUpdates.html) API 작업을 사용하여 축소할 수 있는 노드 유형을 확인합니다.
   + `ClusterName` – 클러스터의 이름입니다. 모든 클러스터 대신 특정 클러스터를 설명하려면 이 파라미터를 사용하세요.

   ```
   https://memory-db.us-east-1.amazonaws.com/
   	   ?Action=ListAllowedNodeTypeUpdates
   	   &ClusterName=MyCluster
   	   &Version=2021-01-01
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20210802T192317Z
   	   &X-Amz-Credential=<credential>
   ```

1. 다음 파라미터와 함께 [UpdateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateCluster.html) API 작업을 사용하여 현재 클러스터를 새 노드 유형으로 축소합니다.
   + `ClusterName` – 클러스터의 이름입니다.
   + `NodeType`- 이 클러스터에 있는 클러스터의 새롭고 더 작은 노드 유형입니다. 이 값은 1단계의 `ListAllowedNodeTypeUpdates` 작업에 의해 반환되는 인스턴스 유형 중 하나여야 합니다.

   ```
   https://memory-db.us-east-1.amazonaws.com/
   	   ?Action=UpdateCluster	   
   	   &NodeType=db.r6g.2xlarge
   	   &ClusterName=myReplGroup
   	   &SignatureVersion=4
   	   &SignatureMethod=HmacSHA256
   	   &Timestamp=20210801T220302Z
   	   &Version=2021-01-01
   	   &X-Amz-Algorithm=Amazon4-HMAC-SHA256
   	   &X-Amz-Date=20210801T220302Z
   	   &X-Amz-SignedHeaders=Host
   	   &X-Amz-Expires=20210801T220302Z
   	   &X-Amz-Credential=<credential>
   	   &X-Amz-Signature=<signature>
   ```