이론 정리/Database

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

철매존 2023. 10. 20. 02:08
728x90

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

보통 우리가 공부할 때에는 레디스를 로컬에서 실행한다.
근데 회사를 가면 열에 아홉은 외부 레디스를 쓸 것이다.

로컬에서 실행할때 얻을 수 있는 장점은

  • 빠른 속도
    • 외부 레디스의 경우 통신 과정이 필요하므로 레이턴시가 걸리게 된다.
  • 개발 및 테스트
    • 개발 환경에서의 접근과 설정, 테스트가 용이하다.

정도일 것이다.

단점은 무엇일까??
어쩌면 뻔하다고 생각될 수 있지만 다음과 같다.

  • 데이터 손상
    • 로컬에 레디스가 존재하는 경우 데이터가 손실될 염려가 더 크다.
      • ex) 서버가 중단되는 경우 데이터의 손상
    • 또 외부에 두게 되면 Redis자체적으로 제공되는 스냅샷을 백업하거나 디스크 로그에 저장하는 등등을 통해 데이터를 조금 더 편하게 저장 가능하다.
  • 확장성
    • 결국 로컬 컴퓨터에 데이터를 저장하므로 용량에 한계가 있을 수밖에 없다.
  • 공유 문제
    • MSA처럼 여러 서비스가 공유하게 되면 문제가 생긴다.

지금 이 로컬 레디스의 단점이, 고스란히 외부 레디스의 장점이 되고 회사에서 서비스를 위한 서버는 외부에 위치시키는 이유가 된다.
딱 봐도 서비스를 실제로 구성할 때에는 저 문제가 있으면 안될것 같잖아...

그리고 또 하나 외부 레디스의 장점이 있는데,

  • 고가용성 및 장애 복구가 쉽다
    • 복제나 클러스터링이 용이하다.

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