Computer >> 컴퓨터 >  >> 프로그램 작성 >> Redis

Amazon ElastiCache에서 Redis Enterprise Cloud로의 온라인 데이터베이스 마이그레이션 간소화

오늘날 사용 가능한 대부분의 데이터베이스 마이그레이션 도구는 본질적으로 오프라인입니다. 그것들은 복잡하고 수동 개입이 필요합니다.

예를 들어 Amazon ElastiCache에서 Redis Enterprise Cloud로 데이터를 마이그레이션하려는 경우 일반적인 프로세스는 ElastiCache 데이터를 Amazon S3 버킷에 백업한 다음 Redis Enterprise Cloud UI를 사용하여 데이터를 가져오는 것입니다. 이 프로세스에는 고통스러운 가동 중지 시간이 필요할 수 있으며 데이터 손실이 발생할 수 있습니다. 다른 사용 가능한 기술에는 소스 Redis 서버의 특정 시점 스냅샷을 생성하고 두 서버를 동기화 상태로 유지하기 위해 대상 서버에 변경 사항을 적용하는 것이 포함됩니다. 좋은 접근 방식처럼 들릴 수 있지만 마이그레이션 전략을 구현하기 위해 수십 개의 스크립트를 유지 관리해야 하는 경우 어려울 수 있습니다.

그래서 우리는 다른 접근 방식을 생각해 냈습니다.

RIOT 소개 

RIOT는 Redis의 솔루션 아키텍트인 Julien Ruaux가 구축한 오픈 소스 온라인 마이그레이션 도구입니다. RIOT은 생산자/소비자 접근 방식을 사용하여 클라이언트 측 복제를 구현합니다. 생산자는 ElastiCache에 연결된 키 리더와 값 리더의 조합입니다. 키 판독기 구성 요소는 스캔 및 키 공간 알림을 사용하여 복제할 키를 식별합니다. 각 키에 대해 값 판독기 구성 요소는 DUMP를 수행하고 Redis Enterprise 연결에서 RESTORE를 수행하는 소비자(작성기)에 대한 결과 키+바이트를 처리합니다.

Amazon ElastiCache에서 Redis Enterprise Cloud로의 온라인 데이터베이스 마이그레이션 간소화

이 블로그 게시물은 ElastiCache에서 Redis Enterprise Cloud로 데이터베이스를 온라인으로 원활하게 마이그레이션하는 방법을 보여줍니다.

필수:DBaaS 제공업체를 선택할 때 고려해야 할 6가지 주요 기능Redis Enterprise Cloud가 AWS에서 성숙한 기업 고객의 요구 사항을 충족하는 방법

필수 조건:

마이그레이션 도구를 사용하려면 몇 가지 리소스가 필요합니다.

  1. Redis Enterprise Cloud 구독
  2. Amazon ElastiCache(단일 마스터 EC의 경우 기본 엔드포인트 및 클러스터링된 EC의 경우 구성 엔드포인트:자세한 내용은 ElastiCache 설명서에서 연결 엔드포인트 찾기 참조)
  3. Linux 기반 Amazon EC2 인스턴스

Amazon EC2 인스턴스 설정

새 EC2 인스턴스를 생성하거나 기존 인스턴스를 활용할 수 있습니다. 이 예에서는 먼저 Amazon Web Services(AWS)에서 인스턴스를 생성합니다. 가장 일반적인 시나리오는 동일한 Amazon Virtual Private Cloud(Amazon VPC)의 Amazon EC2 인스턴스에서 ElastiCache 클러스터에 액세스하는 것입니다. 이 설정에 Ubuntu 16.04 LTS를 사용했지만 원하는 Ubuntu 또는 Debian 배포판을 선택할 수 있습니다.

다음과 같이 SSH를 사용하여 컴퓨터에서 이 새 EC2 인스턴스에 연결합니다.

ssh -i “public key” <AWS EC2 Instance>

다음 명령을 실행하여 이 새 인스턴스에 redis-cli 도구를 설치합니다.

$ sudo apt update
# sudo apt install -y redis-tools

redis-cli를 사용하여 ElastiCache 데이터베이스와의 연결 확인

구문:

$ redis-cli -h <Elasticache Primary Endpoint > -p 6379

명령:

$ sudo redis-cli -h <elasticache primary endpoint> -p 6379

위의 명령으로 원격 Redis 데이터베이스에 성공적으로 연결할 수 있는지 확인하십시오.

RIOT 마이그레이션 도구 사용

Amazon ElastiCache에서 Redis Enterprise Cloud로의 온라인 데이터베이스 마이그레이션 간소화

아래 명령어를 실행하여 마이그레이션 도구를 설정하세요.

필수 조건:

Java 설치:OpenJDK 11 이상을 사용하는 것이 좋습니다.

sudo add-apt-repository ppa:openjdk-r/ppa && sudo apt-get update -q && sudo apt install -y openjdk-11-jdk

RIOT 설치 

다음과 같이 패키지의 압축을 풀고 RIOT 바이너리가 제자리에 있는지 확인하십시오.

wget https://github.com/Redislabs-Solution-Architects/riot/releases/download/v2.0.8/riot-redis-2.0.8.zip



unzip riot-redis-2.0.8.zip
cd riot-redis-2.0.8/bin/

아래 명령을 실행하여 RIOT 버전을 확인할 수 있습니다.

./riot-redis --version
RIOT version "2.0.8"


 bin/riot-redis --help
Usage: riot-redis [OPTIONS] [COMMAND]
  -q, --quiet         Log errors only
  -d, --debug         Log in debug mode (includes normal stacktrace)
  -i, --info          Set log level to info
  -h, --help          Show this help message and exit.
  -V, --version       Print version information and exit.
Redis connection options
  -r, --redis=<uri>   Redis connection string (default: redis://localhost:6379)
  -c, --cluster       Connect to a Redis Cluster
  -m, --metrics       Show metrics
  -p, --pool=<int>    Max pool connections (default: 8)
Commands:
  replicate, r  Replicate a source Redis database in a target Redis database
  info, i       Display INFO command output
  latency, l    Calculate latency stats
  ping, p       Execute PING command

Java와 RIOT가 설치되면 소스(ElastiCache)에서 대상(Redis Enterprise Cloud)으로 데이터를 직접 복제하는 아래 명령으로 마이그레이션 프로세스를 시작할 준비가 모두 완료됩니다.

마지막으로 아래 명령을 실행하여 ElastiCache에서 Redis Enterprise Cloud로 데이터를 복제할 차례입니다.

sudo ./riot-redis -r redis://<source Elasticache endpoint>:6379 replicate -r redis://password@<Redis Enterprise Cloud endpoint>:port --live

ElastiCache를 사용하면 클러스터형 및 비클러스터형의 두 가지 방식으로 구성할 수 있습니다. 아래 차트에서 첫 번째 행은 클러스터되지 않은 시나리오에 대해 수행해야 하는 명령을 보여주고 두 번째 행은 특정 데이터베이스 네임스페이스가 있는 클러스터된 시나리오에 대한 명령을 보여줍니다.

Amazon ElastiCache에서 Redis Enterprise Cloud로의 온라인 데이터베이스 마이그레이션 간소화

보시다시피 클러스터링된 ElastiCache가 있을 때마다 소스 ElastiCache 엔드포인트를 지정하기 전에 –cluster 옵션을 전달해야 합니다.

중요 사항

  • 프로덕션에서 마이그레이션을 사용하기 전에 마이그레이션에 대한 사용자 승인 테스트를 수행합니다.
  • 마이그레이션이 완료되면 애플리케이션 트래픽이 Redis Enterprise 엔드포인트로 성공적으로 리디렉션되는지 확인하세요.
  • 트래픽이 적은 기간 동안 마이그레이션 프로세스를 수행하여 데이터 손실 가능성을 최소화합니다.

결론

다운타임 없이 Amazon ElastiCache에서 Redis Enterprise Cloud로 데이터를 이동할 수 있는 간단하고 사용하기 쉬운 라이브 마이그레이션 도구를 찾고 있다면 RIOT가 유망한 옵션입니다.

참조:

  • RIOT – Redis 입력/출력 도구