Link
Today
Total
05-10 13:34
Archives
관리 메뉴

초보개발자 긍.응.성

GSLB란? 본문

WEB

GSLB란?

긍.응.성 2020. 4. 9. 11:29
반응형

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가 들어갔을 때 동작은 다음과 같다.

  1. 사용자가 www.example.com에 접속하기 위해 Local DNS 서버로 DNS Query를 보낸다.
  2. DNS Query는 Root DNS, .com DNS를 거쳐 GSLB로 보내진다.
  3. GSLB는 DNS Proxy로 동작하며, 따라서 이 DNS Query를 그대로 example.com DNS 서버로 전달한다.
  4. example.com DNS 서버는 www.example.com에 대한 IP주소 1.1.1.1과 2.2.2.2가 미리 등록되어 있어 그 값을 GSLB로 전달해 준다.
  5. GSLB는 정책들을 통해 1.1.1.1과 2.2.2.2중 최적의 사이트를 결정하고 TTL을 작은 값으로 변경해준다 (캐싱을 적용하기 위해 TTL설정을 해준다고 생각하면 됨).
  6. GSLB의 정책을 통해 웹서버 IP 1.1.1.1과 변경된 TTL값이 Local DNS로 전달된다.
  7. Local DNS 가 사용자 단말에 값 전달
  8. 사용자는 www.example.com의 IP 주소 1.1.1.1로 HTTP GET을 보낸다.

참고자료

반응형

'WEB' 카테고리의 다른 글

Filter 와 Interceptor의 차이란?  (0) 2020.04.12
JSP란?  (0) 2020.04.10
Apache & Nginx & Tomcat란?  (0) 2020.04.09
Reverse Proxy란?  (0) 2020.04.09
Web Server란? WAS란?  (0) 2020.04.09
Servlet 이란?  (0) 2020.04.09
DNS란?  (0) 2020.04.09
L4 스위치란?  (0) 2020.04.08
Comments