다음을 통해 공유


Azure Cache for Redis 인스턴스로 또는 인스턴스 간 마이그레이션

이 문서에서는 여러 Azure Cache for Redis 마이그레이션 시나리오에 대해 설명합니다. 온-프레미스 또는 클라우드 VM(가상 머신) 또는 호스트된 캐시에서 실행되는 오픈 소스 Redis 캐시를 다른 클라우드 플랫폼에서 Azure Cache for Redis로 마이그레이션할 수 있습니다.

하나의 Azure Cache for Redis 인스턴스를 다른 인스턴스로 마이그레이션할 수도 있습니다. Azure 지역 간 Azure Redis 캐시만 이동해야 하는 경우 Azure Cache for Redis 인스턴스를 다른 지역으로 이동을 참조하세요.

오픈 소스 Redis는 프라이빗 온-프레미스 데이터 센터 또는 클라우드 호스팅 VM과 같은 많은 컴퓨팅 환경에서 실행할 수 있습니다. AWS(Amazon Web Services)와 같은 다른 호스팅 플랫폼은 AWS ElastiCache와 같은 Redis 캐시 서비스를 호스트합니다. 일반적으로 중단 또는 가동 중지 시간을 최소화하면서 이러한 Redis 캐시를 Azure Cache for Redis로 마이그레이션할 수 있습니다.

마이그레이션 옵션

한 캐시에서 다른 캐시로 마이그레이션하는 방법은 캐시가 있는 위치와 애플리케이션이 캐시와 상호 작용하는 방식에 따라 달라집니다. 다음 표에는 자주 사용되는 마이그레이션 전략이 나와 있습니다.

옵션 장점 단점
새 캐시 만들기 가장 간단하게 구현할 수 있습니다. 일부 애플리케이션에서 작동하지 않을 수 있는 새 캐시에 데이터를 다시 채워야 합니다.
RDB(읽기 전용 데이터베이스) 파일을 통해 데이터를 내보내고 가져옵니다. 모든 Redis 캐시와 호환됩니다. RDB 파일이 생성된 후 기존 캐시에 기록된 데이터는 손실될 수 있습니다.
두 개의 캐시에 데이터를 이중으로 쓰세요. 데이터 손실 없음, 가동 중지 없음, 캐시 작업이 중단되지 않음, 테스트가 더욱 쉬워짐. 연장된 기간 동안 두 개의 캐시가 필요합니다.
프로그래밍 방식으로 데이터를 마이그레이션합니다. 데이터 이동 방법을 완전히 제어합니다. 사용자 지정 코드가 필요합니다.

새 캐시 만들기

중단 없는 작업 및 잠재적인 데이터 손실이 우려되지 않는 경우 Azure Cache for Redis로 데이터를 이동하는 가장 쉬운 방법은 Azure Redis 캐시 인스턴스를 만들고 애플리케이션을 연결하는 것입니다. 예를 들어 Redis를 데이터베이스 레코드의 조회 캐시로 사용하는 경우 간단하게 캐시를 처음부터 다시 작성할 수 있습니다. 이 방법은 기술적으로 마이그레이션이 아닙니다.

이 옵션을 구현하는 일반적인 단계는 다음과 같습니다.

  1. 새 Azure Cache for Redis 인스턴스를 만듭니다. 필요에 따라 Azure Managed Redis를 사용해 보세요.
  2. 새 Azure Redis 인스턴스를 사용하도록 애플리케이션을 업데이트합니다.
  3. 이전 Redis 인스턴스를 삭제합니다.

RDB 파일로 데이터 내보내기 및 Azure Cache for Redis로 가져오기

오픈 소스 Redis는 캐시의 메모리 내 데이터 세트의 스냅샷을 만들고 모든 Redis 캐시가 읽을 수 있는 RDB 파일에 저장하는 표준 메커니즘을 정의합니다. Azure Cache for Redis Premium 계층 은 RDB 파일을 통해 캐시 인스턴스로 데이터를 가져올 수 있습니다. RDB 파일을 사용하여 기존 캐시에서 Azure Cache for Redis로 데이터를 전송할 수 있습니다.

중요

RDB 파일 형식은 Redis 버전 간에 변경될 수 있으며 이전 버전과의 호환성을 유지하지 못할 수 있습니다. 내보내는 캐시의 Redis 버전은 Azure Cache for Redis에서 제공하는 버전과 같거나 낮아야 합니다.

이 옵션을 구현하는 일반적인 단계는 다음과 같습니다.

  1. 기존 Redis 캐시의 스냅샷을 저장합니다. 정기적으로 스냅샷을 저장하도록 Redis를 구성하거나 SAVE 또는 BGSAVE 명령을 사용하여 수동으로 저장할 수 있습니다. RDB 파일의 이름은 기본적으로 dump.rdb 이며 redis.conf 구성 파일에 지정된 경로에 있습니다.
  2. 기존 캐시만큼 큰 새 프리미엄 계층 Azure Cache for Redis 인스턴스를 만듭니다.
  3. 새 캐시가 있는 지역의 Azure 스토리지 계정에 RDB 파일을 복사합니다. 이 작업에 사용할 AzCopy 수 있습니다.
  4. RDB 파일을 새 캐시로 가져옵니다. PowerShell Import-AzRedisCache cmdlet을 사용할 수도 있습니다.
  5. 새 캐시 인스턴스를 사용하도록 애플리케이션을 업데이트합니다.

참고

다른 Azure Redis 인스턴스에서 데이터를 마이그레이션하려면 먼저 해당 인스턴스에서 RDB 파일을 내보내 거나 PowerShell Export-AzRedisCache cmdlet을 사용합니다.

마이그레이션하는 동안 두 개의 Redis 캐시에 쓰기

캐시 간에 데이터를 이동하는 대신 기존 캐시와 새 캐시 모두에 데이터를 쓰도록 애플리케이션을 일시적으로 설정할 수 있습니다. 애플리케이션은 처음에 기존 캐시에서 데이터를 읽습니다. 새 캐시에 충분한 데이터가 있는 경우 애플리케이션을 해당 캐시로 전환하고 이전 캐시를 사용 중지할 수 있습니다.

예를 들어 Redis를 세션 저장소로 사용하고 애플리케이션 세션이 7일 후에 만료되는 경우를 가정해 보겠습니다. 7일 동안 두 캐시에 모두 작성한 후에는 새 캐시에 비어 있지 않은 세션 정보가 모두 포함되어 있으므로 해당 시점부터 안전하게 사용할 수 있습니다. 그런 다음 이전 캐시를 사용 중지할 수 있습니다.

이 옵션을 구현하는 일반적인 단계는 다음과 같습니다.

  1. 기존 캐시만큼 큰 새 프리미엄 계층 Azure Cache for Redis 인스턴스를 만듭니다.
  2. 새 인스턴스와 원래 인스턴스 모두에 쓰도록 애플리케이션 코드를 수정합니다.
  3. 새 인스턴스가 데이터로 충분히 채워질 때까지 원래 인스턴스의 데이터를 계속 사용합니다.
  4. 새 인스턴스에서만 데이터를 읽고 쓰도록 애플리케이션 코드를 업데이트합니다.
  5. 원래 인스턴스를 삭제합니다.

프로그래밍 방식으로 마이그레이션

기존 캐시에서 프로그래밍 방식으로 데이터를 읽고 Azure Cache for Redis에 기록하여 사용자 지정 마이그레이션을 만들 수 있습니다. 예를 들어 오픈 소스 redis-copy 도구를 사용하여 한 Azure Redis 인스턴스에서 다른 Azure Redis 인스턴스로 데이터를 복사할 수 있습니다.

소스 코드는 사용자 고유의 마이그레이션 도구를 작성하는 데 유용한 가이드가 될 수 있습니다. 컴파일된 버전도 사용할 수 있습니다.

참고

이 도구는 Microsoft에서 공식적으로 지원하는 도구가 아닙니다.

이 옵션을 구현하는 일반적인 단계는 다음과 같습니다.

  1. 기존 캐시와 동일한 지역에 Azure VM(가상 머신)을 만듭니다. 데이터 세트가 큰 경우 복사 시간을 줄이기 위해 강력한 VM을 선택합니다.
  2. 새 Azure Cache for Redis 인스턴스를 만들고 비어 있는지 확인합니다. 도구는 redis-copy 대상 캐시의 기존 키를 덮어쓰지 않습니다.
  3. 원본 캐시에서 대상 캐시로 데이터 복사를 자동화하는 등의 redis-copy 애플리케이션을 사용합니다. 복사 프로세스는 데이터 세트의 크기에 따라 다소 시간이 걸릴 수 있습니다.