728x90
확장성이란?
- 소프트웨어나 서비스의 요구사항 수준이 증가할 때 대응할 수 있는 능력
- 주로 규모에 대한 확장성을 뜻함(데이터 크기, 요청 트래픽 등)
- 수직 확장(Scale-up)과 수평 확장(Scale-out)이 사용됨
수평 확장(Scale-Out)
- 처리 요소(ex: 서버)를 여러개 두어서 작업을 분산
- 무중단 확장이 가능
- 이론적으로는 무한대로 확장이 가능
분산 시스템에 따라오는 문제
- 부분 장애
- 네트워크 실패
- 데이터 동기화
- 로드밸런싱(또는 Discovery)
- 개발 및 관리의 복잡성
분산 시스템의 적용
- 분산 시스템으로 인한 trade-off 를 판단해서 적합하다면 사용
- 서비스 복잡도와 규모의 증가로 분산은 피할수 없는 선택
- 분산 시스템의 구현체들은 세부적인 부분에서 튜닝이 가능하게 옵션이 제공됨
- 즉. 분산 시스템의 장단점을 세부적으로 조절 가능
Redis Cluster란?
- 여러 노드에 자동적인 데이터 분산
- 일부 노드의 실패나 통신 단절에도 계속 작동하는 가용성
- 고성능을 보장하면서 선형 확장성을 제공
Redis Cluster 특징
- full-mesh 구조로 통신
- 모든 노드가 모든 노드와 연결되어 있다.
- cluster bus라는 추가 채널(port) 사용
- 16379 port를 cluster bus로 사용한다.
- gossip protocol사용
- 많은 노드가 통신을 할때 근처 노드끼리 통신하여 데이터를 공유한다.
- 소문이 퍼지는것처럼 퍼트린다.
- 많은 노드가 통신을 할때 근처 노드끼리 통신하여 데이터를 공유한다.
- hash slot을 사용한 키 관리
- DB0만 사용가능
- multi key명령어가 제한됨
- 클라이언트는 모든 노드에 접속

Sentinel과의 차이점
- 클러스터는 데이터 분산(샤딩)을 제공함
- 클러스터는 자동 장애조치를 위한 모니터링 노드(Sentinel)를 추가 배치할 필요가 없음
- 클러스터에서는 multi key 오퍼레이션이 제한됨
- Sentinel을 비교적 단순하고 소규모의 시스템에서 HA(고 가용성)가 필요할 때 채
728x90
'DB' 카테고리의 다른 글
[Redis] 확장성과 가용성을 위한 클러스터_뭔 말 인지 모르겠다. (0) | 2024.03.18 |
---|---|
[Redis] Redis Cluster 데이터 분산과 Key 관리_뭔 말 인지 모르겠다. (0) | 2024.03.12 |
[Redis] Redis Sentinel (0) | 2024.03.10 |
[Redis] 레디스의 복제 (0) | 2024.03.10 |
[Redis] 백업과 장애 복구 (AOF 방식) (0) | 2024.03.10 |