Redis를 Configuration Store로 활용하기

Redis는 키-값 형태의 데이터를 메모리에 저장하는 데이터베이스입니다. 메모리에 데이터를 저장하기 때문에 속도가 무척 빠른 것이 장점입니다. 물론 메모리 가격이 SSD나 HDD 보다는 훨씬 비싸기 때문에 대용량의 데이터를 저장하기에는 적합하지 않습니다.

Configuration Store

최근 Redis를 설정값 저장공간으로 사용하는 아이디어가 떠올라 구현을 시작했습니다. 예를들어 ZeroMQ의 Publisher 노드의 접속정보와 같은 설정을 Redis에 저장해 놓으면, 여러대의 컴퓨터에 설정파일을 배포하는 번거로운 절차가 사라질겁니다. 각각의 컴퓨터는 Redis에 등록된 설정을 그때그때 가져오기만 하면 되는거죠. ZooKeeper 책을 읽으면서 든 생각입니다. ZooKeeper의 무궁무진한 활용법은 이해가 되는데, 사실 HA가 필요한 것도 아니고 설정파일 공유면 충분할것 같더라고요. 알고보니 Redis에 설정값을 저장하는 아이디어는 이미 Redis in Action에서 자세히 다루고 있었습니다.

RedisLabs Cloud

그렇다면 Redis를 어디에 놓을 것이냐? 내부 네트웍에 놓을경우 외부에서 접속해 테스트하는데 VPN을 켜야 되는 번거로움이 생깁니다. 그래서 RaspberryPi에 담아 가지고 다니기도 했지만 VPN 보다 더 거추장스럽더군요. 결과적으로 RedisLabs에서 제공하는 30MB 무료 공간을 사용하기로 했습니다. 설정파일만 담을거라면 용량이 크지 않아 충분할 것으로 보입니다. 가입을 완료하면 아래와 같이 제공되는 서비스 명세가 나옵니다.

- Subscription : Redis-e Cloud/GCP/asia-northeast1/Standard—30MB
- Used Memory : 1.84 MB
- Replication : Disabled
- Endpoint : redis-••••.c1.asia-northeast1-1.gce.cloud.redislabs.com:••••
- Data Persistence : None
- Access Control & Security : Redis Password •••••••••
- Redis Version Compliance : 4.0.9
- Data Eviction Policy : volatile-lru
- Periodic Backup : None
- Alert Settings : Total size of datasets under this plan has reached 80% of plan limit, Number of connections has reached 80% of plan limit

Yoonbae Cho

Hobbyist Programmer and Photographer

South Korea https://xcv.kr