- 캐시용 인스턴스/클러스터와 데이터 저장용 인스턴스를 구분하지 않는다. 워크로드를 섞어 쓴다.
- 휘발성 캐시 레코드와 장시간 저장하는 일반 데이터는 요구되는 신뢰도가 다르다.
- 물론 저렴하게 가변적으로 Redis를 구성할 수 있는 Kubernetes 같은 플랫폼의 도움이 없으면 워크로드별로 인스턴스/클러스터를 두기 어렵다.
- 캐시용 인스턴스를 사용하는 클라이언트가 Circuit breaker를 구현하지 않는다.
- 캐시용 클러스터를 굳이 비싸게 Redis Cluster로 구축한다.
- 수평 파티셔닝하는 솔루션으로 충분하다.
안티패턴을 거꾸로 수행하면 이렇게 된다.
- 워크로드 별로 클러스터가 분리되어 문제 분석과 대응 모두 쉬워진다.
- 캐시용과 데이터베이스용 클러스터의 목표 안정성을 다르게 가져갈 수 있어 운영하기 쉽다. 휘발성 데이터는 필요에 따라 휘발시키면 그만이다.
- 캐시 전용이라는 전제에선 파티셔닝의 단점이 대부분 사라진다.
- 캐시용 클러스터는 파티셔닝된 Redis 의 수평적 배치와 서킷 브레이커를 조합하면 트래픽이 급격히 증가할 때 대응하기 쉽다. 비용 걱정도 덜하다.
참고
Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.