본문 바로가기

반응형
SMALL

독서

(29)
[개발자를 위한 레디스] 13장 레디스 운영하기 레디스 모니터링 구축하기프로메테우스와 그라파나를 이용한 레디스 모니터링레디스 모니터링 구조익스포터(exporter): 시스템의 상태를 실시간으로 스크랩해서 메트릭을 수집하는 프로그램프로메테우스: 메트릭 기반의 오픈 소스 모니터링 시스템시계열 형태로 데이터 저장지정한 타깃으로 직접 접근해 데이터를 pull 방식으로 수집그라파나: 오픈 소스 메트릭 데이터 시각화 도구로, 데이터를 시각화해서 시스템의 분석과 모니터링을 용이하게 해주는 플랫폼프로메테우스를 실행할 때 알람 규칙(alerting rule)을 설정할 수 있다.수집한 메트릭을 그라파나로 볼 수 있다.메트릭별 임계치를 지정할 수 있다.특정 임계치에 도달했을 때 사용자에게 통지하기 위해 얼럿 매니저(alert manager) 프로그램을 사용한다. 10.0..
[개발자를 위한 레디스] 11장 보안 커넥션 제어bind레디스에서 bind 설정이 동작하는 방법이다.bind 설정: 레디스가 서버의 여러 ip 중 어떤 ip를 통해 들어오는 연결을 받아들일 것인지 지정한다. bind의 기본 설정 값은 127.0.0.1이다.기본값을 변경하지 않으면 레디스는 오직 동일한 서버 내에서의 연결만을 허용한다.서버 외부에서 직접 레디스에 접근해야 하는 경우, 이 값을 서버를 바라보는 다른 유효한 IP 주소로 변경해야 한다.bind 설정값 자체를 주석 처리하거나 0.0.0.0 또는 *로 설정하는 경우, 레디스는 서버가 가지고 있는 IP 주소로 들어오는 모든 연결을 허용하는 방식으로 동작한다. 패스워드노드에 직접 패스워드를 지정하는 방식requirepass 커맨드로 패스워드 설정ACL(Access Control List)..
[개발자를 위한 레디스] 10장 클러스터 레디스 클러스터와 확장성스케일 업 vs 스케일 아웃확장성: 운영 중인 시스템에서 증가하는 트래픽에 유연하게 대응할 수 있는 능력 리소스를 투입하는 방식에 따라 스케일 업과 스케일 아웃으로 구분할 수 있다.스케일 업 (수직 확장): 서버의 하드웨어를 높은 사양으로 업그레이드하는 것스케일 아웃 (수평 확장): 장비를 추가해 시스템을 확장시키는 방식 레디스에서의 확장성키의 이빅션(eviction)이 자주 발생한다면 서버의 메모리를 증가시키는 스케일 업을 고려할 수 있다.키의 이빅션: 레디스 인스턴스의 max memory만큼 데이터가 차 있을 때 또 다시 데이터를 저장할 때 발생하는 것처리량을 증가시키고자 할 때 여러 서버로 분할해 관리하면 다수의 서버에서 요청을 병렬로 처리할 수 있으므로, 서버 대수를 늘림으..
[개발자를 위한 레디스] 9장 센티널 고가용성 기능의 필요성복제 구성으로만 레디스를 사용하고 있었다면 마스터 노드에 발생한 장애 처리가 지연돼 곧바로 서비스 기능의 문제로 이어질 수 있다.look aside 구성에서는 애플리케이션이 캐시에 접근할 수 없을 때 캐시 스탬피드 현상이 일어나 서비스에 영향을 끼칠 수 있다. 1. 복제본 노드에 직접 접속한 뒤 REPLICA OF NO ONE 커맨드를 입력해 읽기 전용 상태 해제2. 애플리케이션 코드에서 레디스의 엔드포인트를 복제본의 IP로 변경3. 배포 센티널이란?센티널: 레디스의 자체 고가용성 기능센티널의 자동 페일오버 기능을 사용하면 마스터 인스턴스에 장애가 발생하더라도 레디스를 계속 사용할 수 있도록 동작해 레디스의 다운타임을 최소화할 수 있다. 센티널 기능모니터링자동 페일오버 - 마스터의 ..
[개발자를 위한 레디스] 8장 복제 - 가용성: 일정 기간 동안 서비스를 정상적으로 사용할 수 있는 시간의 비율- 가용성이 높은 시스템을 고가용성 시스템이라고 한다. 레디스에서의 복제 구조 복제본 노드를 추가하는 이유마스터 데이터베이스가 다운되었을 때 대신 사용할 수 있다.트래픽을 감소시키는 역할을 한다.백업을 복제본에서 수행하면 백업 작업이 서비스에 미치는 영향을 최소화할 수 있다. 복제 구조 구성하기복제본이 될 노드 B에서 REPLICAOF 커맨드를 입력해 마스터 노드의 정보를 입력하면 복제 연결이 시작된다. 가장 상위의 노드인 마스터 노드만 데이터를 업데이트하는 커맨드를 수행할 수 있다.하위 복제본은 모두 읽기 전용으로 동작하기 때문에 데이터를 읽어가는 커맨드만 수행할 수 있다. 패스워드 설정requirepass 옵션을 이용해 패스워..
[개발자를 위한 레디스] 7장 레디스 데이터 백업 방법 레디스에서 데이터를 영구 저장하기레디스 인스턴스가 재시작될 경우 메모리에 상주해 있던 레디스의 모든 데이터는 손실될 가능성이 있다.복제: 가용성을 위한 것백업: 장애 상황에서 데이터의 복구를 위한 것 레디스에서는 RDB와 AOP 두 가지의 백업 방식을 지원한다. RDBAOP개념일정 시점에 메모리에 저장된 데이터 전체를 저장한다. (snapshot)레디스 인스턴스가 처리한 모든 쓰기 작업을 차례대로 기록한다.복원 시에는 파일을 다시 읽어가며 데이터 세트를 재구성한다.장점시점 단위로 여러 백업본을 저장할 수 있다.AOF 파일보다 복원이 빠르다.원하는 시점으로 복구할 수 있다.단점특정 시점으로의 복구는 불가능하다.RDB 파일보다 크기가 크고 주기적으로 압축해 재작성해야 한다. RDB 방식의 데이터 백업원하는 ..
[개발자를 위한 레디스] 6장 레디스를 메시지 브로커로 사용하기 메시징 큐와 이벤트 스트림생산자는 소비자의 큐로 데이터를 직접 푸시한다.소비자가 데이터를 읽어갈 때 큐에서 데이터를 삭제한다.일대일(1:1) 상황에서 유리하다. 생산자는 스트림의 특정 저장소에 하나의 메시지를 보낼 수 있고, 소비자들은 스트림에서 같은 메시지를 풀(pull)해 갈 수 있다.구독자가 읽어간 데이터는 저장소의 설정에 따라 특정 기간 동안 저장될 수 있다.다대다(n:n) 상황에서 유리하다. 레디스를 메시지 브로커로 사용하기레디스에서 제공하는 pub/sub를 사용하면 빠르고 간단한 방식으로 메시지를 전달할 수 있는 메시지 브로커를 구현할 수 있다.모든 데이터는 한 전 채널 전체에 전파된 뒤 삭제된다. (일회성)fire-and-forget 패턴이 필요한 상황에서 유용하게 사용할 수 있다. (ex...
[개발자를 위한 레디스] 5장 레디스를 캐시로 사용하기 레디스와 캐시캐시란?캐시란 데이터의 원본보다 더 빠르고 효율적으로 액세스할 수 있는 임시 데이터 저장소를 의미한다.사용자가 동일한 정보를 반복적으로 액세스할 때 원본이 아니라 캐시에서 데이터를 가지고 옴으로써 리소스를 줄일 수 있다.애플리케이션이 다음 조건을 만족시킨다면, 캐시를 도입했을 때 성능을 효과적으로 개선할 수 있다.원본 데이터 저장소에서 원하는 데이터를 찾기 위해 검색하는 시간이 오래 걸리거나, 매번 계산을 통해 데이터를 가져와야 한다.캐시에서 데이터를 가져오는 것이 원본 데이터 저장소 데이터를 요청하는 것보다 빨라야 한다.캐시에 저장된 데이터는 잘 변하지 않는 데이터다.캐시에 저장된 데이터는 자주 검색되는 데이터다. 캐시로서의 레디스레디스는 단순하게 키-값 형태로 저장하므로, 데이터를 저장하..

반응형
LIST