

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

# Valkey 또는 Redis OSS의 온라인 마이그레이션
<a name="OnlineMigration"></a>

 온라인 마이그레이션을 사용하면 Amazon EC2의 자체 호스팅된 오픈 소스 Valkey 또는 Redis OSS에서 Amazon ElastiCache로 데이터를 마이그레이션할 수 있습니다.

이는 자체 호스팅 인스턴스에서 ElastiCache 서비스로 마이그레이션하는 것을 말합니다. ElastiCache에서 Redis OSS에서 Valkey로 업그레이드하는 방법에 대한 자세한 내용은 [엔진 간 업그레이드를 포함한 엔진 버전 업그레이드엔진 버전 업그레이드](VersionManagement.HowTo.md) 섹션을 참조하세요.

**참고**  
ElastiCache 서버리스 캐시 또는 r6gd 노드 유형에서 실행되는 클러스터에는 온라인 마이그레이션이 지원되지 않습니다.

## 개요
<a name="Migration-Overview"></a>

Amazon EC2에서 실행 중인 오픈 소스 Valkey 또는 Redis OSS에서 Amazon ElastiCache로 데이터를 마이그레이션하려면 기존 또는 새로 생성된 Amazon ElastiCache 배포가 필요합니다. 이 배포는 즉시 마이그레이션이 가능한 구성을 가지고 있어야 합니다. 또한 인스턴스 유형, 샤드 수 및 복제본 개수 같은 속성을 포함하여 원하는 구성과 비슷한 구성을 가져야 합니다.

온라인 마이그레이션은 Amazon EC2의 자체 호스팅 오픈 소스 Valkey 또는 Redis OSS에서 ElastiCache로 데이터를 마이그레이션하기 위해 설계되었으며 ElastiCache 클러스터 간에 데이터를 이동하기 위한 것이 아닙니다.

**중요**  
온라인 마이그레이션 프로세스를 시작하기 전에 다음 섹션을 전부 검토하는 것이 좋습니다

`StartMigration` API 작업 또는 AWS CLI 명령을 호출하면 마이그레이션이 시작됩니다. Valkey 또는 Redis OSS 클러스터 모드가 비활성화된 클러스터를 마이그레이션할 때 마이그레이션 프로세스는 ElastiCache Valkey 또는 Redis OSS 클러스터의 프라이머리 노드를 소스 Valkey 또는 Redis OSS 프라이머리 노드의 복제본으로 만듭니다. Valkey 또는 Redis OSS 클러스터 모드 지원 클러스터를 마이그레이션할 때 마이그레이션 프로세스를 통해 각 ElastiCache 샤드의 프라이머리 노드가 동일한 슬롯을 소유한 소스 클러스터의 해당 샤드에 복제됩니다.

클라이언트 측 변경을 수행할 준비가 끝나면 `CompleteMigration` API 작업을 호출합니다. 이 API 작업은 ElastiCache 배포를 프라이머리 노드와 복제 노드가 포함된 프라이머리 Valkey 또는 Redis OSS 배포로 승격합니다(해당되는 경우). 이제 클라이언트 애플리케이션을 리디렉션하여 ElastiCache에 대한 데이터 쓰기를 시작할 수 있습니다. 마이그레이션하는 동안 Valkey 노드 및 ElastiCache 프라이머리 노드에서 [valkey-cli INFO](https://valkey.io/commands/info) 명령을 실행하여 복제 상태를 확인할 수 있습니다.

## 마이그레이션 단계
<a name="Migration-Steps"></a>

다음 주제에서는 데이터 마이그레이션을 위한 프로세스에 대해 개략적으로 알아봅니다.
+ [마이그레이션을 위한 소스 및 대상 준비](Migration-Prepare.md)
+ [데이터 마이그레이션 테스트](Migration-Test.md)
+ [마이그레이션 시작](Migration-Initiate.md)
+ [데이터 마이그레이션 진행 상황 확인](Migration-Verify.md)
+ [데이터 마이그레이션 완료](Migration-Complete.md)

# 마이그레이션을 위한 소스 및 대상 준비
<a name="Migration-Prepare"></a>

이 단계를 통해 EC2의 자체 호스팅 Valkey 또는 Redis 소스에서 ElastiCache로 또는 Redis OSS 클러스터에서 ElastiCache Valkey 클러스터로 데이터를 마이그레이션할 준비를 할 수 있습니다.

이는 자체 호스팅 인스턴스에서 ElastiCache 서비스로 마이그레이션하는 것을 말합니다. ElastiCache에서 Redis OSS에서 Valkey로 업그레이드하는 방법에 대한 자세한 내용은 [엔진 간 업그레이드를 포함한 엔진 버전 업그레이드엔진 버전 업그레이드](VersionManagement.HowTo.md) 섹션을 참조하세요.

ElastiCache 콘솔, API 또는 AWS CLI에서 마이그레이션을 시작하기 전에 다음에 언급된 사전 요구 사항 4가지를 모두 충족해야 합니다.

**마이그레이션을 위한 소스 및 대상 Valkey 또는 Redis OSS 노드를 준비하려면**

1. 대상 ElastiCache 배포를 식별하여 여기로 데이터를 마이그레이션할 수 있는지 확인합니다.

   기존 또는 새로 생성된 ElastiCache 배포는 마이그레이션을 위해 다음과 같은 요구 사항을 충족해야 합니다.
   + 사용하는 Valkey 또는 Redis OSS 5.0.6 이상이어야 합니다.
   + 전송 중 암호화가 활성화되어 있지 않습니다.
   + 다중 AZ가 활성화되어 있습니다.
   + Valkey 또는 Redis OSS 클러스터에서 데이터를 수용하기에 충분한 메모리가 있어야 합니다. 예약 메모리 설정을 올바르게 구성하는 방법은 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md) 섹션을 참조하세요.
   + 클러스터 모드가 비활성화된 경우 CLI를 사용하거나 Valkey 또는 Redis OSS 버전 5.0.6 이상에서는 CLI 또는 콘솔을 사용하여, Valkey 또는 Redis OSS 버전 2.8.21 이상에서 Valkey 또는 Redis OSS 버전 5.0.6 이상으로 직접 마이그레이션할 수 있습니다. 클러스터 모드가 활성화된 경우 CLI를 사용하거나 Redis OSS 버전 5.0.6 이상에서는 CLI 또는 콘솔을 사용하여, 클러스터 모드가 활성화된 모든 Valkey 또는 Redis OSS 버전에서 Redis OSS 버전 5.0.6 이상으로 직접 마이그레이션할 수 있습니다.
   + 소스와 대상의 샤드 수가 일치해야 합니다.
   + 글로벌 데이터 스토어에 포함되면 안 됩니다.
   + 데이터 계층화가 비활성화되어 있어야 합니다.

1. 오픈 소스 Valkey 또는 Redis OSS의 구성과 ElastiCache 배포의 구성이 서로 호환되는지 확인합니다.

   최소한 대상 ElastiCache 배포의 모든 구성은 복제를 위한 Valkey 또는 Redis OSS 구성과 호환되어야 합니다.
   + 클러스터에서 AUTH가 활성화되어서는 안 됩니다.
   + 구성 `protected-mode`가 `no`로 설정되어 있어야 합니다.
   + Valkey 또는 Redis OSS 구성에 `bind` 구성이 있는 경우에는 ElastiCache 노드에서의 요청을 허용하도록 구성이 업데이트되어야 합니다.
   + 논리적 데이터베이스의 개수는 ElastiCache 노드와 Valkey 또는 Redis OSS 클러스터 간에 동일해야 합니다. 이 값은 Valkey 또는 Redis OSS 구성에서 `databases`를 사용해 설정됩니다.
   + 데이터 복제가 성공하려면 데이터 수정을 수행하는 Valkey 또는 Redis OSS 명령(예: `sync`, `psync`, `info`, `config`, `command`, `cluster`)의 이름을 변경해서는 안 됩니다.
   + Valkey 또는 Redis OSS 클러스터에서 ElastiCache로 데이터를 복제하려면 이러한 추가 로드를 처리하기에 충분한 CPU 및 메모리가 있는지 확인합니다. 이러한 로드는 Valkey 또는 Redis OSS 클러스터에서 생성된 RDB 파일에서 나와서 네트워크를 경유해 ElastiCache 노드로 전달됩니다.
   + 소스 클러스터의 모든 Valkey 또는 Redis OSS 인스턴스는 동일한 포트에서 실행되어야 합니다.

1. 다음과 같은 작업을 수행하여 인스턴스를 ElastiCache에 연결할 수 있는지 확인합니다.
   + 각 인스턴스의 IP 주소가 프라이빗 주소인지 확인합니다.
   + 인스턴스의 Valkey 또는 Redis OSS와 동일한 가상 프라이빗 클라우드(VPC)에서 ElastiCache 배포를 할당하거나 생성합니다(권장).
   + VPC가 다른 경우에는 두 노드 간의 액세스를 허용하도록 VPC 피어링을 설정합니다. VPC 피어링에 대한 자세한 내용은 에서 [Amazon VPC에 있는 ElastiCache 캐시에 액세스하기 위한 액세스 패턴](elasticache-vpc-accessing.md) 섹션을 참조하세요.
   + Valkey 또는 Redis OSS 인스턴스에 연결된 보안 그룹은 ElastiCache 노드에서의 인바운드 트래픽을 허용해야 합니다.

1. 데이터 마이그레이션이 완료된 이후에 애플리케이션이 ElastiCache 노드로 트래픽을 보낼 수 있는지 확인합니다. 자세한 내용은 [Amazon VPC에 있는 ElastiCache 캐시에 액세스하기 위한 액세스 패턴](elasticache-vpc-accessing.md) 섹션을 참조하세요.

# 데이터 마이그레이션 테스트
<a name="Migration-Test"></a>

모든 사전 요구 사항이 완료된 이후에 AWS Management Console, ElastiCache API 또는 AWS CLI를 사용해 마이그레이션 설정을 검증할 수 있습니다. 다음은 CLI를 사용하는 경우를 보여주는 예제입니다.

`test-migration` 명령을 다음 파라미터와 함께 호출하여 마이그레이션을 테스트합니다.
+ `--replication-group-id` - 데이터를 마이그레이션할 복제 그룹의 ID입니다.
+ `--customer-node-endpoint-list` - 데이터를 마이그레이션해야 하는 엔드포인트의 목록입니다. 목록에는 한 개의 요소만 있어야 합니다.

다음은 CLI 사용을 보여주는 예제입니다.

```
aws elasticache test-migration --replication-group-id test-cluster --customer-node-endpoint-list "Address='10.0.0.241',Port=6379"
```

ElastiCache는 실제 데이터 마이그레이션 없이 마이그레이션 설정을 검증합니다.

# 마이그레이션 시작
<a name="Migration-Initiate"></a>

모든 사전 요구 사항이 완료된 이후에 AWS Management Console, ElastiCache API 또는 AWS CLI를 사용해 데이터 마이그레이션을 시작할 수 있습니다. 클러스터 모드가 활성화되어 있는 경우 슬롯 마이그레이션이 다르면 실시간 마이그레이션 전에 리샤딩이 수행됩니다. 다음은 CLI를 사용하는 경우를 보여주는 예제입니다.

**참고**  
`TestMigration` API를 사용하여 마이그레이션 설정을 검증하는 것이 좋습니다. 그러나 이는 전적으로 선택 사항입니다.

`start-migration` 명령을 다음 파라미터로 호출하여 마이그레이션을 시작합니다.
+ `--replication-group-id` - 대상 ElastiCache 복제 그룹의 식별자
+ `--customer-node-endpoint-list` - DNS 또는 IP 주소를 가진 엔드포인트와 소스 Valkey 또는 Redis OSS 클러스터가 실행 중인 포트의 목록. 클러스터 모드가 비활성화된 경우와 클러스터 모드가 활성화된 경우에 모두 하나의 요소만 이 목록에 포함할 수 있습니다. 연결 복제가 활성화된 경우에는 엔드포인트가 Valkey 또는 Redis OSS 클러스터의 프라이머리 노드 대신에 복제본을 가리킬 수 있습니다.

다음은 CLI 사용을 보여주는 예제입니다.

```
aws elasticache start-migration --replication-group-id test-cluster --customer-node-endpoint-list "Address='10.0.0.241',Port=6379"
```

이 명령을 실행하면 ElastiCache 프라이머리 노드(각 샤드 내)가 Valkey 또는 Redis OSS 인스턴스의 복제본(클러스터가 활성화된 Redis에서 동일한 슬롯을 소유한 해당 샤드 내)이 되도록 구성됩니다. ElastiCache 클러스터의 상태가 **마이그레이션 중**으로 바뀌면서 데이터가 Valkey 또는 Redis OSS 인스턴스에서 ElastiCache 프라이머리 노드로 마이그레이션되기 시작합니다. Valkey 또는 Redis OSS 인스턴스의 데이터 및 로드 크기에 따라 마이그레이션이 완료되는 데 다소 시간이 걸릴 수 있습니다. Valkey 인스턴스 및 ElastiCache 프라이머리 노드에서 [valkey-cli INFO](https://valkey.io/commands/info) 명령을 실행하여 마이그레이션 진행 상태를 확인할 수 있습니다.

복제가 성공하고 나면 Valkey 또는 Redis OSS 인스턴스에 대한 모든 쓰기가 ElastiCache 클러스터로 전달됩니다. 읽기에는 ElastiCache 노드를 사용할 수 있습니다. 하지만 ElastiCache 클러스터에 대한 쓰기는 불가능합니다. ElastiCache 프라이머리 노드에 다른 복제본 노드가 연결되어 있는 경우에는 이러한 복제본 노드가 ElastiCache 프라이머리 노드에서의 복제를 계속 수행합니다. 따라서 Valkey 또는 Redis OSS 클러스터에서 나온 모든 데이터가 ElastiCache 클러스터의 모든 노드에 복제됩니다.

ElastiCache 프라이머리 노드가 Valkey 또는 Redis OSS 인스턴스의 복제본이 될 수 없는 경우에는 몇 차례 시도한 이후에야 프라이머리 노드로 다시 승격될 수 있습니다. ElastiCache 클러스터의 상태가 **사용 가능**으로 변경되고, 마이그레이션 개시 실패에 대한 복제 그룹 이벤트가 전송됩니다. 이러한 문제를 해결하려면 다음과 같이 하세요.
+ 복제 그룹 이벤트를 확인합니다. 이벤트에서 나온 모든 구체적인 정보를 이용해 마이그레이션 실패 문제를 해결합니다.
+ 이벤트가 구체적인 정보를 제공하지 않는 경우에는 [마이그레이션을 위한 소스 및 대상 준비](Migration-Prepare.md)의 지침을 준수했는지 확인합니다.
+ VPC 및 서브넷을 위한 라우팅 구성이 ElastiCache 노드와 Valkey 또는 Redis OSS 인스턴스 간에서 트래픽을 허용하는지 확인합니다.
+ Valkey 또는 Redis OSS 인스턴스에 연결된 보안 그룹이 ElastiCache 노드에서의 인바운드 트래픽을 허용하는지 확인합니다.
+ 복제 실패에 대한 구체적인 정보는 인스턴스에 대한 Valkey 또는 Redis OSS 로그를 확인합니다.

# 데이터 마이그레이션 진행 상황 확인
<a name="Migration-Verify"></a>

데이터 마이그레이션이 시작된 이후에 다음을 통해 진행 상황을 확인할 수 있습니다.
+ Valkey 또는 Redis OSS `master_link_status`가 ElastiCache 프라이머리 노드의 `INFO` 명령에서 `up` 상태인지 확인합니다. 이 정보는 ElastiCache 콘솔에서 확인할 수 있습니다. 클러스터를 선택하고 **CloudWatch 지표**에서 **기본 링크 상태**를 관찰합니다. 값이 1에 도달한 후 데이터가 동기화됩니다.
+ Valkey 또는 Redis OSS 인스턴스에 대해 `INFO` 명령을 실행하여 ElastiCache 복제본이 **온라인** 상태인지 확인할 수 있습니다. 이렇게 하면 복제 지연 시간에 대한 정보도 제공됩니다.
+ Valkey 또는 Redis OSS 인스턴스에서 [CLIENT LIST](https://valkey.io/commands/client-list) 명령을 사용하여 하위 클라이언트 출력 버퍼를 확인합니다.

데이터 마이그레이션이 완료된 후 데이터가 동기화되는 중에 새로운 쓰기는 Valkey 또는 Redis OSS 클러스터의 프라이머리 노드로 전달됩니다.

# 데이터 마이그레이션 완료
<a name="Migration-Complete"></a>

ElastiCache 클러스터로 전환할 준비가 되면 다음 파라미터와 함께 `complete-migration` CLI 명령을 사용합니다.
+ `--replication-group-id` - 복제 그룹의 식별자입니다.
+ `--force` - 데이터가 동기화 중인지 확인하지 않고 마이그레이션을 강제 중단하는 값입니다.

다음은 예입니다.

```
aws elasticache complete-migration --replication-group-id test-cluster
```

이 명령을 실행하고 나면 ElastiCache 프라이머리 노드(각 샤드 내)가 Valkey 또는 Redis OSS 인스턴스에서의 복제를 중단하고 이를 프라이머리 노드로 승격시킵니다. 이러한 승격은 보통 몇 분 내에 완료됩니다. 기본 노드로의 승격을 확정하려면 이벤트 `Complete Migration successful for test-cluster`를 확인합니다. 이때 애플리케이션을 ElastiCache 쓰기 및 읽기로 보낼 수 있습니다. ElastiCache 클러스터 상태는 **마이그레이션 중**에서 **사용 가능**으로 바뀌어야 합니다.

프라이머리 노드로의 승격이 실패한 경우에도 ElastiCache 프라이머리 노드는 Valkey 또는 Redis OSS 인스턴스에서 복제를 계속 수행합니다. ElastiCache 클러스터의 상태는 계속 **마이그레이션 중**으로 유지되고, 실패에 대한 복제 그룹 이벤트 메시지가 전송됩니다. 이 문제를 해결하려면 다음과 같이 하세요.
+ 복제 그룹 이벤트를 확인합니다. 이벤트에서 나온 구체적인 정보를 이용해 마이그레이션 실패 문제를 해결합니다.
+ 데이터가 동기화 중이 아니라는 이벤트 메시지가 나타날 수 있습니다. 이 경우에는 ElastiCache 프라이머리 노드가 Valkey 또는 Redis OSS 인스턴스에서 복제를 수행할 수 있고 둘 모두가 동기화 중인지 확인합니다. 여전히 동기화를 중단하고 싶은 마음이 있으면 `—force` 옵션을 통해 이전의 명령을 실행할 수 있습니다.
+ ElastiCache 노드 중 하나가 대체되는 경우 이벤트 메시지가 표시될 수 있습니다. 대체 작업이 완료되고 난 후에 전체 마이그레이션 단계를 다시 시도할 수 있습니다.

# 콘솔을 사용해 온라인 데이터 마이그레이션 수행
<a name="Migration-Console"></a>

AWS Management Console을 사용해 클러스터에서 Valkey 또는 Redis OSS 클러스터로 데이터를 마이그레이션할 수 있습니다.

**콘솔을 사용해 온라인 데이터 마이그레이션을 수행하려면**

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

1. 새 Valkey 또는 Redis OSS 클러스터를 생성하거나 기존 클러스터를 선택합니다. 클러스터가 다음 요구 사항을 충족하는지 확인합니다.
   + 엔진 버전은 Valkey 7.2 이상 또는 Redis OSS 5.0.6 이상이어야 합니다.
   + 클러스터에서 AUTH가 활성화되어서는 안 됩니다.
   + 구성 `protected-mode`가 `no`로 설정되어 있어야 합니다.
   + Valkey 또는 Redis OSS 구성에 `bind` 구성이 있는 경우에는 ElastiCache 노드에서의 요청을 허용하도록 구성이 업데이트되어야 합니다.
   + 데이터베이스의 개수는 ElastiCache 노드와 Valkey 또는 Redis OSS 클러스터 간에 동일해야 합니다. 이 값은 엔진 구성에서 `databases`를 사용해 설정됩니다.
   + 데이터 복제가 성공하려면 데이터 수정을 수행하는 Valkey 또는 Redis OSS 명령의 이름을 변경해서는 안 됩니다.
   + Valkey 또는 Redis OSS 클러스터에서 ElastiCache로 데이터를 복제하려면 이러한 추가 로드를 처리하기에 충분한 CPU 및 메모리가 있는지 확인합니다. 이러한 로드는 Valkey 또는 Redis OSS 클러스터에서 생성된 RDB 파일에서 나와서 네트워크를 경유해 ElastiCache 노드로 전달됩니다.
   + 클러스터는 **사용 가능** 상태입니다.

1. 클러스터가 선택된 상태에서 **작업**에서 **엔드포인트에서 데이터 마이그레이션**을 선택합니다.

1. **엔드포인트에서 데이터 마이그레이션** 대화 상자에서 IP 주소와 Valkey 또는 Redis OSS 클러스터를 사용할 수 있는 포트를 입력합니다.
**중요**  
IP 주소는 정확해야 합니다. 주소를 잘못 입력하면 마이그레이션이 실패합니다.

1. **Start Migration(마이그레이션 시작)**을 선택합니다.

   클러스터에서 마이그레이션이 시작되면 상태가 **설정 변경**으로 바뀐 다음, **Migrating(마이그레이션 중)**으로 바뀝니다.

1. 탐색 창에서 **이벤트**를 선택해 마이그레이션 진행 상황을 모니터링합니다.

마이그레이션이 진행되는 동안 언제라도 마이그레이션을 중단할 수 있습니다. 이렇게 하려면 클러스터를 선택하고 **작업**에서 **데이터 마이그레이션 중지**를 선택합니다. 그러면 클러스터의 상태가 **사용 가능**로 바뀝니다.

마이그레이션이 성공하면 클러스터의 상태가 **사용 가능**으로 바뀌고 이벤트 로그에 다음과 같은 내용이 표시됩니다.

`Migration operation succeeded for replication group ElastiCacheClusterName.`

마이그레이션이 실패하면 클러스터의 상태가 **사용 가능**으로 바뀌고 이벤트 로그에 다음과 같은 내용이 표시됩니다.

`Migration operation failed for replication group ElastiCacheClusterName.`