VNet 삽입 캐시에서 Private Link 캐시로 마이그레이션

이 문서에서는 Azure Cache for Redis VNet(Virtual Network) 삽입 캐시 인스턴스를 Azure Cache for Redis Private Link 캐시로 마이그레이션하는 여러 가지 방법을 설명합니다.

Azure Private Link는 네트워크 아키텍처를 간소화하고 Azure의 엔드포인트 간 연결을 보호합니다. 가상 네트워크 내 서브넷의 개인 IP 주소가 할당된 프라이빗 엔드포인트를 통해 가상 네트워크에서 Azure Cache 인스턴스에 연결할 수 있습니다. Azure Cache for Redis에 Azure Private Link를 사용하면 다음과 같은 장점이 있습니다.

  • 계층 유연성 – Azure Private Link는 기본, 표준, 프리미엄, Enterprise, Enterprise Flash 등 모든 계층에서 지원됩니다. 반면 Virtual Network 삽입은 프리미엄 계층에서만 제공됩니다.

  • 간소화된 NSG(네트워크 보안 그룹) 규칙 관리 - Azure Cache for Redis의 요구 사항을 준수하도록 NSG 규칙을 구성할 필요가 없습니다.

  • Azure Policy 지원 – 조직의 모든 캐시가 Private Link를 통해 만들어지며 조직의 기존 캐시를 감사하여 모든 캐시가 Private Link를 활용하는지 확인합니다.

마이그레이션 옵션

몇 가지 방법을 사용하여 VNet 삽입에서 Private Link로 전환할 수 있습니다. 가장 효율적인 방법은 캐시의 위치 및 애플리케이션이 캐시와 상호 작용하는 방식에 따라 다릅니다. 아래에는 자주 사용되는 마이그레이션 전략 중 일부가 설명되어 있습니다.

지역 복제, 클러스터링 또는 ARM VNet을 조합하여 사용하는 경우:

옵션 장점 단점
2개의 캐시에 데이터 이중 쓰기 데이터 손실 또는 가동 중지 시간 없음 기존 캐시의 작업 중단이 없습니다. 새 캐시를 간편하게 테스트할 수 있습니다. 긴 시간 동안 2개의 캐시가 필요합니다.
새 캐시 만들기 가장 간단하게 구현할 수 있습니다. 데이터를 새 캐시로 다시 채워야 하므로, 많은 애플리케이션에서 이 방법이 작동하지 않을 수 있습니다.
RDB 파일을 통해 데이터 내보내기 및 가져오기 데이터 마이그레이션이 필요합니다. RDB 파일이 생성된 후 데이터가 기존 캐시에 기록되는 경우 일부 데이터가 손실될 수 있습니다.
프로그래밍 방식으로 데이터 마이그레이션 데이터 이동 방법을 완벽하게 제어할 수 있습니다. 사용자 지정 코드가 필요합니다.

마이그레이션 기간 동안 동시에 2개의 Redis 캐시에 쓰기

캐시 간에 직접 데이터를 이동하는 대신, 애플리케이션을 사용하여 기존 캐시 및 설정 중인 새 캐시에 데이터를 쓸 수 있습니다. 애플리케이션은 처음에는 여전히 기존 캐시에서 데이터를 읽습니다. 새 캐시에 필요한 데이터가 생기면 애플리케이션을 해당 캐시로 전환하고 이전 캐시를 사용 중지합니다. 예를 들어 Redis를 세션 저장소로 사용하며, 애플리케이션 세션은 7일 동안 유효하다고 가정해 보겠습니다. 일주일 동안 2개의 캐시에 쓰면 새 캐시에 만료되지 않은 모든 세션 정보가 포함됩니다. 해당 시점부터 데이터 손실에 대한 걱정 없이 안전하게 새 캐시를 사용할 수 있습니다.

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

  1. 기존 캐시와 크기가 같은(또는 더 큰) 프라이빗 엔드포인트를 사용하는 새 Azure Cache for Redis 인스턴스를 만듭니다.

  2. 새 인스턴스와 원래 인스턴스 모두에 쓰도록 애플리케이션 코드를 수정합니다.

  3. 새 인스턴스에 데이터가 충분히 채워질 때까지 계속해서 원래 인스턴스에서 데이터를 읽습니다.

  4. 새 인스턴스에서만 데이터를 읽고 쓰도록 애플리케이션 코드를 업데이트합니다.

  5. 원래 인스턴스를 삭제합니다.

새 Azure Cache for Redis 만들기

이 방법은 엄밀히 따지면 마이그레이션이 아닙니다. 데이터 손실이 걱정되지 않는 경우 Azure Cache for Redis로 데이터를 이동하는 가장 쉬운 방법은 캐시 인스턴스를 만들고 애플리케이션을 여기에 연결하는 것입니다. 예를 들어 Redis를 데이터베이스 레코드의 조회 캐시로 사용하는 경우 간단하게 캐시를 처음부터 다시 작성할 수 있습니다.

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

  1. 프라이빗 엔드포인트를 사용하는 새 Azure Cache for Redis 인스턴스를 만듭니다.

  2. 새 인스턴스를 사용하도록 애플리케이션을 업데이트합니다.

  3. 이전 Redis 인스턴스를 삭제합니다.

데이터를 RDB 파일로 내보내고 Azure Cache for Redis로 가져오기(프리미엄 계층만 해당)

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

Important

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

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

  1. 프리미엄 계층에서 기존 캐시와 크기가 같은(또는 더 큰) 프라이빗 엔드포인트를 사용하는 새 Azure Cache for Redis 인스턴스를 만듭니다.

  2. 기존 Redis 캐시의 스냅샷을 저장합니다. 주기적으로 스냅샷을 저장하도록 Redis를 구성할 수도 있고, SAVE 또는 BGSAVE 명령을 사용하여 프로세스를 수동으로 실행할 수도 있습니다. RDB 파일의 이름은 기본적으로 “dump.rdb”이며, redis.conf 구성 파일에 지정된 경로에 배치됩니다.

    참고 항목

    Azure Cache for Redis 내에서 데이터를 마이그레이션하는 경우 RDB 파일을 내보내는 방법에 대한 지침을 참조하거나 PowerShell Export cmdlet을 대신 사용하세요.

  3. 새 캐시가 있는 지역의 Azure 스토리지 계정에 RDB 파일을 복사합니다. 이 작업에는 AzCopy를 사용하면 됩니다.

  4. 가져오기 지침 또는 PowerShell Import cmdlet을 사용하여 RDB 파일을 새 캐시로 가져옵니다.

  5. 새 캐시 인스턴스를 사용하도록 애플리케이션을 업데이트합니다.

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

기존 캐시에서 프로그래밍 방식으로 데이터를 읽고 Azure Cache for Redis에 데이터를 기록하여 사용자 지정 마이그레이션 프로세스를 만듭니다. 이 오픈 소스 도구를 사용하여 한 Azure Cache for Redis 인스턴스에서 다른 인스턴스로 데이터를 복사할 수 있습니다. 이 도구는 서로 다른 Azure 캐시 지역에 있는 캐시 인스턴스 간에 데이터를 이동하는 데 유용합니다. 컴파일된 버전도 사용할 수 있습니다. 또한 고객 고유의 마이그레이션 도구를 작성하는 데 도움이 되는 소스 코드도 찾을 수 있습니다.

참고 항목

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

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

  1. 기존 캐시가 있는 지역에 VM을 만듭니다. 데이터 세트가 크면 비교적 강력한 VM을 선택하여 복사 시간을 줄입니다.

  2. 프라이빗 엔드포인트를 사용하는 새 Azure Cache for Redis 인스턴스를 만듭니다.

  3. 새 캐시의 데이터를 플러시하여 캐시를 비웁니다. 복사 도구 자체는 대상 캐시의 기존 키를 덮어쓰지 않기 때문에 이 단계가 필수입니다.

    Important

    원본 캐시의 데이터는 플러시하지 않습니다.

  4. 위의 오픈 소스 도구와 같은 애플리케이션을 사용하여 원본 캐시에서 대상으로 데이터 복사를 자동화합니다. 데이터 세트의 크기에 따라 복사 프로세스가 완료될 때까지 다소 시간이 걸릴 수 있습니다.

다음 단계