GSLB에 대해 알아봅시다

MAY 10, 2024

1. GSLB 는 SLB와 무엇이 다른가?

  • SLB : Server Load Balancing
  • GSLB : Global Server Load Balancing
  • GSLB는 DNS + SLB

    • 일반적인 DNS 기능 + LB Method 적용이 가능
    • DNS는 단순 R/R 으로 IP만 응답함
    • 위치(topology)를 기반으로 응답을 다르게 주거나
    • Ratio를 줘서 6:4 등의 비율로 나누어 주거나
    • 하는 등의 제어가 가능

2. SLB

  • 구성단위는 VIP
  • VIP에 여러대의 서버를 바인딩
  • 즉, LB가 실제 트래픽을 받는 구조, 때문에 트래픽 규모에 따른 한계가 있을 수 있다.

✔️ Traffic Flow

  1. 클라이언트는 DNS에서 도메인 주소의 IP 주소를 질의하여 얻어옴
  2. 레코드 타입: A (도메인에 IPv4 주소를 연결하는 방식)
  3. 이때 IP는 미리 등록한 SLB VIP
  4. 클라이언트는 DNS 질의를 통해 얻어온 VIP로 접속을 시도
  5. 해당 VIP를 가진 SLB는 Method에 따라 Client의 요청을 서버로 분배

01

✔️ Health Check

  • 보통 아래 2가지를 방식을 표준으로 사용한다.

    • L4 : TCP port check
    • L7 : HTTP METHOD 를 사용하여 response code 또는 message 확인 (ex. health_check.html)
  • interval, response timeout, retry, down time 등의 정책을 정하여 헬스체크를 수행한다.

3. GSLB

  • 구성단위는 도메인
  • 도메인에 여러개의 서버 IP 혹은 VIP를 바인딩
  • 도메인으로 들어오는 질의에 대해 GSLB에서 서버 IP 혹은 VIP를 응답
  • 즉, GSLB는 DNS의 쿼리만 받음

    • 클라이언트에서는 응답받은 서버 IP 혹은 VIP로 트래픽 전송
    • 트래픽의 규모와는 직접적으로 연관이 없음
    • DNS 질의양(QPS)에 따른 영향은 있을 수 있으나, 큰 문제가 되는 경우는 적음

✔️ Traffic Flow

  1. 클라이언트는 DNS에서 서비스 도메인 주소를 질의하여 얻어옴
  2. 레코드 타입: CNAME (Alias 형태로 다른 도메인을 연결하는 방식)
  3. 이때는 결과값은 GSLB의 도메인
  4. 클라이언트는 DNS 질의를 통해 얻어온 GSLB 도메인으로 다시 질의
  5. 요청을 받은 GSLB는 Method에 따라 VIP 또는 서버 IP를 응답
  6. 클라이언트는 질의를 통해 얻어온 VIP 또는 서버 IP로 접속을 시도

5-1. VIP로 시도했다면, 해당 VIP를 가진 SLB는 Method에 따라 Client의 요청을 서버로 분배

5-2. 서버 IP로 시도했다면, 바로 서버로 접근

02

✔️ Health Check

  • DNS는 H/C 가 안되지만, GSLB는 바인딩된 VIP 혹은 서버 IP에 대해 SLB H/C 가 가능

4. 도메인 구성은 어떻게 해야 하는데?

서비스 도메인 > CNAME : GSLB 도메인 > VIP 또는 서버IP

  • 서비스 도메인 my-service.com 설정

    • 레코드 타입: CNAME
    • TTL : 600
    • 레코드 값: my-service-hash.kgslb.com
  • GSLB 도메인 my-service-hash.kgslb.com 설정

    • 레코드 타입: A
    • 트래픽 분배 방식: R/R
    • H/C : TCP 443, 80
    • 레코드 값
    • vip 10.1.1.1, 설정트래픽 50%
    • vip 10.1.1.2, 설정트래픽 50%

5. H/C 는 어떻게 동작하고 있는거지?

아래 L4, L7 H/C 동작을 보면, L4는 80포트 커넥션 확인만, L7는 HTTP 요청까지 진행한다.

뭐가 더 좋을까?

✔️ L4 H/C

  • GSLB ↔ SLB, SLB ↔ 서버 각각 H/C 를 진행한다.

03

✔️ L7 H/C

  • GSLB ↔ 서버 H/C 진행도 가능하다.
  • 때문에, 최종 endpoint 까지의 H/C 가 가능하다는 점에서 L7 H/C 가 매력적으로 보인다.

04

✔️ L7 H/C를 사용하는게 항상 좋을까?

  1. SRV#2가 H/C에 실패하면
  2. GSLB도 SLB#1 H/C를 실패로 간주할 수 있고,
  3. 실패로 간주되면 GSLB에서 VIP1이 다운이되어 Datacenter#1 로 트래픽 요청이 끊길 수 있다는 점을 고려해야하기 때문에 보통은 L4 H/C를 사용한다.

05


작업 기록 블로그