GSLB

이리·6일 전
0

기존의 DNS는 로드밸런싱을 지원하지만 해당 서버의 상태를 확인하지 못해 안정적인 서비스 지원이 불가능하다는 단점이 있었습니다. 이런 단점을 해결하는 방식으로 해당 서버에 대한 헬스체크와 별도의 분산 알고리즘을 제공하는 GSLB에 대해서 알아보겠습니다.


DNS 로드밸런싱: 하나의 도메인 주소해 IP 주소를 여러개 할당해 도메인 질의에 따라 IP 주소를 나누는 방법

  • 단점
    • DNS는 설정된 서비스의 상태의 정상 여부를 확인하지 않고 모든 질의에 무조건 응답

      → 각 레코드에 대한 서비스 체크가 일어나지 않고 설정된 값에 따라 동작

      → 서비스 가용성 향상 방법으로는 적절하지 않다.

GSLB(Global Server/Service Load Balancing)

도메인 질의에 응답하는 역할 + 도메인에 대한 서비스가 정상인지 상태를 체크해 정상인 레코드에 대해서만 사용

= 인텔리전스 DNS

7.3.1 GSLB 동작 방식

  1. 사용자 요청: www.naver.com
  2. Local DNS에서 캐시된 데이터가 있는지 확인
  3. 없다면 naver.com을 관리하는 NS서버로 질의(DNS)
  4. DNS서버는 www.naver.com에 대한 정보를 GSLB에게 위임했으므로 GSLB의 정보로 응답
  5. GSLB로 다시 www.naver.com 질의
  6. 연결된 IP중 헬스체크 후 정상적인 IP 응답(GSLB → LDNS)
  7. LDNS → 사용자에게 IP 응답

⇒ GSLB는 단순히 IP 주소만 응답하는 것이 아니라 해당 서버가 정상적인지 헬스체크와 사전 정의된 알고리즘으로 응답 서버를 진행하는 부하 분산 방법이 존재한다.


7.3.2 GSLB 구성 방식

GSLB의 도메인 구성 방식은 전체를 위임할 것이냐, 일부를 위임할 것이냐에 따라 크게 2가지로 나뉩니다.

도메인 자체를 GSLB로 위임하는 경우

도메인 자체를 GSLB로 위임하는 경우 해당 도메인의 네임서버를 조회했을때 다음과 같이 표시됩니다.

	Name Servce : NS11.DNSTOOL.NET
    Name Servce : NS12.DNSTOOL.NET
    Name Servce : NS13.DNSTOOL.NET

여기서 DNSTOOL.NET이 GSLB로 설정되었음을 알려줍니다.
도메인 자체를 GLSB로 사용하는 것은 도메인에 대한 네임서버를 GSLB로 설정하고 GSLB에서 도메인에 대한 모든 레코드를 등록해 처리하는 방식입니다.


그렇다면 이렇게 도메인 전체를 GSLB로 설정한다면 무엇이 문제가 될까요?
바로 굳이 헬스체크나, 부하 분산 알고리즘이 필요하지 않더라도 GSLB에 요청 하는 상황이 되기 때문에 GSLB에 부하를 주게 된다는 점입니다.

도메인의 특정 레코드에 대해서면 GLSB를 사용하는 경우

보통은 도메인의 레코드 중 특정 레코드에 대해서만 GSLB로 처리를 이관하는 형식을 사용합니다.

GSLB로 처리를 이관하는 방식은 크게 2가지로 나뉩니다.

별칭(Alias)를 사용(CNAME 레코드 사용)

별칭을 사용해 GSLB를 사용하는 방법은 실제 도메인과 다른 별도의 도메인 레코드로 GSLB에 등록됩니다.

  1. 사용자가 www.naver.com을 LDNS에 질의
  2. LDNS는 해당 주소를 찾기위해 Root NS ~ TLD NS를 찾기 시작 → 해당 주소를 관리하는 DNS 응답
  3. LDNS는 해당 DNS로 www.naver.com 질의
  4. 해당 DNS는 IP를 응답하는 대신 LDNS에게 해당 주소는 별칭으로 www.naver.gslb.com이 관리하고 있다고 응답 (CNAME의 별칭을 이용)

    CNAME이란
    CNAME 레코드는 도메인의 별칭 역할을 수행
    www.naver.com에 www.naver.gslb.com을 별칭으로 설정하면 www.naver.gslb.com으로도 www.naver.com에 접속이 가능합니다.

  5. LDNS는 다시 www.naver.gslb.com이라는 주소로 Root NS ~ TLD NS 찾기 시작
  6. 해당 주소는 GSLB에서 관리되고 있다는 것을 응답
  7. GSLB에서 해당 주소의 IP를 응답
  8. 사용자에게 해당 주소의 IP를 응답

NS 레코드를 사용


1. 사용자가 www.naver.com을 LDNS에 질의
2. LDNS는 www.naver.com의 NS를 찾기위해 root ~ TLD를 찾기 시작
3. www.naver.com을 관리하는 DNS에 질의
4. DNS는 GSLB가 www.naver.com을 관리한다고 응답
5. LDNS는 GSLB에 다시 www.naver.com을 질의
6. GSLB에서 해당 도메인 서버의 IP를 응답
7. LDNS → 사용자 해당 IP 주소 응답


→ 상위 NS를 GSLB에서 처리하게 된다면 그 하위 도메인 서버들은 모두 GSLB로 위임되기때문에 최상위 NS를 GSLB에 위임하면 DNS 서버 설정을 최소화할 수 있습니다.

ex) web.naver.com을 GSLB에 위임 → shopping.web.naver.com, portal.web.naver.com 등등등


7.3.3 GSLB 분산 방식

GSLB는 정상적인 서버인지 확인하는 헬스체크 외에 추가로 부하를 분산시키기 위한 여러가지 알고리즘을 제공합니다.

그 중 가장 대표적인 두가지 헬스 체크 모니터링 방식을 알아보죠.

서비스 응답 시간 / 지연 (RTT/Latency)

서비스 요청에 대한 응답이 얼마나 빠른지, 지연이 얼마나 없는지를 확인하고 서비스 분산에 이용합니다.

IP에 대한 지리(Geography 정보)

서비스 제공이 가능한 각 사이트의 IP 주소에 대한 Geo 값을 확인해 가까운 사이트로 서비스 분산시킵니다.


결국 GSLB의 분산 방식은 사용 가능한 사이트인지더 신속한 응답이 가능한지를 확인하는 것을 궁극적 목표로 설정했다는 것을 확인할 수 있습니다.

0개의 댓글

관련 채용 정보