목록 보기
쏘카의 대규모 인증토큰 트래픽 대응 : 개발기
백엔드

쏘카의 대규모 인증토큰 트래픽 대응 : 개발기

쏘카
쏘카
2023년 6월 26일

두줄요약

인증 토큰 검증을 계정 서비스로 통합하고 read DB 분산, 만료 토큰 배치 분리로 DB 부하를 낮췄습니다. Redis 캐시를 적용해 조회 요청과 지연 시간을 추가로 줄였습니다.

문제 상황

  • 모든 서비스의 인증 토큰 검증이 write DB 직접 접근에 집중되며 트래픽 증가 시 부하와 변경 범위 확대
  • 만료 토큰 약 2,800만 건 적재에 따른 인덱스 재구성 비용 및 락 경합
  • 읽기 요청이 압도적인 인증 검증 특성으로 read DB에도 향후 성능 이슈 가능성

해결 방법

  • DB 접근과 인증 토큰 로직을 계정 서비스로 통합해 개별 서비스의 DB 의존성 제거
  • MariaDB Aurora protocol로 write/read 클러스터 엔드포인트를 분리해 조회 부하 분산
  • 만료 토큰을 별도 테이블로 이관하는 일회성·시간 단위 배치와 Redis Look Aside·Write Around 캐시 적용

선택 이유

  • 촉박한 일정과 기존 서비스 영향 최소화 조건에 따라 코드 변경이 적은 Aurora protocol 선택
  • 만료 토큰 삭제의 영향도 조사 대신 운영 이력 보존을 위한 별도 보관 전략 채택
  • 쓰기 시 캐시 삭제 후 재적재 방식으로 조회 성능과 데이터 불일치 위험 간 균형

성능/운영 포인트

  • 만료 토큰 분리 후 인증 토큰 테이블 행 수 약 86% 감소, 약 200만 건 유지
  • read DB 분산과 Redis 캐시로 DB 요청 수 및 계정 서비스 지연 시간 감소
  • MariaDB Connector 3.x 이후 Aurora protocol 미지원 제약

다음 읽기

#Redis 주제를 이어서 읽기

쏘카의 대규모 인증토큰 트래픽 대응 : 개발기

쏘카는 인증 토큰 트래픽이 write DB에 몰리던 문제를 전담 서비스 분리와 읽기 분산으로 개선했습니다. 또한 만료 토큰 정리와 Redis 캐시 적용으로 조회 성능과 응답 속도를 높였습니다.

쏘카
쏘카
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...