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 설치 및 기본 운영 기준을 정리함.
문서 구성¶
- 01 - 설치 및 초기 설정
- 02 - 네트워크 및 기본 보안
- 03 - 인증 및 TLS
- 04 - 설정 및 성능 튜닝
- 05 - 영속성, 백업 및 복구
- 06 - CLI 및 운영 점검
- 07 - 모니터링 및 알람
- 08 - 고가용성 구성
- 09 - 업그레이드 및 롤백
- 99 - 운영 체크리스트
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 | 세부 빌드 옵션 제어 가능 | 패치/업데이트/운영 자동화가 어려움 | 일반 운영 서버에서는 비권장함 |
운영 기준에서는 “최신 버전”만을 이유로 패키지 출처를 선택하지 않음. 다음 기준을 우선함.
- 조직에서 승인한 저장소인지 확인함.
- 보안 업데이트 적용 경로가 명확한지 확인함.
- major/minor stream 고정이 가능한지 확인함.
- staging 환경에서 애플리케이션 호환성 검증이 가능한지 확인함.
- rollback 절차가 있는지 확인함.
패키지 출처는 혼용하지 않음. AppStream, Remi, Redis 공식 RPM 저장소를 동시에 활성화하면 의도하지 않은 출처의 패키지가 설치되거나 업데이트될 수 있음.