본문 바로가기
Development

[Redis] 레디스를 로컬이 아닌 외부에 두는 이유

by 한휴르 2025. 3. 21.

일반적으로 공부할 때 레디스를 로컬에서 실행합니다. 하지만 실무에서는 열에 아홉은 외부 레디스를 씁니다. 왜 그럴까요?

먼저, 레디스를 로컬에서 실행할 때 얻을 수 있는 장점은 다음과 같습니다.

  • 빠른 응답 속도 (Low Latency)
    • 애플리케이션과 같은 서버에서 실행되므로 네트워크 지연이 최소화됩니다.
  • 설치 및 운영이 간편함
    • 별도의 네트워크 설정 없이 바로 실행할 수 있어 개발 및 테스트 환경에서 사용하기 용이합니다.
  • 비용 절감
    • 클라우드 또는 별도의 외부 Redis 서버를 운영하지 않아 추가적인 비용이 발생하지 않습니다.
  • 네트워크 장애 영향을 받지 않음
    • 네트워크 연결이 불안정해도 로컬 환경에서는 Redis가 정상적으로 동작할 수 있습니다.

그렇다면 단점은 무엇일까요? 누구나 쉽게 예상할 수 있듯이 다음과 같습니다.

  • 데이터 손상
    • 로컬에 레디스가 존재하는 경우 데이터 손실이 우려됨. ex) 서버가 중단되는 경우
  • 확장성이 낮음
    • 서버가 하나라면 문제가 없지만, 여러 애플리케이션 인스턴스를 운영할 경우 각 서버마다 별도로 Redis를 운영해야 하므로 데이터 일관성이 어려움.
  • 고가용성(HA, High Availability) 부족
    • 서버 장애 시 Redis 데이터가 함께 손실될 가능성이 큼.
  • 메모리 관리 어려움
    • Redis가 서버 내에서 실행되므로, 메모리 사용량이 애플리케이션과 경쟁하여 성능 저하를 유발할 수 있음.
  • 운영 및 관리의 부담
    • 직접 백업, 장애 처리 등을 수행해야 하므로 유지보수가 필요함.

이러한 로컬 레디스의 단점이, 고스란히 외부 레디스의 장점이 됩니다.

  • 확장성이 뛰어남
    • 여러 애플리케이션 인스턴스에서 동일한 Redis 서버를 공유할 수 있어 마이크로서비스 및 분산 환경에서 유리함.
  • 고가용성 및 장애 복구 지원
    • 클라우드 서비스(AWS ElastiCache, Azure Cache for Redis) 또는 Redis Cluster를 활용하여 복제(Replication) 및 자동 장애 복구(Failover)가 가능함.
  • 데이터 일관성 보장
    • 중앙 집중식으로 데이터를 관리하므로 캐시 일관성을 유지할 수 있음.
  • 보안 강화
    • VPC, 방화벽, 인증(ACL, TLS) 등을 활용하여 보안을 강화할 수 있음.
  • 운영 및 유지보수 자동화 가능
    • 클라우드 서비스에서는 자동 백업, 모니터링, 스케일링이 가능하여 유지보수 부담이 적음.

이러한 장점이 서비스를 위한 서버를 외부에 위치시키는 이유가 됩니다. 실제 서비스 구성할 때 저 문제가 있으면...

그리고 외부 레디스의 장점 중 가장 큰 장점은

  • 고가용성 및 장애 복구 지원
    • 클라우드 서비스(AWS ElastiCache, Azure Cache for Redis) 또는 Redis Cluster를 활용하여 복제(Replication) 및 자동 장애 복구

입니다.

레디스는 기본적으로 휘발성 메모리기 때문에 위의 장점이 정말정말 큽니다.

댓글