토스증권 Apache Kafka 데이터센터 이중화 구성 #1
강병수 · 토스 · 토스 기술 블로그
소개
토스증권은 데이터센터 장애 상황에도 유저에게 정상적으로 서비스를 제공하기 위해 대부분의 시스템을 이중화했습니다. Kafka 이중화 구성에 대한 개요를 소개드려요.
AI 핵심 요약
데이터센터 장애에도 서비스를 유지하려면 Active-Active로 운영되는 서비스 서버뿐 아니라 MSA의 메시지 브로커인 Kafka도 이중화해야 했다. 토스증권은 Active-Active와 Stretched Cluster를 가용성, 성능, 운영 부담 기준으로 비교했고, 네트워크 단절 시 Split-brain과 요청 지연을 피하기 위해 독립된 두 Kafka 클러스터를 쓰는 Active-Active를 선택했다. 서비스 개발자의 추가 부담을 줄이도록 양쪽 클러스터의 토픽명을 같게 하고, Producer는 Split DNS로 지역 클러스터에 연결하며 Consumer는 GSLB로 한쪽 클러스터에서만 소비하게 구성했다. 이 구조의 운영 과제인 양방향 데이터 미러링과 Consumer Group Offset 동기화는 팀이 직접 개발했으며, 후속 글에서 구현을 다룬다.
- Active-Active는 클러스터 간 데이터 미러링과 Consumer Group Offset 동기화가 핵심 운영 과제다.
- Stretched Cluster는 운영이 단순하지만 데이터센터 간 네트워크 지연과 단절 시 Split-brain 위험을 검토해야 한다.
- 토픽명을 양쪽 클러스터에서 동일하게 유지하면 서비스 개발자가 배포 데이터센터를 의식하지 않고 Kafka를 사용할 수 있다.
- Producer는 Split DNS로 지역 클러스터에 쓰고, Consumer는 GSLB로 Active 클러스터 하나에서만 읽도록 분리할 수 있다.
- 독립된 Kafka 클러스터 간에는 Offset 값이 다르므로 장애 전환을 위해 Offset Sync가 필요하다.
비슷한 학습 자료
서비스 조직에서 Kafka를 사용할 때 알아 두어야 할 것들 (4)
엔지니어링데이 2025 · YouTube
토스ㅣSLASH 23 - Kafka 이중화로 다양한 장애 상황 완벽 대처하기
SLASH · YouTube
토스증권의 수 천개 실시간 데이터 파이프라인 운영방법 #2: MSA 환경 Observability 높이기
· 토스 기술 블로그
토스증권 Apache Kafka 데이터센터 이중화 구성 #3: Offset Sync
김용우 · 토스 기술 블로그
토스증권 Apache Kafka 데이터센터 이중화 구성 #2: 데이터 미러링
송지수 · 토스 기술 블로그
ksqlDB를 활용한 증권사의 실시간 데이터 처리하기
강병수 · 토스 기술 블로그