티스토리 뷰

BackEnd/Redis

[Redis] Redis Sentinel vs Cluster

뱃싸공 2023. 1. 7. 11:58

이전에 나는 면접에서 'Redis를 캐시로 사용했을 때, Redis가 멈출 수도 있는데 어떻게 대처하겠는가?'에 대한 질문을 받은 적이 있었다. 이 질문은 장애 대처 능력에 대해 물어본 것인데, 지식이 부족해 죄송합니다를 연발했던 기억이 난다. 이 문제를 해결하려면 Redis의 HA를 구성하는 방법에 대해 알아야 한다.

간단하게 위와같이 서비스를 구축하게 된다면, Redis가 고장 났을 때 서비스에도 영향을 줄 수밖에 없다. 하지만, Redis를 여러 개 띄우고, 하나의 Redis처럼 사용할 수 있다면 문제를 해결할 수 있을 것이다.

Redis의 HA(고가용성)을 구성하는 방법은 크게 Sentinel과 Cluster, 2가지가 존재한다. 이번에는 이 두 가지 방식을 비교하는 글을 작성해보려고 한다.

Redis Sentinel

운영환경에서 레디스는 일반적으로 Master와 Slave로 구성된다. 그리고 서비스 운영 중 Master가 다운되었다면 이를 감지해서 Slave를 마스터로 올리고 클라이언트들이 새로운 Master에 접속할 수 있도록 해 주어야 한다. Sentinel은 Mater와 Slave를 감시하고 있다가 Master가 다운되면 이를 감지해서 관리자의 개입 없이 자동으로 Slave를 Master로 올려주는 기법이다.

Sentinel의 주요 기능은 크게 3가지가 존재한다.

  • 모니터링 : Master Node와 Slave Node에 문제가 없는지 확인하는 기능
  • Fail Over : Master Node에 문제가 생길 경우 새로운 Master Node를 선정하는 기능
  • 알림 : 문제가 생길 경우 알림을 전송하는 기능

https://ichi.pro/ko/redis-sentinel-mich-spring-lettuce-keullaieonteuleul-tonghan-go-gayongseong-173327786572930

Redis Sentinel 구성시에는 반드시 따라야 하는 원칙이 한 가지 있다. 바로 Sentinel Node의 개수를 3개 이상의 홀수개의 인스턴스를 구성해야 한다는 것이다. 이는 Sentinel의 Fail Over가 과반수 이상의 Sentinel Node에서 Master Node에 장애가 발생했다고 판단했을 때 수행되기 때문인데, 하나의 Sentinel Node의 오류로 Slave Node가 Master Node로 승격되는 문제를 방지할 수 있다.

Redis Cluster란?

저장 장치를 여러개 동시에 사용하고 마치 하나의 저장소처럼 사용하는 방법이 'Cluster'이다. 동시에 여러개의 서버가 멈출 가능성은 낮기에 'HA(고가용성)'를 제공할 수 있으며, 여러 대의 서버에 데이터가 분산되어 저장되므로 트래픽이 분산되는 효과도 얻을 수 있다. 가장 큰 이점은 특정 서버에 장애가 일어나더라도 백업 서버의 보완을 통해 데이터의 유실 없이 서비스를 계속 이어나갈 수 있다는 점이다.

Redis Cluster는 Sentinel처럼 Fail Over를 지원하고, Data Sharding까지 지원한다.

이때 Sharding은 Master 단위로 수행하기에 Master당 최소 하나의 Slave가 존재하지 않는다면 데이터 유실이 발생할 수 있다.

Sentinel vs Cluster

그러면, 어떤 기법을 사용하는 것이 좋을까?
위에서 살펴본 개념만으로는 Cluster가 Sentinel보다 상대적으로 더 안정적으로 보인다. 데이터 샤딩을 지원하기 때문에 트래픽을 분산해 처리할 수 있다는 장점이 있다.

하지만, 큰 트래픽이 없다면 Cluster는 오버 엔지니어링이 될 가능성이 있다. 따라서 상대적으로 작은 서비스에서는 Sentinel이 좋을 것이고, 대규모 환경에서는 Cluster가 서비스를 안정적으로 유지할 수 있는 기법이라고 보인다.

Ref : 

 

Redis Sentinel vs Cluster - Which is Better? (Pros and Cons)

Redis Sentinel vs Cluster - Which is Better?.  In this article we will discuss the differences between Redis Sentinel vs Cluster with their pros and

cloudinfrastructureservices.co.uk

 

Redis Sentinel 및 Spring Lettuce 클라이언트를 통한 고 가용성

Redis는 매우 인기있는 오픈 소스이며 매우 빠른 인 메모리 키-값 데이터 저장소입니다. 다른 것과 달리 데이터를 저장할 수있는 다양한 데이터 구조를 제공합니다.

ichi.pro

 

 

'BackEnd > Redis' 카테고리의 다른 글

[Redis] Redis Sentinel 구성하기  (0) 2023.01.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함