그림 7-47은 GSLB 동작 방식의 이해를 돕기 위해 서울과 부산의 데이터 센터에서 동일한 서비스가 가동 중인 상황을 예로 들었습니다. 이 예제를 이용해 GSLB의 동작 방식을 알아보겠습니다.
1. 사용자가 web.zigispace.net에 접속하기 위해 DNS에 질의합니다.
2. LDNS는 web.zigispace.net을 관리하는 NS 서버를 찾기 위해 root부터 순차 질의합니다.
3. zigispace.net을 관리하는 NS 서버로 web.zigispace.net에 대해 질의합니다.
4. DNS 서버는 GSLB로 web.zigispace.net에 대해 위임했으므로 GSLB 서버가 NS 서버라고 LDNS에 응답합니다.
5. LDNS는 다시 GSLB로 web.zigispace.net에 대해 질의합니다.
6. GSLB는 web.zigispace.net에 대한 IP 주솟값 중 현재 설정된 분산 방식에 따라 서울 또는 부산 데이터 센터의 IP 주솟값을 DNS에 응답합니다. 본 예제에서는 서울 데이터 센터의 서비스 IP인 1.1.1.1을 응답하는 것으로 가정합니다. GSLB가 응답하는 값은 GSLB에서 설정한 주기에 따라 서울과 부산 데이터 센터로 헬스 체크해 정상적인 값만 응답합니다.
7. GSLB에서 결괏값을 응답받은 LDNS는 사용자에게 web.zigispace.net이 1.1.1.1로 서비스하고 있다고 최종 응답합니다.
GSLB는 zigispace.net이라는 FQDN에 대한 IP 주소 정보를 단순히 갖고 있다가 응답해주는 것이 아니라 헬스 체크를 통해 해당 IP가 정상적인 서비스가 가능한 상태인지 확인합니다. 이 예제에서는 서울과 부산에 나누어진 서비스를 체크하고 사용자의 DNS 쿼리 요청이 들어오면 서비스가 가능한 지역의 서버 IP로 응답합니다. 만약 서울 데이터 센터의 서버에 문제가 발생하면 서울 데이터 센터 서버 IP를 사용자에게 응답하지 않고 부산 데이터 센터의 IP 주소만 응답하게 됩니다.
서울 데이터 센터와 부산 데이터 센터 모두 정상적인 서비스가 가능한 상태라면 사전에 정의된 알고리즘을 통해 어느 데이터 센터의 IP 주소로 응답할지 결정합니다. 이 예제에서는 서울 데이터 센터의 IP를 사용자에게 응답합니다. web.zigispace.net에 대해 서울 데이터 센터의 IP로 응답받은 사용자는 서울 데이터 센터의 IP 주소로 http://web.zigispace.net 사이트에 접속할 수 있습니다.
정리하면 GSLB는 앞의 예제처럼 일반 DNS를 사용하는 것과 거의 동일하게 동작합니다. 다만 GSLB에서 서비스 IP 정보에 대한 헬스 체크와 사전에 지정한 다양한 분산 방법을 이용한 부하 분산이 일반 DNS와 큰 차이점이라고 볼 수 있습니다(일반 DNS는 두 개 이상의 항목이 있을 때 단순히 라운드 로빈(Round Robin; 순서대로 순환하는) 방식으로 응답합니다).