본문 바로가기

교육/Advanced 과정

DBaaS for Redis 알아보기

DBaaS for Redis 알아보기

오늘은 DBaaS for Redis에 대해 알아봅니다.DBaaS for Redis는 안정성과 편의성에 특화되어 있습니다. 데이터 백업 및 복원의 지원, 자동 Fail-Over, 중요 Command를 차단하는 기능을 제공하여 안정적인 서비스 제공이 가능하죠. 뿐만 아니라 클라우드 콘솔에서의 쉽고 간편한 설치, 구조 및 사양 별 설정값 최적화, 성능 모니터링 및 알람 기능을 제공하여 사용자는 쉽고 편리하게 서비스 구축 및 관리가 가능합니다.

 

DBaaS for Redis 알아보기

목차

1.Redis란?

 1)개요

 2)구조

2. DBaaS for Redis란?

 1) 개요

 2) 주요 특징

 

1. Redis란?

Redis 개념

Redis란 Remote Dictionary Server의 약자로, 키에 값을 매핑하는 구조로 저장하는 NoSQL 데이터베이스를 말하는데요. 데이터를 메모리에 저장하고 처리하는 DBMS로 In-Memory DB중 가장 인기 있는 서비스죠. 디스크 대신에 메모리를 사용함으로써 I/O 성능이 좋아서 주로 데이터 캐싱 용도로 사용됩니다. 다만 휘발성 메모리 기반이기 때문에 장애 시, 데이터 손실 가능성이 높은 특징이 있습니다. 

Redis 구조

 Redis는 다음과 같이 3가지 구조로 구축하여 사용이 가능합니다. StandAlone은 Redis 서버 1개로 서비스하는 방식으로, 장애 시 HA 기능의 부재로 서비스의 중단과 데이터 손실 위험이 높습니다. 그렇기 때문에 로컬이나 DEV 환경에서 사용하기 적합하며, 안정성을 추구하는 서비스의 경우 Master/Replica 또는 Cluster 방식으로 Redis를 사용합니다.
Master/Replica 방식은 Master 역할을 하는 1개의 Redis 서버와 복제본인 Replica 다수대로 구성되어 있습니다. Master는 데이터의 읽기와 쓰기가 가능한 Read-Write 모드로 동작하며 Replica에서는 데이터의 읽기만 가능한 Read-Only 모드로 동작합니다. Master와 Replica로만 구성 될 경우, 만약 Master의 장애가 발생한다면 데이터 Write를 수행할 수 없기 때문에 서비스가 정상적으로 작동하지 않습니다. 이러한 가용성 문제를 해결해주는 것이 Sentinel입니다. Sentinel은 Master의 상태를 체크하여 Master 장애 시, Replica 중 하나를 Master로 승격시킵니다. 즉 관리자의 개입 없이 Fail-Over가 되므로 HA가 가능합니다. 일반적으로 Sentinel은 홀수개로 구성해야하며 최소 3개 이상이 필요합니다. Master의 장애 발생을 판단하는 기준이 Sentinel의 과반수 합의로 이루어지기 때문입니다.

Cluster 방식은 Master 역할을 하는 Redis를 여러개 두어 데이터를 샤딩, 즉 분산 저장하고 처리합니다. 즉 Master의 대수를 늘릴 수록 저장할 수 있는 공간이 커지는 구조 입니다. Cluster 방식에서는 Master 역할의 Redis는 최소 3개가 있어야 구성이 가능합니다. Cluster 방식도 Replica가 있는 경우 HA가 지원됩니다. Cluster 방식으로 구성된 Redis에서 서로를 감시하여 Master 장애 시, Replica가 Master로 승격되는 자동 Fail-Over가 이루어 집니다. 그리고 Master 역할의 Redis에 하나 이상의 Replica를 둘 수 있습니다. 

 

2. DBaaS for Redis란?

DBaaS for Redis 소개
DBaaS for Redis 주요특징

Cloud 환경의 Redis를 사용할 경우 얻을 수 있는 이점에 대해 알아보겠습니다. Redis 뿐만 아니라 서비스의 구축과 운영단계에서 관리자는 다양한 요소를 생각하여 설계해야 하기 때문에 어려움이 많습니다. 설정과 운영, 데이터 손실 측면에서 본 Redis의 직접 구성 및 운영의 어려운 점은 다음과 같습니다. 먼저 설정 측면입니다. 서비스에 최적화된 Redis Config값 설정을 위해서는 Config 값에 대한 분석과, 적정 값 도출까지 검증이 필요합니다. 운영 측면에서는 두가지로 요약됩니다.
첫째, Fail-Over 후 변경된 Redis 접속 경로는 수동으로 변경하여 Down-Time을 최소화 해야 합니다. Fail-Over가 된 후, 서비스의 HA를 위해서는 Proxy를 두는 등의 접속 경로 변경 작업이 필요합니다. 둘째, Redis의 안정적인 운영을 위해 관리자는 Redis의 성능을 모니터링 할 필요가 있습니다. Redis에 agent를 설치하거나 직접 수집하는 등의 별도 모니터링을 위한 작업이 필요합니다. 데이터 손실 측면에서는, 데이터를 휘발성 메모리에 저장하기 때문에 데이터 손실 가능성이 높습니다. 데이터 백업을 위한 별도 Tool을 도입하여 데이터 손실을 막아야 합니다. 별도 요금을 지불하고 관리형 DBaaS for Redis를 사용하여 현업에서 Redis 도입 시 이러한 어려움을 해소할 수 있습니다.

 

 

💁영상으로 학습하기

 

 

'교육 > Advanced 과정' 카테고리의 다른 글

SW개발 Dev Tools 실습  (1) 2022.09.23
SW개발 Dev Tools 알아보기  (0) 2022.09.20
DBaaS for Redis 실습하기  (0) 2022.09.15
kt cloud 보안의 이해 (심화) 02편  (0) 2022.08.22
kt cloud 보안의 이해 (심화) 01편  (0) 2022.08.22