본문 바로가기

사는 이야기/펌킨도서관

Global server load balancing (GSLB) 다 쓰는 이유가 있는 구성

GSLB(Global Server Load Balancing)은 다양한 목적으로 쓰입니다. 

그중 가장 많이 쓰이는 용도는 지리적으로 분산된 위치에 있는 서버 간 부하 분산입니다. 

이 방식이 DNS 서버를 통한 웹 서버 부하 분산과 무엇이 다른가? 이런 궁금증이 들 것입니다.

이게 왜 다르냐! 지디넷에서 정리한 글이 있네요. 이 글을 보면 이해가 될 것입니다. 


DNS 레코드를 추가하는 방식의 부하 분산과 L4/L7 스위치를 이용한 GSLB의 가장 큰 차이는 '서버 헬스체크'를 하느냐 안 하느냐 입니다. 

헬스체크를 하지 않을 경우 해당 서버가 장애가 나서 접속이 불가능해도, 해당 내용을 모르고 네임 서버가 접속할 수 없는 서버의 IP 주소를 알려주죠. 사용자에게는 서버를 찾을 수 없다는 메시지가 나가게 되겠죠. GSLB는 다릅니다. 서버의 헬스 체크가 지속해서 이루어지기 때문에 특정 위치에 있는 서버로 접속이 어려우면 다른 위치의 서버 IP를 배포합니다. 헬스 체크를 통해 다른 쪽 서버 상태를 파악하기 때문에 접속 불가능한 곳으로 사용자를 안내하지 않습니다. 


다음 그림을 보시죠. 왼쪽은 DNS 기반 부하 분산을 하는 것인데요, DNS 레코드에 연결 가능한 서버의 주소만 등록되어 있습니다. 각 서버의 상태는 알 수 없기 때문에 특정 위치의 서버에 접속이 몰려 다른 주소로 사용자를 안내했는데, 해당 서버가 장애가 난 상황인 경우 관리자는 이를 알 방법이 없습니다. 서버를 찾을 수 없다는 메시지를 보는 사용자만 알뿐이죠. 오른쪽 그림은 GSLB를 적용한 경우인데요, 주기적으로 서버들의 헬스 체크가 이루어지므로 특정 위치로 접속이 몰려오면, 현재 살아 있는 접속 가능한 가장 가까운 곳의 서버 주소를 알려줍니다. 

<출처: 넷매니아> 


다른 차이가 하나 더 있는데요, DNS 기반의 경우 부하 분산을 할 때 사용자에게 최적의 경로를 안내하지 않습니다. 흔히 말하는 속도가 가장 잘 나올 가까운 위치의 서버로 연결하지 못합니다. 가령 한국에 있는 사용자인데, 서버에 트래픽이 폭주해 다른 지역 서버로 연결해야 할 경우 DNS 방식은 최적의 경로가 아니라 DNS 레코드에 기록된 순서로 위치를 알려줍니다. 반면에 GSLB의 경우 사용자 위치를 고려해 가장 가까운 곳에 있는 서버로 연결합니다. 지능적으로 상황에 맞게 부하 분산을 하는 것인데요, 최적의 경로는 L4/L7 스위치가 결정합니다. L4/L7 스위치는 소스 필터를 통해 사용자를 어디로 안내할지 결정합니다. 


간단히 살펴본 바와 같이 GSLB는 전 세계 곳곳에 웹 서버나 애플리케이션 서버를 분산 배치한 다음 트래픽 추이에 맞게 동적으로 사용자에게 최적의 연결 경로를 알려 줍니다. 반면에 DNS 방식은 기록된 내용에 맞춰, 흔히 말하는 정적인 방식으로 사용자를 안내합니다. 이런 차이로 GSLB는 웹 서버나 애플리케이션 서버 부하 분산 외에 재해복구(DR) 용도로도 쓰입니다. 서비스 헬스 체크가 가능하다는 점, 최적의 경로로 안내할 수 있다는 것을 떠올려 보면 간소한 개념으로 중요 서버나 서비스에 대한 DR 구성이 충분히 가능합니다. 


다음은 L4/L7 스위치를 이용한 GSLB 기본 구성 예입니다. 이 구성 시나리오를 적용하면 다양한 목적으로 L4/L7 스위치를 배치해 사용할 수 있습니다. 본사, 지사 개념이라면 각 위치에 L4/L7 스위치를 배포해 중요 서버나 서비스에 대한 가용성 보장, DR 용도로 쓸 수 있습니다. 온라인 쇼핑몰 같은 서비스라면 한국에 있는 데이터센터와 해외 주요 시스템 거점에 L4/L7 스위치를 추가 구성해 24x7x365 접속 가능한 서비스 운영에도 사용할 수 있습니다. 어느 한 위치의 서버나 네트워크 환경에 문제가 있어도 접속 가능한 상태를 유지할 수 있습니다. 이외에 컨텐츠 서비스를 제공하는 경우 지적재산권 보호와 현지 규제 준수 등의 이유로 소스 필터를 통해 특정 지역 사용자는 특정 위치의 시스템으로만 접속하게 할 수도 있습니다. VPN을 이용하지 않으면, 해외 영상 서비스를 국내에서 접속할 수 없게 하는 것 같은 예를 생각해 볼 수 있겠네요. 


이외에 향후 IoT 장치 연결을 위한 핵심 기반으로 DNS를 활용하는 경우가 많아질 텐데, 이런 조건에서도 GSLB는 고가용성과 성능 보장, 보안과 보호(DR) 목적으로 쓰일 수 있을 것 같습니다.