[Web] DB를 살려주자 Redis

업데이트:



도입 배경

현재 진행하고 있는 사이드 프로젝트에서 DB 부하 증가가 불가피한 상황을 만나게 되었습니다.

서비스의 메인 화면은 다음과 같은데요.

좌측 카테고리를 DB에서 관리하고 있습니다.

image

굳이 카테고리 정보를 DB에서 관리하는 이유는

사용자별로 카테고리를 커스터미이징 할 수 있도록 할 예정이기 때문입니다.

그 이유가 아니면 관리의 유용성을 포기하더라도,

카테고리 정보는 코드에 enum으로 raw하게 넣었지 않았을까 싶습니다.



현 상황

현재 서비스의 인프라 스펙은 오라클 always free 인스턴스 2개입니다.

인스턴스 각각은 WAS 한 대, DB 서버 한 대로 사용하고 있습니다.

image

무작정 인프라를 늘릴 수는 없기 때문에(설사 있다 하더라도)

좌측 카테고리로 인한 추가적인 DB connection은 반드시 해결해야 할 요소입니다.

프론트에서 상태 관리를 어떻게 하느냐에 따라 다르겠지만,

현재는 웹인데 클라이언트 환경이 바뀔 때마다 클라이언트 측에서

이를 관리해주도록 하는 것은 분명 기술 부채로 남을 것이라 판단됩니다.

그렇다면 카테고리 정보를 DB에서 관리하는 것도 포기할 수 없고,

DB 부하도 부담이 되지 않게 하려면 redis를 사용해봅시다.

자주 변경되는 값이 아니기 때문에 적합한 솔루션이 될 수 있습니다.



결말 미리보기

추가적인 인프라 증설 없이 기존 인스턴스에 redis를 설치하여 사용하기로 하였고,

redis가 설치될 인스턴스 위치는 WAS 가 있던 곳으로 결정하였습니다.

이유는 클라이언트의 요청이 WAS에 도착해서 redis로 가는데,

DB server에 redis가 있다면 네트워크 통신이 필요하게 되기 때문입니다.

image


다음 페이지로 이동해서 바로 redis를 사용법을 알아봅시다.

=> 스프링부트 Redis 사용법 - (세팅편)



추가 Ref.




카테고리:

업데이트: