728x90
320x100
- DNS를 이용한 로드밸런싱은 동일한 레코드 이름에 다른 IP 주소를 할당함으로써 질의에 따른 응답 IP 주소를 분산시키는 방법
- 하지만 DNS는 서비스의 상태를 체크하지 않음
- → 문제가 발생한 서비스에 대한 질의에도 정상적인 응답
- 이러한 문제를 해결하기 위해 등장한 것이 GSLB(Global Server Load Balancing)
- GSLB는 DNS의 기능인 도메인 질의 응답과 함께 서비스의 상태를 체크하는 역할
- 이를 통해 정상적인 서비스만 사용자에게 연결
만약 특정 서비스에 문제가 발생하면 GSLB는 그 서비스의 레코드를 잠시 사용하지 않으므로 사용자는 항상 정상적인 서비스에 접근할 수 있고, 이 때문에 GSLB는 '인텔리전스 DNS'라고도 불린다.
이제부터 GSLB의 동작 방식, 분산 방식, 그리고 GSLB를 사용했을 때의 이점에 대해 알아보자.
1. GSLB 동작 방식
예시 | 서울과 부산의 데이터 센터에서 동일한 서비스가 가동 중인 상황
- 사용자 → web.yamigarden.net에 접속하기 위해 DNS에 질의
- LDNS → web.yamigarden.net을 관리하는 NS 서버를 찾기 위해 root부터 순차 질의
- yamigarden.net을 관리하는 NS 서버로 web.yamigarden.net에 대해 질의
- DNS 서버 → GSLB로 web.yamigarden.net에 대해 위임했으므로 GSLB 서버가 NS 서버라고 LDNS에 응답
- LDNS → 다시 GSLB로 web.yamigarden.net에 대해 질의
- GSLB → web.yamigarden.net에 대한 IP 주솟값 중 현재 설정된 분산 방식에 따라 서울 또는 부산 데이터 센터의 IP 주솟값을 DNS에 응답
- 본 예제에서는 서울 데이터 센터의 서비스 IP인 1.1.1.1을 응답하는 것으로 가정
- GSLB가 응답하는 값은 GSLB에서 설정한 주기에 따라 서울과 부산 데이터 센터로 헬스 체크해 정상적인 값만 응답
- GSLB에서 결괏값을 응답받은 LDNS → 사용자에게 web.yamigarden.net이 1.1.1.1로 서비스하고 있다고 최종 응답
GSLB는 yamigarden.net이라는 FQDN(Fully Qualified Domain Name)에 대한 IP 주소 정보를 제공하는 것뿐만 아니라, 해당 IP가 정상적인 서비스를 제공할 수 있는 상태인지 헬스 체크를 통해 확인한다.
이 예제에서 사용자의 DNS 쿼리 요청이 들어오면 GSLB는 정상적으로 서비스가 가능한 지역의 서버 IP로 응답한다. 만약 서울 데이터 센터의 서버에 문제가 발생하면, 부산 데이터 센터의 IP 주소만 응답하게 되는 것.
또한 모든 데이터 센터가 정상적인 서비스를 제공할 수 있는 상태라면, 사전에 정의된 알고리즘을 통해 어느 데이터 센터의 IP 주소로 응답할지 결정한다.
이는 일반 DNS가 단순히 라운드 로빈 방식으로 응답하는 것*과는 큰 차이점이다.
* 일반 DNS는 두 개 이상의 항목이 있을 때 단순히 라운드 로빈(Round Robin: 순서대로 순환하는 방식)으로 응답한다.
2. GSLB 구성 방식
GSLB를 사용한 도메인 설정 방법은 두 가지가 있다.
- 도메인 자체를 GSLB로 사용
- GSLB 장비가 도메인에 속하는 모든 레코드를 관리
- 도메인의 네임 서버를 GSLB로 지정하고, GSLB에서 도메인에 해당하는 모든 레코드를 등록
- GSLB가 도메인의 네임 서버 역할을 수행하는 경우
- 모든 레코드에 대한 질의가 GSLB를 통해 처리되므로 GSLB에 부하를 준다.
- 도메인 내의 특정 레코드만 GSLB를 사용
별칭(CNAME)을 이용해 GSLB를 사용하는 방법
- 실제 도메인과 다른 별도의 도메인 레코드로GSLB에 등록
- 주로 외부 CDN(Content Delivery Network) 이용이나, 다수의 도메인을 한 번에 관리하는 상황에서 활용
- GSLB에 별도의 도메인 레코드를 등록하여 실제 도메인과는 다른 도메인 레코드를 사용하게 함
- CNAME 레코드로 외부 GSLB을 지정 > 이 레코드의 값으로 등록된 FQDN을 재질의해 서버를 찾아간다.
- > CNAME 값으로 등록된 FQDN이 GSLB를 네임 서버로 사용하도록 하는 것
- 사용자 → web.yamigarden.net을 LDNS(1.1.1.1)로 질의
- LDNS → web.yamigarden.net을 관리하는 NS 서버를 찾기 위해 root부터 순차적으로 질의
- yamigarden.net을 관리하는 DNS(2.2.2.2)에 web.yamigarden.net의 주소 질의
- DNS 서버 → LDNS에게 별칭으로 web.yamigarden.net은 web.yamigarden.gslb.net이 관리하고 있다는 응답 수신
- LDNS(1.1.1.1) → gslb.net을 관리하는 NS 서버를 root부터 순차 질의
- LDNS(1.1.1.1) → yamigarden.gslb.net을 관리하는 NS 서버인 GSLB(3.3.3.3)에 web.yamigarden.gslb.net에 대해 질의
- GSLB(3.3.3.3) → LDNS(1.1.1.1)에 web.yamigarden.gslb.net의 IP(10.10.10.10)를 응답
- LDNS(1.1.1.1) → 해당 결과값(10.10.10.10)을 사용자에게 최종 응답
NS 레코드를 이용해 위임하여 GSLB를 사용하는 방법
- 특정 FQDN에 대한 설정을 NS 레코드를 통해 진행
- NS 레코드로 설정된 네임 서버가 GSLB이며, 이 네임 서버로 특정 FQDN에 대한 값을 재질의
- 최초로 요청한 FQDN을 재질의하는 과정에서 변경하지 않는다.
- 즉, 사용자가 처음 호출하는 FQDN이 GSLB에서 관리되는 도메인과 동일
- 사용자 → web.yamigarden.net을 LDNS(1.1.1.1)로 질의
- LDNS → web.yamigarden.net을 관리하는 NS 서버를 찾기 위해 root 부터 순차적으로질의
- yamigarden.net을 관리하는 DNS(2.2.2.2)에 web.yamigarden.net 의 주소 질의
- DNS(2.2.2.2) → GSLB(3.3.3.3)가 web.yamigarden.net을 관리한다고 응답
- LDNS(1.1.1.1) → web.yamigarden.net을 관리하는 NS 서버인 GSLB(3.3.3.3)에게 web.yamigarden.net을 질의
- GSLB(3.3.3.3) → LDNS(1.1.1.1)에 web.yamigarden.net의 IP를 응답
- LDNS(1.1.1.1) → 해당 결과값을 사용자에게 최종 응답
하나의 FQDN을 위임하면 해당 FQDN의 하위 도메인은 별도의 위임 없이 자동으로 위임 처리된다. 이를 통해 특정 도메인 내의 GSLB를 사용한 하부 도메인을 계층화하면 DNS 서버 설정을 최소화하고, 여러 FQDN을 GSLB로 효율적으로 위임할 수 있다.
정리하면,
- 별칭을 이용한 GSLB 사용은 외부 사업자가 GSLB를 관리하거나, 많은 도메인이 GSLB를 요구할 때 적합
- 위임을 이용한 방식은 도메인을 계층적으로 관리하면서 GSLB를 운영할 때 유용
- 다양한 서비스 환경에서는 NS와 CNAME 방식을 혼합하여 사용하기도 함
3. GSLB 분산 방식
GSLB를 이용해 서비스를 분산하면 다음과 같은 주요 목적을 달성할 수 있다.
- 서비스 제공의 가능 여부를 체크해 트래픽 분산
- 지리적으로 멀리 떨어진 다른 데이터 센터에 트래픽 분산
- 지역적으로 가까운 서비스에 접속해 더 빠른 서비스 제공이 가능하도록 분산
GSLB는 라운드 로빈(Round Robin), 최소 접속(Least Connection), 해싱(Hashing) 방식 외에도 추가적인 분산 방식을 제공하며, 대부분 다음 두 가지 헬스 체크 모니터링 요소를 지원하고 있다.
- 서비스 응답 시간/지연(RTT/Latency)
- 서비스 요청에 대한 응답이 얼마나 빠른지 또는 지연이 얼마나 없는지를 확인하여 서비스를 분산 처리
- IP에 대한 지리(Geography) 정보
- 각 사이트의 IP 주소에 대한 지리(Geo) 값을 확인하여 가까운 사이트로 서비스를 분산 처리
이러한 분산 방식은 서비스가 가능한 사이트로 트래픽을 분산시키는 것뿐만 아니라, 더 신속한 서비스를 제공할 수 있는 사이트로 사용자를 유도하는 것을 목표로 한다.
서비스 응답 시간과 사이트의 지리 값은 사용자가 서비스를 요청할 때 더 신속한 서비스 응답과 직접적인 연관이 있기 때문에 이러한 설정은 특히 지리적으로 멀리 떨어진 국내 및 해외 사이트에서 더 큰 효과를 발휘할 수 있다.
참고
⌜IT 엔지니어를 위한 네트워크 입문⌟ 길벗, 2023
[7장] 통신을 도와주는 네트워크 주요 기술 | 7.3 GSLB (p.265~274)
* 책을 참고해 필요한 내용을 정리한 것이므로, 책의 내용과 다를 수 있습니다.
300x250
반응형
GitHub 댓글