앞서 Redis의 기본적인 개념에 대해 알아보았고, 이번에는 AWS에서 지원하고있는 ElastiCache for Redis의 구성요소에 대해 정리해보았다.
ElastiCache for Redis 구성 요소
1. 노드
작은 구성 요소
다른 노드와 독립전으로 존재할 수도, 일부와 관련되어 존재할 수도 있음
RAM의 크기가 고정된 청크
클러스터를 생성할 때 선택한 엔진 및 버전의 인스턴스 실행 > Redis 클러스터 생성시 선택하는 인스턴스 유형(노드 유형)가 각 노드마다 할당되는 spec
필요한 경우 스케일 업, 스케일 다운 가능
클러스터 내 모든 노드는 인스턴스 유형 동일
각 노드 별 고유한 DNS 이름 및 포트 존재
연결된 메모리 양이 각각 다름
2. 샤드(노드 그룹) :
1~6개의 노드 그룹
한 샤드에 노드가 두 개 이상인 경우 ‘복제’를 지원. 즉, 하나의 노드만 읽기/쓰기, 나머지는 읽기 전용 복제 노드
3. 클러스터(샤드 그룹) :
샤드 하나 이상이 포함된 “Logical Group”
클러스터모드 비활성시의 단일 샤드 구성도 어쨌든 하나의 logical group으로써 ‘Redis 클러스터’
ElastiCache for Redis 클러스터 모드
➤ 클러스터 모드 비활성화
클러스터 모드 비활성시 항상 ‘단일 샤드’
수요가 변경되면 확장 또는 축소 가능 > 클러스터를 다른 인스턴스 유형의 노드로 이동
읽기 작업이 일부 데이터에 집약적인 경우에 활용하여 적절한 수의 노드로 읽기 분산
➤ 클러스터 모드 활성화
샤드가 두 개 이상(클러스터 모드 활성화)일 때는 데이터가 샤드 간에 파티셔닝된다. 샤딩 기법이라고도 표현하며, 거대한 데이터를 재구조화하여 여러 샤드에 분산하는 것을 의미.
클러스터 모드 활성화시 최대 500개의 샤드로 데이터 분할 가능
조건 : 엔진 버전 5.0.6 이상(이하인 경우 클러스터당 250 개)
예를들어 “샤드 1 & 복제본 5(총 6개)” * 83개 샤드 + 샤드 1개 & 복제본 0 = 499
증가를 수용할 수 있는 IP 주소가 충분한지 확인 필요
한도 증가 요청 가능
ex) ElastiCache for Redis 클러스터 생성 시 구성 모습
Redis 클러스터 생성시 구성 값
클러스터모드
비활성화(단일 샤드 구성)다중 AZ
활성화(서브넷 그룹에 eu-central-1a, eu-central-1c 두 개의 서브넷을 할당했던 상태. 따라서, 노드 생성시 두 AZ에 랜덤하게 배정)복제본 수 :
2** **(복제본(Replica, 읽기 전용 노드) 2개 + 원본(Master, 읽기/쓰기) 1개 = 총 3개의 노드가 구성)
