GSLB에 대해 찾아보고 공부하면서 작성한 글입니다. 내용 중 잘못된 설명이 있다면 짚어주시면 감사드리겠습니다~
GSLB (Global Service Load Balancing)
GSLB는 비즈니스 연속성 및 재해 복구에 사용되는 기술들의 집합이다. GSLB의 목표로는
-
disaster recovery(재난 복구)
실패에 대해 대체할 수 있는 서버를 제공한다. -
load sharing(부하 분산)
많은 트래픽을 여러 서버로 분산시킨다. -
performance(성능)
client의 위치나 네트워크를 기반으로 최적의 성능을 낼 서버를 선택해준다.
가 존재한다. 지능적 DNS 서비스라고 부르기도 한다.
GSLB vs. DNS
GSLB | DNS | |
재해 복구 | 서버의 상태를 모니터링 (Health Check) 실패한 서버의 IP는 응답에서 제외 | 서버의 상태를 알 수 없다. 서비스를 실패하는 유저 발생 |
로드밸런싱 | 서버의 로드 모니터링하여 로드가 적은 서버의 IP를 반환하는 방식 가능 | Round Robin 방식사용. 정교한 로드 밸런싱이 되지 못함 |
레이턴스 기반 | 지역별 latency 정보를 가져 유저에게 더 적은 latency를 가지는 서버로 연결 | Round Robin. 네트워크상 멀리 떨어진 위치의 서버로 연결할 수 있다. |
위치기반 서비스 | 유저의 지역 정보를 기반, 해당 지역을 서비스하는 서버로 연결 | Round Robin |
GSLB 주요 기술
1. Health Check
- 등록된 호스트 들에 대해 주기적으로 health check 수행
- 호스트가 실패할 경우 DNS 응답에서 해당 호스트 제거
- 실패한 호스트로의 접근을 막아 서버의 가용성을 높일 수 있다
2. TTL
- DNS에서 권한을 가진 네임서버는 특정 레코드에 대해서 TTL을 설정할 수 있다
- 캐시 네임서버는 TTL시간 동안 캐시에 저장하고, Client로 부터 요청이 오면 캐시에 저장된 값을 반환한다.
- TTL값이 너무 길면 GSLB의 상태 정보가 제때 동기화되지 못한다.
- TTL값이 너무 짧으면 네임서버에 가해지는 부담이 커진다.
3. 네트워크 거리 & 지역
- 주기적으로 성능을 측정하고 그 결과를 저장한다
- DNS 질의에 대해 지리적으로 가까운 서버를 반환하거나 네트워크 거리가 가까운 서버를 반환한다
- 지리적으로 가까운 서버는 RTT(Round Trip Time)도 짧기 때문에 동일한 결과를 반환하는 경우가 많다고 한다.
상세 작동 프로세스
GSLB는 Local name server와 Second Level name server 사이에 위치한다.
GSLB가 들어갔을 때 동작은 다음과 같다.
- 사용자가 www.example.com에 접속하기 위해 Local DNS 서버로 DNS Query를 보낸다.
- DNS Query는 Root DNS, .com DNS를 거쳐 GSLB로 보내진다.
- GSLB는 DNS Proxy로 동작하며, 따라서 이 DNS Query를 그대로 example.com DNS 서버로 전달한다.
- example.com DNS 서버는 www.example.com에 대한 IP주소 1.1.1.1과 2.2.2.2가 미리 등록되어 있어 그 값을 GSLB로 전달해 준다.
- GSLB는 정책들을 통해 1.1.1.1과 2.2.2.2중 최적의 사이트를 결정하고 TTL을 작은 값으로 변경해준다 (캐싱을 적용하기 위해 TTL설정을 해준다고 생각하면 됨).
- GSLB의 정책을 통해 웹서버 IP 1.1.1.1과 변경된 TTL값이 Local DNS로 전달된다.
- Local DNS 가 사용자 단말에 값 전달
- 사용자는 www.example.com의 IP 주소 1.1.1.1로 HTTP GET을 보낸다.
참고자료
- https://blog.naver.com/n_cloudplatform/221206343859
- https://www.joinc.co.kr/w/man/12/GSLB
- https://www.netmanias.com/ko/post/blog/5620/dns-data-center-gslb-network-protocol/global-server-load-balancing-for-enterprise-part-1-concept-workflow
- https://cloud.kt.com/portal/ktcloudportal.epc.productintro.gslb.html
- https://cwiki.apache.org/confluence/display/CLOUDSTACK/GSLB+%28Global+Server+Load+Balancing%29+Functional+specification+and+Design+Document
- https://www.datanet.co.kr/news/articleView.html?idxno=35458