- 최신
- 최다 투표
- 가장 많은 댓글
문의주신 내용에 대하여 결론부터 말씀드리자면, AWS 네이티브 수준에서 하나의 ElastiCache 클러스터에서 다른 ElastiCache 클러스터로 데이터를 복사하는 방법은 없습니다. 이 작업은 ElastiCache 서비스가 아닌 애플리케이션 수준에서 수행해야 하며, 이를 위해 Third-party 솔루션을 사용할 수 있습니다. 그 중 하나인 RIOT를 소개해드립니다. [+] https://developer.redis.com/riot/
++++++++++++++ 절차 +++++++++++++++++++++++
1단계: Riot-Redis를 설치하려면 EC2 인스턴스를 시작하십시오. 이 인스턴스를 RIOT-Redis 호스트라고 부르겠습니다.
Riot-Redis는 Java가 필요하며 먼저 설치해야 합니다. 여기에서 우분투 인스턴스를 사용하고 있다고 가정해 봅시다.
a.) sudo apt update //패키지 인덱스 업데이트
b.) $ java -version //Java가 이미 설치되어 있는지 확인하고, 그렇지 않으면 다음 명령을 실행합니다.
c.) $ sudo apt install default-jre
d.) $ java -version // Open JDK 11를 사용해야 합니다.
RIOT-Redis git 리포지토리를 복제하십시오:
$ git clone https://github.com/redis-developer/riot.git
복제하신 바이너리는 다음 명령어를 통해 찾을 수 있습니다.
$ cd riot/bin
2 단계: Riot-Redis 호스트가 포트 6379에서 소스와 목적지 모두에 도달 할 수 있는지 확인하십시오. 소스 및 대상은 온프레미스 또는 모든 클라우드 Redis 데이터베이스일 수 있습니다.
참고: 온프레미스 Redis를 사용하는 경우 Redis의 설정을 다음과 같이 수정하여 통신이 가능하도록 하셔야 합니다. '/etc/redis/redis.conf' 파일을 편집하신 이후 Redis 서비스를 다시 시작하십시오.
bind 0.0.0.0
protected-mode no
3단계: 복제 (Riot-Redis 호스트에서 명령 실행)
a.) ElastiCache에서 ElastiCache로 (클러스터 모드가 비활성화된 경우).복제하려면 아래 명령을 사용하십시오.
$ ./riot-redis -h <source_EC_endpoint> -p 6379 replicate -h <Destination_EC_endpoint> -p 6379 --mode snapshot
b.) ElastiCache에서 ElastiCache로 (클러스터 모드가 활성화된 경우).복제하려면 아래 명령을 사용하십시오.
$ /riot-redis -h <source_EC_endpoint> -p 6379 -c replicate -h <Destination_EC_endpoint> -p 6379 -c --mode snapshot
복제 모드:
--mode snapshot
키 스캔을 사용한 초기 복제
--mode liveonly
키스페이스 알림을 사용한 연속 복제 (변경된 키만 복제됨)
--mode live
키 스캔과 키스페이스 알림을 동시에 사용하는 초기 및 연속 복제
참고: "live" 모드를 사용하려면 Redis에서 키스페이스 알림을 활성화해야 합니다.
Onprem - "CONFIG SET 알림-키스페이스-이벤트 KEA" Elasticache - Blog
라이브 복제 메커니즘은 데이터 일관성을 보장하지 않습니다. Redis는 게시/구독을 통한 키스페이스 알림 전송이 보장되지 않습니다. 예를 들어 네트워크 장애가 발생하는 경우 Riot-Redis가 일부 알림을 놓칠 수 있습니다. 따라서 안정성을 위해 스냅샷 모드를 사용하는 것이 좋습니다.
관련 콘텐츠
- 질문됨 7년 전
- 질문됨 9달 전
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 2년 전