pile·

SLASH 21 - 토스 서비스를 구성하는 서버 기술

토스·토스 SLASH 21 2021·

챕터별 상세

010:00 – 4:46

토스 서버 기술 스택과 데이터센터 이중화·트래픽 전환

토스 서버 플랫폼 팀의 이항영 발표자가 '토스 서비스를 구성하는 서버 기술'을 소개한다. 토스는 누적 사용자 1,800만 이상, 40여 개 서비스가 도는 모바일 금융 플랫폼으로, 매달 1,000만 명 이상이 쓰는 서비스를 어떻게 안정적으로 운영하는지 다룬다. 핵심 구조는 데이터센터 이중화(active-active)로, 두 데이터센터에서 액티브-액티브로 운영하고 일부는 AWS를 함께 쓴다. 사용 기술로는 MSA 구성에 따라 컨테이너 오케스트레이션으로 쿠버네티스, Calico와 서비스 메시 Istio, 내부 스토리지 Ceph, 캐시는 memcached에서 Redis 클러스터로 이전, 로그·메시지 큐용 Kafka, 로깅·모니터링에 ELK를 든다. 송금처럼 은행 연동 서비스, 채팅, 외부 연동이 많은 서비스, 여러 데이터를 모아 보여 주는 서비스가 있으며, 스프링 부트로 개발하되 최근 소스는 코틀린을 쓴다.

평상시 두 데이터센터에 트래픽이 50대 50으로 들어가지만 한쪽을 100%로 만드는 트래픽 전환을 자주 하며 자동화도 많이 했다. 트래픽을 옮기는 이유는 두 가지다. 장애 원인을 '해결'하려면 시간이 오래 걸리므로 장애가 안 난 반대편으로 옮겨 '복구' 중심으로 대응하면 장애 시간을 줄일 수 있고, 신규 시스템 도입이나 쿠버네티스 설정 변경처럼 문제 가능성이 0이 아닌 작업에서는 한쪽으로 옮긴 뒤 1%만 다시 흘려 보고 점진적으로 늘리는 데이터센터 단위 카나리 배포를 한다. 트래픽을 트는 지점은 L3와 라우터 두 곳이다.