토스 증권에서 Kafka 데이터센터 이중화 정책을 도입하기 위해, 특정 데이터 센터에 장애가 발생했을 때 Consumer 가 소비해오는 서버를 변경하는 방식에 GSLB(Global Server Load Balancing)을 도입하여, 장애 상황에 서비스를 지속할 수 있도록 구축했다고 한다.
그래서 이번 글에서는 GSLB 가 무엇인지 알아보려고한다.
📌 GSLB(Global Server Load Balancing)
DNS 를 기반으로 작동하며, 사용자의 요청을 적적할 서버로 라우팅한다.
단순 DNS의 로드밸런싱은 IP목록 중 하나를 반환할 뿐(Round Robin:RR),네트워크 지연, 성능, 트래픽 유입, 서비스 실패 등을 전혀 고려하지않는다. 이를 보완하기위해 등장한 것이 GSLB이다.
GSLB 특징
- health check를 통해 서버를 계속해서 모니터링해서, health check를 실패한 서버의 IP는 응답에서 제외한다. 특정 서버가 다운되며 다른 서버로 라우팅. (가용성 기반 라우팅)
- 트래픽이 몰리지 않는 서버의 IP를 반환한다. (부하분산)
- 레이턴시 체크를 한다. 일반 DNS는 RR(Round Robin) 방식으로 자신과 멀리 떨어진 곳에 서버로 연결될 수 있지만, GSLB은 각 지역마다 레이턴시 정보를 가지고 있기 때문에 레이턴시가 적은 서버의 IP를 반환한다. (지리적라우팅)
작동방식
- DNS 질의: 사용자가 서비스에 접속하면 DNS 요청이 발생
- GSLB 작동: GSLB는 사용자의 위치, 서버의 부하 상태, 네트워크 상태 등을 기준으로 가장 적합한 서버를 선택
- 응답: 선택된 서버의 IP 주소를 반환하여 사용자가 해당 서버와 통신
'◼️네트워크' 카테고리의 다른 글
DNS(Domain Name Server) (0) | 2025.01.28 |
---|