본문으로 이동
nginx 설정 없이 우아하게 서비스 점검하기 (上)
문서

nginx 설정 없이 우아하게 서비스 점검하기 (上)

이창섭 · 컬리 · 컬리 기술 블로그

원본 보기

소개

AccessBlock, 그 시작과 진화의 여정

AI 핵심 요약

재고 DB 점검 중에도 적치 작업이 계속되어 수작업 보정이 필요한 데이터가 쌓이자, 공지 대신 애플리케이션에서 접근을 차단하는 AccessBlock을 만들었습니다. 초기에는 MySQL에 경로와 그룹을 저장하고 페이지 라우팅마다 차단 여부를 조회해 점검 화면으로 이동시켰으며, 이후 특정 클러스터 차단 요구도 반영했습니다. DB 장애 상황에서도 차단을 제어할 수 있도록 메타데이터를 Redis에 캐싱하고 활성화 상태를 별도 Redis 데이터로 분리해 조회 의존성과 응답 지연을 줄였습니다. 다만 메타데이터 변경은 여전히 RDBMS에 의존해 장애 중 새 차단 규칙을 만들 수 없다는 한계를 확인했고, 이를 해결할 관리 방식은 다음 편의 과제로 남겼습니다.

  • 운영 공지에만 의존하지 말고, 작업을 진행할 수 없는 상태를 시스템에서 직접 강제하세요.
  • 화면 라우팅 시 차단 여부를 확인하면 점검 안내뿐 아니라 토큰 만료도 감지할 수 있습니다.
  • 차단 메타데이터와 활성화 상태를 분리하면, RDBMS 장애 중에도 Redis를 통해 차단을 제어할 수 있습니다.
  • 캐시를 도입해도 메타데이터의 생성·수정이 RDBMS에 묶여 있다면 장애 시 운영 공백은 남습니다.