막말개발 – Redis 안티패턴

  • 캐시용 인스턴스/클러스터와 데이터 저장용 인스턴스를 구분하지 않는다. 워크로드를 섞어 쓴다.

    • 휘발성 캐시 레코드와 장시간 저장하는 일반 데이터는 요구되는 신뢰도가 다르다.
    • 물론 저렴하게 가변적으로 Redis를 구성할 수 있는 Kubernetes 같은 플랫폼의 도움이 없으면 워크로드별로 인스턴스/클러스터를 두기 어렵다.

  • 캐시용 인스턴스를 사용하는 클라이언트가 Circuit breaker를 구현하지 않는다.
  • 캐시용 클러스터를 굳이 비싸게 Redis Cluster로 구축한다.

    • 수평 파티셔닝하는 솔루션으로 충분하다.

안티패턴을 거꾸로 수행하면 이렇게 된다.

  • 워크로드 별로 클러스터가 분리되어 문제 분석과 대응 모두 쉬워진다.
  • 캐시용과 데이터베이스용 클러스터의 목표 안정성을 다르게 가져갈 수 있어 운영하기 쉽다. 휘발성 데이터는 필요에 따라 휘발시키면 그만이다.
  • 캐시 전용이라는 전제에선 파티셔닝의 단점이 대부분 사라진다.
  • 캐시용 클러스터는 파티셔닝된 Redis 의 수평적 배치와 서킷 브레이커를 조합하면 트래픽이 급격히 증가할 때 대응하기 쉽다. 비용 걱정도 덜하다.

참고

Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments