
백엔드
쏘카의 대규모 인증토큰 트래픽 대응 : 개발기
두줄요약
쏘카는 인증 토큰 트래픽이 write DB에 몰리던 문제를 전담 서비스 분리와 읽기 분산으로 개선했습니다. 또한 만료 토큰 정리와 Redis 캐시 적용으로 조회 성능과 응답 속도를 높였습니다.
문제 상황
- 쏘카 시스템의 모든 요청에 인증 토큰 검증이 붙으면서 조회 트래픽이 write DB로 집중되는 구조
- 만료 토큰까지 함께 보관해 인증 토큰 테이블의 데이터량과 인덱스 비용이 커진 상태
- 반복 조회가 많은데도 DB 직접 접근 비중이 높아 read DB와 캐시 활용이 필요한 상황
해결 방법
- 인증 토큰 처리 로직을 전담 계정 서비스로 분리해 여러 프로젝트의 중복 DB 접근 제거
- read only 요청을 read DB로 라우팅하고 Aurora protocol 기반 설정으로 write/read 부하 분산
- 만료 토큰을 별도 테이블로 분리하는 배치 작업으로 테이블 row 수 축소
- Redis 캐시를 Look Aside + Write Around 조합으로 적용해 DB 조회 수와 응답 지연 감소
성능/운영 포인트
- scale up 대신 scale out을 선택해 서비스 중단과 장비 한계를 회피
- 대량 데이터 이동은 1회성 배치와 시간 단위 배치로 나눠 CPU 부하를 제어
- 캐시 갱신은 쓰기 시 삭제 방식으로 처리해 데이터 불일치 가능성 최소화
