지기(ZIGI) 2023. 3. 17. 07:46

Today Keys :    gslb, global, server, service, load, balancing, dns, name, server, 네임, 서버, 도메인

본 포스팅은 'IT 엔지니어를 위한 네트워크 입문' [길벗] 서적에 포함된 '7.3 DNS'장의 내용 중 소개 및 7.3.1장의 내용입니다


 

7.3 GSLB

DNS에서 동일한 레코드 이름으로 서로 다른 IP 주소를 동시에 설정할 수 있습니다. 이렇게 설정 하면 도메인 질의에 따라 응답받는 IP 주소를 나누어 로드밸런싱할 수 있습니다. 이것을 DNS 로 드밸런싱이라고 합니다. 하지만 DNS만 이용한 로드밸런싱으로는 정상적인 서비스를 할 수 없습 니다. DNS는 설정된 서비스 상태의 정상 여부를 확인하지 않고 도메인에 대한 질의에 대해 설정 된 값을 무조건 응답합니다. DNS에 저장된 레코드와 매핑된 서비스가 모두 정상일 때는 문제가 없지만 그림 7-45처럼 특정 서비스(서버 2)에 문제가 있을 때 DNS 서버는 이것을 감지하지 못해 사용자의 도메인 질의 요청에 비정상 상태인 서비스 IP 주소를 응답한 경우,사용자는 해당 서비 스에 접근할 수 없습니다. 즉,DNS 서버에서는 각 레코드에 대한 서비스 체크가 이루어지지 않고 설정된 값에 따라 동작하므로 서비스 가용성 향상 방법으로는 부적합합니다.

 

GSLB(Gl.obal Server/Service Load Balancing)는 DNS의 이런 문제점을 해결해 도메인을 이용한 로드 밸런싱 구현을 도와줍니다. GSLB는 DNS와 동일하게 도메인 질의에 응답해주는 역할과 동시에 로드 밸런서처럼 등록된 도메인에 연결된 서비스가 정상적인지 헬스 체크를 수행합니다. 즉,등록 된 도메인에 대한 서비스가 정상인지 상태를 체크해 정상인 레코드에 대해서만 사용합니다. 그림 7-46을 보면 그림 7-45와 달리 서버 2가 장애로 서비스가 불가능할 때 GSLB에서는 등록된 두 개의 레코드 중 서버 2의 IP 주소를 가진 레코드를 도메인 질의에 대한 응답으로 사용하지 않도록 잠시 내리게 됩니다. 따라서 zigispace.net을 질의한 사용자는 모두 정상적으로 서비스되는 서버 1의 IP 주소만 응답받습니다.

 

 

이 런 이유로 GSLB를 ‘인텔리전스 DNS’라고도 부릅니다.
이어서 GSLB에 대한 기본적인 동작 방식과 GSLB를 통한 분산 방식,GSLB를 사용했을 때 유용 한 점에 대해 알아보겠습니다.

 

7.3.1 GSLB 동작방식

예제를 통해 GLSB 동작 방식과 GSLB를 사용한 도메인 질의가 어떻게 이루어지는지 알아보겠습 니다.

그림 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: 순서대로 순환하는) 방식으로 응답합니다).

 

 

IT 엔지니어를 위한 네트워크 입문 - YES24

클라우드/데브옵스 시대에 알아야 할 인프라 지식서버실이 있고, 서버 관리자가 따로 있었던 시대를 지나 클라우드 서비스가 보편화되었다. 클라우드 서비스로 넘어오면서 개발자가 직접 서버

www.yes24.com