[Network] GSLB란?

Cover image

GSLB란?

로드밸런서 관련 이야기를 하면서 어쩌면 한번 쯤 GSLB에 대해 들어봤을 수 있다. 회사에서는 F5나, Citrix와 같이 여러 GSLB를 사용하고 있는데 오늘은 이에 대해 한번 정리해봅니다.

GSLB의 정의

GLSB는 Global Service Load Balancing의 약자로, 비지니스 연속성 및 재해 복구에 사용되는 기술들의 집합입니다,

이러한 GLSB는 다음과 같은 기능을 제공하여, 지능적 DNS 서비스라고도 불리기도 합니다.

  • 재난 복구 (disaster recovery)

    • 실패에 대해 대체할 수 있는 서버를 제공합니다.
  • 부하 분산 (load sharing)

    • 많은 트래픽을 여러 서버로 분산합니다.
  • 성능 (performance)

    • client의 위치나 네트워크를 기반으로 최적의 성능을 낼 서버를 선택합니다.

GLSB의 동작

다음과 같은 순서로 진행됩니다.

GLSB-logic

각 서버마다 Health Check를 하고 운영가능한 서버의 IP를 반환합니다.


GLSB vs DNS

GLSB와 DNS를 비교하면 다음과 같습니다.

GLSB-vs-DNS

이를 표로 표현하면 다음과 같습니다.

GLSB DNS
재해복구 - 모니터링(Health Check) 실패한 IP는 응답에서 제외합니다. - 서버의 상황을 알 수 없습니다.
로드밸런싱 - 서버를 모니터링 해서 로드가 적은 서버의 IP를 반환합니다. - Round Robin 방식을 사용합니다. 정교한 로드밸런싱이 되지않습니다.
레이턴시 기반 - 유저에게 더 적은 latency를 가지는 서버로 연결합니다. - 네트워크상 멀리 떨어진 위치의 서버에 연결가능합니다.
위치기반 서비스 - 유저의 지역 정보에 기반하여, 해당 지역을 서버스하는 서버로 연결합니다. - Round Robin

GSLB 주요 기술

Health Check

  • 등록된 호스트들에 대해 주기적으로 health check를 수행합니다.
  • 호스트가 실패하는 경우, DNS 응답에서 해당 호스트를 제거합니다.
  • 실패한 호스트로의 접근을 막아서 서버의 가용성을 높입니다.

TTL(Time to Live)

  • DNS에서 권한을 가진 네임 서버는 특정 레코드에 대해 TTL를 설정할 수 있습니다.
  • 캐시 네임서버는 TTL 동안 캐시에 저장하고, Client로부터 요청이 오면 캐시에 저장된 값을 반환합니다.
  • TTL값이 너무 크면, GLSB의 상태 정보가 제때 동기화되지 못합니다.
  • TTL값이 너무 짧으면, 네임서버에 오는 부담감이 커집니다.

네트워크 거리와 지역

  • 주기적으로 성능을 측정하고 결과를 저장합니다.
  • DNS 질의에 대해 지리적으로 가까운 서버를 반환하거나 네트워크 거리가 가까운 서버를 반환합니다.
  • 지리적으로 가까운 서버는 RTT(Round Trip Time)도 짧기 때문에 동일한 결과를 반환하는 경우가 많습니다.

대표적인 서비스

  • AWS : Route53
  • Google Cloud : Cloud Load Balancing
  • Azure : Traffic Manager
  • Naver : Global Route Manager
  • F5
  • Citrix

마무리.

간단하게 GSLB에 대해 정리했습니다. 잘못된 부분 있으면 편하게 알려주세요.


출처