피드로 돌아가기
올리브영 테크블로그Backend
원문 읽기
AWS MSK Connect 효과적으로 운영하기
올리브영 B2B 물류 스쿼드가 AWS MSK Connect와 CDC 도입으로 배치 시스템을 제거하고 실시간 비동기 메시지 기반 아키텍처 구축
AI 요약
Context
올리브영의 오프라인 발주 및 물류 시스템은 모놀리식 레거시 환경에서 MSA 기반으로 전환 중이었습니다. 기존 배치 시스템 기반의 데이터 처리 방식으로는 실시간성과 확장성에 한계가 있었습니다.
Technical Solution
- AWS MSK(Amazon Managed Streaming for Apache Kafka) 도입: Multi-AZ 배포로 다중 가용 영역에 Kafka Broker를 분산 배치하고 자동 장애 복구 기능 활용
- Replication Factor 설정: Topic별로 Leader Partition 1개 + Follower Partition 2개 이상 구성하여 Broker 장애 시 자동 승격 및 데이터 손실 방지
- MSK Connect 기반 CDC(Change Data Capture) 구현: Oracle DB의 변경사항을 SCN(System Change Number) 기반으로 추적하고 내부 Topic(connect-offsets)에 오프셋 저장하여 장애 복구 후 재처리 가능
- Avro Format + AWS Glue Schema Registry 적용: JSON 형식 대신 Avro 바이너리 직렬화로 저장 용량 절감 및 메타정보는 Glue Schema Registry에 별도 관리
- DataDog 플러그인과 커스텀 Metrics 결합: Kafka 표준 지표 수집 및 비즈니스 특화 모니터링 대시보드 구축
Impact
MSK의 Peak Throughput: 605MB/s, P99 Latency: 5ms(200MB/s 로드), Topic 메시지 기본 7일 보관으로 재처리 가능
Key Takeaway
MSK 클러스터 운영에서 Replication Factor와 Partition 개수의 곱이 총 저장소 개수를 결정하므로, 데이터 특성과 용량을 고려한 설정이 필수이며, CDC 기반 아키텍처에서는 오프셋 관리를 통해 장애 복구 후에도 데이터 무결성을 보장할 수 있습니다.
실천 포인트
레거시 시스템에서 MSA로 전환하는 조직에서 MSK Connect를 통한 CDC를 도입할 때, Replication Factor를 2 이상으로 설정하고 Avro 포맷으로 직렬화하면 다중 가용 영역 장애 대응과 저장 용량 증가 문제를 동시에 해결할 수 있으며, SCN 기반 오프셋 관리로 배치 시스템을 완전히 제거하고 실시간 비동기 처리로 전환할 수 있습니다.