본문 바로가기

Software Engineering/Redis

(10)
[Redis] redis replication, sentinel 테스트 구성 해보기 Redis의 replication과 sentinel 구성을 테스트 해보기 위해, 샘플 클러스터를 구성해보았습니다. 실제 운영 환경에는 사용할 수 없지만, fail-over, bench-mark 테스트에 활용할 수 있도록 1개의 VM에서 redis 인스턴스 3개, sentinel 인스턴스 3개가 동작하도록 구성하였습니다.실행 환경Ubuntu 20.04Redis 6.2.7PC: N100, 8GB클러스터 구성여기서 클러스터는 다수의 master-replica로 구성된 redis cluster가 아닌, master-replica-replica로 구성된 하나의 세트를 의미합니다. 아래와 같이 클러스터를 구성하고, 필요한 파일을 먼저 정리해 봅니다.script 준비 항목 정리각 인스턴스를 실행하기 위한 script..
[Redis] 운영을 위한 redis, sentinel config 파일 샘플 Redis 서버를 Replica 형태로 구성하고, sentinel을 사용하여 HA를 제공하도록 confing 파일 샘플을 작성해보았습니다.예상 운영 환경VM x 3대Redis: master - replica1 - replica2 Sentinel: sentinel - sentinel - sentinelredis.conf 예제RDB, AOF, Replica를 설정하고, TLS, ACL는 사용하지 않도록 설정하였습니다.################################## NETWORK #####################################bind 0.0.0.0protected-mode yesport 6379tcp-backlog 511timeout 0tcp-keepalive 300#####..
[Redis] replication, sentinel HA 적용을 위한 사전 지식 Redis HA 구성을 위해서는 replication, sentinel 구성이 필요합니다. 실제 서버 적용에 앞서 replication이 어떻게 동작하는지, sentinel을 어떻게 구성해야하는지 정리해보았습니다. 내용은 실제 수행 순서와는 상관이 없습니다.Replication의 개념실제 운영에 사용되는 메인 레디스 인스턴스를 master, 복제 인스턴스를 replica라고 하겠습니다.redis replication은 replica 인스턴스가 master를 구독하는 형태로 설정된다.즉, replication 설정은 replica 인스턴스에서 진행한다.replica 인스턴스는 오직 하나의 master만을 가질 수 있다.replica 인스턴스는 또 다른 인스턴스의 master가 될 수 있다.replica 인..
[Redis] systemd 서비스 등록을 위한 unit 파일 예제 redis를 소스 코드로 빌드하여 설치하면 systemd 서비스 등록을 위한 유닛 파일을 직접 작성하고 등록해야합니다. 패키지 관리자를 사용하여 설치할 때 생성되는 유닛 파일을 복사해서 사용할 수도 있지만, 폐쇠망과 같이 안전한 환경에서 사용할 때는, 꼭 필요한 항목만 작성하여 사용해도 괜찮을 것 같습니다.unit 파일 샘플[Unit]Description=Advanced key-value storeAfter=network.target[Service]Type=notifyExecStart=/usr/bin/redis-server /etc/redis/redis.confExecStop=/bin/kill -s TERM $MAINPIDPIDFile=/run/redis/redis-server.pidRestart=alw..
[Redis] Ubuntu에 apt-get으로 설치한 redis 기본 설정 내용 살펴 보기 소스 코드로 redis를 설치하다 보니, apt-get으로 설치하면 경로, 설정 등이 어떻게 다를까? 하는 궁금증이 생겨 한번 정리해보았습니다. 가능하면 패키지 관리자가 설치한 것과 동일한 설정으로 redis를 설치하여, redis를 사용하게 될 동료들이 예상한 위치에 예상한 파일이 있도록 미리 맞춰 놓을 때 참고하려 합니다.테스트 환경Ubuntu 20.04redis 6.2.7기본 설치아래 명령어를 사용하여 redis, redis-server, redis-tools, redis-sentinel을 설치합니다.$ sudo apt-get install redis=6:6.2.7-1rl1~focal1 redis-server=6:6.2.7-1rl1~focal1 redis-tools=6:6.2.7-1rl1~focal..
[Redis] Ubuntu 환경에서 source code로 설치한 redis 삭제하기 지난 글에서는 폐쇠망 환경에서 redis를 설치하기 위해 소스 코드를 다운로드 받아서 redis를 설치하는 방법을 알아보았습니다. 이 경우에는 패키지 관리자가 redis 삭제를 지원하지 않기 때문에 수동으로 redis를 삭제해야 합니다. 진행하는 순서는 삭제 해야 할 서비스와 파일을 확인, 서비스 삭제, 파일 삭제 순서로 진행합니다.실행 환경Ubuntu 20.04Redis 6.2.7 (소스 코드 빌드, systemd로 서비스 등록)Redis 서비스 및 삭제 대상 파일 확인먼저 삭제 할 redis 서비스명을 확인합니다. 서비스명을 알고 있다면 건너뛰어도 좋습니다.# redis로 등록된 서비스 목록 확인$ systemctl list-units --type=service --all | grep redis r..
[Redis] Ubuntu 환경에서 source code를 사용하여 redis 설치하기 외부 인터넷에 접속할 수 없는 폐쇠망 환경에서는 소스 코드를 사용하여 redis를 설치해야 할 때가 있습니다. 소스 코드를 다운로드 받아 빌드하고 systemd를 사용하여 redis 서비스를 등록하는 방법을 알아보겠습니다. 진행은 소스 코드 다운로드, 빌드, config 파일 준비, 서비스 등록 순서로 진행합니다.실행 환경Ubuntu 20.04Redis 6.2.7소스 코드 다운로드설치하려는 버전의 redis 소스 코드를 다운로드 합니다. 직접 외부망에 접속 할 수 없는 경우는 해당 파일을 다운로드 하여 내부 ftp 등을 사용하여 파일을 복사합니다. (소스 코드 다운로드 : https://download.redis.io/releases/)# wget을 사용하여 직접 다운로드$ wget https://dow..
[Redis] Ubuntu 환경에서 Redis 외부 접속 설정하기 실행 환경Ubuntu 20.04.6Redis 6.2.7외부 접속 확인먼저 redis가 설치된 host 외부에서 redis-cli를 사용하여 접속이 되는지 확인합니다.(client)$ redis-cli -h 192.168.0.26 -p 6379Could not connect to Redis at 192.168.0.26:6379: Operation timed out redis server의 외부 접속을 허용하지 않았기 때문에, 접속 시 time-out이 발생하는 것을 볼 수 있습니다.외부 접속 설정 방법외부 접속을 허용하기 위해서는 bind 설정 값을 변경해야 합니다. 먼저 redis-cli를 실행하여 현재 설정 값을 확인합니다.$ redis-cli127.0.0.1:6379> config get bind1)..