앞서 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 주소가 충분한지 확인 필요

    • 한도 증가 요청 가능

📌
내결함성을 위한 구성 : 최소 두개의 노드 & 다중 AZ 활성화

ex) ElastiCache for Redis 클러스터 생성 시 구성 모습


Redis 클러스터 생성시 구성 값

  • 클러스터모드 비활성화 (단일 샤드 구성)

  • 다중 AZ 활성화 (서브넷 그룹에 eu-central-1a, eu-central-1c 두 개의 서브넷을 할당했던 상태. 따라서, 노드 생성시 두 AZ에 랜덤하게 배정)

  • 복제본 수 : 2** **(복제본(Replica, 읽기 전용 노드) 2개 + 원본(Master, 읽기/쓰기) 1개 = 총 3개의 노드가 구성)