이 문서에서는 Redis 입력 및 출력 도구(RIOT) 라이브 마이그레이션 서비스를 사용하여 Redis 오픈소스(Redis OSS), AWS ElastiCache, Azure Cache for Redis와 같은 Redis 호환 소스에서 Google Cloud의 완전 관리형 Redis Enterprise Cloud로 마이그레이션하는 아키텍처를 설명합니다. 이 문서는 Redis 호환 소스에서 완전 관리형 Redis Enterprise Cloud로 마이그레이션하려는 데이터베이스 설계자, 데이터베이스 관리자, 데이터베이스 엔지니어를 대상으로 합니다.
Redis Enterprise Cloud는 중요한 애플리케이션을 지원하는 데 도움이 되는 완전 관리형 엔터프라이즈급 Redis 솔루션입니다. Redis 호환 소스와 비교할 때 향상된 확장성, 가용성, 보안, 운영 효율성을 제공합니다. 무료 명령줄 유틸리티인 RIOT를 사용하면 서비스 중단이나 다운타임 없이 Redis에서 Redis Enterprise Cloud로 데이터를 마이그레이션할 수 있습니다.
아키텍처
다음은 마이그레이션 아키텍처를 보여주는 다이어그램입니다.
다이어그램에서 RIOT 라이브 마이그레이션 서비스는 Redis 호환 소스를 Redis Enterprise Cloud로 마이그레이션하는 데 사용됩니다.
아키텍처에는 다음 구성요소가 포함됩니다.
- 소스: Redis OSS, AWS ElastiCache, Azure Redis와 같은 Redis 호환 소스입니다.
- 대상: Redis 관리 VPC에서 실행되는 Redis Enterprise Cloud입니다.
- 마이그레이션 서비스: Compute Engine 가상 머신(VM)에서 실행되는 RIOT입니다.
사용 제품
이 참조 아키텍처에는 다음과 같은 Google Cloud 및 서드 파티 제품이 사용됩니다.
- Compute Engine: Google 인프라에서 가상 머신을 만들고 실행할 수 있는 안전하고 맞춤설정 가능한 컴퓨팅 서비스입니다.
- RIOT 라이브 마이그레이션: Redis 안팎으로 데이터를 가져오는 데 도움이 되도록 설계된 무료 명령줄 유틸리티입니다.
- Google Cloud의 Redis Enterprise Cloud: 중요한 애플리케이션을 지원하는 데 도움이 되는 완전 관리형 엔터프라이즈급 Redis 솔루션입니다.
사용 사례
Redis는 1밀리초 미만의 지연 시간, 고급 데이터 구조 지원, 복원력, 오픈소스 이동성을 제공합니다. 하지만 자체 관리형 Redis 호환 소스를 확장하여 기업의 까다로운 워크로드를 충족하면서 매우 짧은 지연 시간을 유지하는 것은 어려울 수 있습니다. 자체 관리형 Redis 클러스터 배포의 규모가 커질 경우 확장에 어려움을 겪을 수 있습니다. 가용성이 높은 솔루션을 설계하고 복제를 관리하려면 시간이 많이 소요되고 오류가 발생하기 쉽습니다. 또한 확장으로 인해 하드웨어 관리, 패치, 업그레이드와 관련된 로지스틱 과제 및 비용이 발생합니다.
이러한 과제를 해결하는 데 도움이 되도록 Redis Enterprise Cloud는 Google Cloud와 완전히 통합되어 Redis를 실행, 확장, 관리하는 실시간 데이터베이스 서비스를 제공합니다. Redis Enterprise Cloud는 비즈니스에 중요한 애플리케이션에서 요구하는 오픈소스 코어, 전체 엔터프라이즈급 기능 및 보안, 시장 최고의 성능, 확장성, 가용성을 제공합니다 Redis Enterprise Cloud는 밀리초 미만의 지연 시간, 한 자릿수 초의 장애 조치, 99.999% 업타임을 제공합니다.
설계 대안
RIOT는 Redis 안팎에서 유연한 마이그레이션 솔루션을 제공합니다. 다음 섹션에서는 이 아키텍처에 대한 가능한 설계 대안을 보여줍니다. 대안은 다운타임이 발생하거나 대상 데이터베이스가 Redis 가변형(또는 연간) 구독이어야 합니다.
RDB 스냅샷
Redis 데이터베이스(RDB) 스냅샷은 내구성 있는 스토리지에서 Redis의 데이터를 유지할 수 있는 한 가지 방법입니다. 데이터 세트의 특정 시점 스냅샷을 수행하며 일반적으로 Redis에서 데이터를 백업하는 데 사용됩니다. RIOT를 사용하여 마이그레이션을 수행하는 대신 RDB 스냅샷을 사용하여 Redis OSS 인스턴스에서 Redis Enterprise로 마이그레이션할 수 있습니다. 그러나 RIOT와 달리 RDB 스냅샷은 라이브 마이그레이션을 지원하지 않고 다운타임이 발생합니다.
Active-Passive를 사용하여 동기화
Redis OSS ReplicaOf
명령어를 사용하여 Redis 인스턴스를 다른 Redis 서버의 복제본으로 구성할 수 있습니다. 이 명령어는 서로 다른 Redis 인스턴스에서 데이터 복사본을 만들 수 있는 Redis 복제 컨텍스트에서 사용됩니다. RIOT와 마찬가지로 ReplicaOf
명령어는 라이브 마이그레이션을 지원하고 다운타임이 발생하지 않습니다. 하지만 명령어가 Redis OSS에 내장되어 있으므로 도구를 설치할 필요가 없습니다.
Redis Enterprise의 Active-Passive 지역 배포는 ReplicaOf
명령어를 사용하여 여러 지리적 위치에 Redis 배포를 확장합니다. 대상 데이터베이스가 가변형(또는 연간) 구독인 경우 이 명령어를 사용하여 Redis 데이터베이스에서 Redis Enterprise Cloud 구독으로 데이터를 마이그레이션할 수도 있습니다. 하지만 대상이 고정 구독이면 명령어가 작동하지 않으며 다른 Redis Cloud 계정의 가변형 구독 간에는 작동하지 않습니다.
설계 고려사항
다음 가이드라인은 신뢰성, 비용, 성능에 대한 조직의 요구사항을 충족하는 아키텍처를 개발하는 데 도움이 될 수 있습니다.
신뢰성
이 아키텍처의 마이그레이션은 소스 Redis OSS 인스턴스에서 대상 Redis Enterprise 인스턴스로의 단방향 마이그레이션입니다. 소스 Redis OSS에서 대상 Redis Enterprise 클러스터로 컷오버를 완료한 후에는 소스가 대상 클러스터의 변경사항으로 업데이트되지 않습니다. 따라서 프로덕션 환경에서 이 아키텍처를 구현하면 대체한 애플리케이션을 최신 소스 인스턴스로 전환할 수 없습니다.
비용 최적화
Redis OSS 인스턴스를 Redis Enterprise로 마이그레이션할 때는 멀티테넌시를 사용하여 소유 총 비용을 낮출 수 있도록 대상 Redis Enterprise 데이터베이스를 구독으로 그룹화하는 것이 좋습니다. 예를 들어 개발 및 테스트용으로 설계된 데이터베이스 그룹이 있는 경우 공통적인 특성과 네트워크 요구사항을 공유하므로 단일 구독으로 그룹화할 수 있습니다. 마찬가지로 프로덕션용 데이터베이스 그룹을 다른 구독에 호스팅할 수 있습니다.
성능
RIOT 라이브 마이그레이션은 0에 가까운 다운타임을 지원합니다. 소스 Redis OSS 인스턴스에서 마이그레이션하는 동안 애플리케이션은 아무런 영향 없이 소스 Redis OSS 인스턴스에 계속 액세스할 수 있습니다. 마이그레이션 프로세스 중에 Redis OSS에서 데이터를 처음 로드한 후 RIOT 라이브 마이그레이션은 발생하는 변경사항을 Redis OSS에서 계속 마이그레이션합니다.
초기 키-값 쌍 데이터가 마이그레이션된 후에는 소스 Redis OSS 인스턴스에서 대상 Redis Enterprise 인스턴스로 컷오버를 수행합니다. 컷오버 프로세스의 일부로 소스 Redis OSS 인스턴스에 대한 클라이언트 쓰기를 정지합니다. 그런 다음 RIOT가 소스 Redis OSS 인스턴스에서 대상 Redis Enterprise 인스턴스로 나머지 변경사항을 처리할 때까지 기다립니다.
Deployment
이 아키텍처를 배포하려면 Redis 오픈소스에서 Redis Enterprise Cloud로 마이그레이션하기 위해 RIOT 라이브 마이그레이션 배포를 참조하세요.
다음 단계
- Google Cloud 데이터 마이그레이션 콘텐츠를 읽어보세요.
- 더 자세한 문서와 권장사항은 RIOT 문서를 참조하세요.
- 그 밖의 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항을 알아보려면 클라우드 아키텍처 센터를 확인하세요.
참여자
저자:
- Saurabh Kumar | ISV 파트너 엔지니어
- 길버트 라우 | Redis 수석 클라우드 설계자
기타 참여자: