콘텐츠로 이동

Redis 운영 개요

운영 서버(Production Server) 에서 Redis를 안정적으로 운영하기 위한 운영 기준과 구조적 원칙을 정의함.

설치 명령만 나열하지 않고, Redis를 어떤 기준으로 운영해야 하는지 정리함.


항목 내용
원문 참고 How to Install Redis on Rocky Linux
원문 URL https://www.linuxcapable.com/how-to-install-redis-on-rocky-linux/
공식 참고 Redis Open Source RPM 설치 문서, Redis 보안/ACL/TLS/영속성/운영 관리/Sentinel 문서
문서 목적 Rocky Linux 9 또는 8 서버에서 Redis를 설치하고 운영 기준으로 적용하기 위한 절차를 정리함
적용 범위 단일 Redis 인스턴스 기본 운영, 내부망 Redis, 캐시/세션/임시 상태 저장소, Sentinel 기반 HA 검토 전 단계

Redis는 오픈소스 인메모리 데이터 구조 저장소이며 데이터베이스, 캐시, 세션 저장소, 메시지 브로커, Pub/Sub, rate limit 저장소 등 다양한 용도로 사용됨.

Redis는 대부분의 데이터 처리를 메모리에서 수행하므로 읽기/쓰기 지연 시간이 낮고 처리량이 높음. 다만 운영 환경에서는 설치 자체보다 다음 항목을 명확히 결정하는 것이 중요함.

  • 어떤 패키지 출처를 사용할 것인지
  • Redis와 Valkey 중 무엇을 사용할 것인지
  • Redis를 캐시로 사용할 것인지, 데이터 보존이 필요한 저장소로 사용할 것인지
  • 외부 접근을 허용할 것인지
  • 인증을 requirepass로 할 것인지 ACL로 할 것인지
  • TLS를 적용할 것인지
  • maxmemory와 eviction policy를 어떻게 설정할 것인지
  • RDB/AOF 영속성을 사용할 것인지
  • lazyfree, AOF rewrite, THP, overcommit 등 latency 관련 운영 설정을 어떻게 할 것인지
  • 백업, 복구, 모니터링, 장애 대응 기준을 어떻게 둘 것인지
  • 단일 노드로 충분한지, replica/Sentinel/Cluster가 필요한지

이 문서는 단순 설치 가이드가 아니라 운영 서버에 적용 가능한 Redis 설치 및 기본 운영 기준을 정리함.


문서 구성


Redis 주요 특징

  • 인메모리 데이터 저장 Redis는 데이터 접근을 메모리 중심으로 처리하여 빠른 읽기 및 쓰기 성능을 제공함.

  • 다양한 자료구조 지원 문자열, 해시, 리스트, 셋, 정렬 셋, 스트림, 비트맵, HyperLogLog 등 다양한 자료구조를 지원함.

  • 영속성 지원 RDB snapshot, AOF(Append Only File), RDB+AOF 조합을 통해 데이터를 디스크에 저장할 수 있음.

  • Pub/Sub 메시징 publish/subscribe 구조를 통해 애플리케이션 간 실시간 메시징을 구현할 수 있음.

  • Lua 스크립팅 서버 측에서 원자적으로 복합 작업을 실행할 수 있음.

  • 복제 및 고가용성 replica, Sentinel, Cluster 구성을 통해 장애 대응 및 확장 구조를 만들 수 있음.

  • 단일 스레드 이벤트 루프 중심 구조 Redis 명령 실행 경로는 대부분 단일 스레드 이벤트 루프 기반으로 동작함. 최신 Redis는 일부 I/O 및 백그라운드 작업에서 스레드를 활용하지만, 단일 인스턴스가 모든 CPU core를 선형적으로 사용하는 구조는 아님. CPU core 전체를 활용해야 하는 경우에는 Redis Cluster 또는 다중 인스턴스 구성을 검토함.


1. 운영 적용 전 결정 사항

Redis를 설치하기 전에 다음 항목을 먼저 결정해야 함.

항목 결정 기준
Redis 용도 캐시, 세션 저장소, 큐, Pub/Sub, 데이터 저장소 중 무엇인지 결정함
데이터 유실 허용 여부 캐시처럼 유실 가능인지, 세션/상태 저장처럼 일부 보존이 필요한지 결정함
패키지 출처 AppStream, Remi, Redis 공식 RPM 중 선택함
Redis/Valkey 선택 애플리케이션 호환성, 라이선스, 운영 표준에 따라 선택함
접근 범위 localhost 전용인지, 내부망 원격 접근을 허용할 것인지 결정함
인증 방식 legacy requirepass 또는 Redis 6 이상 ACL 중 선택함
TLS 사용 여부 내부망 평문 허용인지, TLS 암호화 필수인지 결정함
메모리 상한 서버 RAM, 애플리케이션 메모리, OS, fork 시 copy-on-write 여유를 고려함
eviction policy 캐시용인지 저장소용인지에 따라 선택함
persistence RDB, AOF, 둘 다 사용, 또는 미사용 중 선택함
고가용성 단일 노드, replica, Sentinel, Cluster, managed Redis 중 선택함

운영 서버에서는 Redis를 단일 노드로 구성하면 해당 노드는 장애 지점이 됨. 중요 데이터 또는 세션을 Redis에 저장하는 경우 replica/Sentinel 또는 Cluster 구성을 별도 검토해야 함.


2. Redis와 Valkey 선택 기준

Rocky Linux 및 RHEL 계열에서는 Redis와 Valkey 선택을 함께 검토해야 함.

Valkey는 Redis와 호환되는 오픈소스 인메모리 데이터 저장소이며, 일부 배포판에서는 Redis 대신 Valkey를 기본 선택지로 제공할 수 있음.

Rocky Linux 9 또는 8에서 기존 애플리케이션이 Redis 명령명, Redis client library, Redis 프로토콜을 기준으로 작성되어 있다면 우선 Redis를 사용하는 것이 단순함.

상황 권장 선택
애플리케이션이 redis-server, redis-cli 명령명을 직접 사용함 Redis
기존 운영 문서, 모니터링, 백업 절차가 Redis 기준임 Redis
단순 Redis protocol 호환 캐시만 필요함 Redis 또는 Valkey 검토 가능
조직에서 Redis 라이선스 검토가 필요함 Redis/Valkey 비교 후 결정
Rocky Linux 10 신규 서버에서 배포판 기본 선택지를 우선함 Valkey 검토 가능

이 문서는 Rocky Linux 9 또는 8에서 Redis를 설치하고 운영하는 기준을 다룸. Valkey를 선택하는 경우 서비스명, 설정 파일 경로, 패키지명, 일부 명령명이 달라질 수 있으므로 별도 문서로 분리하는 것이 좋음.


3. 패키지 출처 선택 기준

Rocky Linux에서 Redis를 설치하는 대표적인 방법은 다음과 같음.

설치 방식 장점 단점 운영 권장도
Rocky Linux AppStream 배포판 기본 저장소, 안정성 높음, 보안 업데이트 관리가 단순함 Redis 버전이 오래될 수 있음 안정성 우선 환경에 적합함
Remi 저장소 최신 Redis stream 선택 가능, RHEL 계열에서 널리 사용됨 third-party 저장소 운영 정책 필요 최신 Redis 기능이 필요한 경우 적합함
Redis 공식 RPM 저장소 Redis upstream 공식 패키지 사용 가능 조직 내 저장소 정책, GPG, mirror 정책 검토 필요 upstream 기준을 선호하는 경우 적합함
source build 세부 빌드 옵션 제어 가능 패치/업데이트/운영 자동화가 어려움 일반 운영 서버에서는 비권장함

운영 기준에서는 “최신 버전”만을 이유로 패키지 출처를 선택하지 않음. 다음 기준을 우선함.

  1. 조직에서 승인한 저장소인지 확인함.
  2. 보안 업데이트 적용 경로가 명확한지 확인함.
  3. major/minor stream 고정이 가능한지 확인함.
  4. staging 환경에서 애플리케이션 호환성 검증이 가능한지 확인함.
  5. rollback 절차가 있는지 확인함.

패키지 출처는 혼용하지 않음. AppStream, Remi, Redis 공식 RPM 저장소를 동시에 활성화하면 의도하지 않은 출처의 패키지가 설치되거나 업데이트될 수 있음.