티스토리 뷰

Network

GSLB(Global Server Load Balancing)란?

CharlieZip 2023. 5. 9. 22:09
반응형

GSLB란?


GSLB는 일반적으로 데이터센터 장애 조치(데이터 센터의 가용성 확보)를 제공하거나 가장 가까운 센터로 사용자를 안내하여 최종 사용자 성능을 향상시키는데 사용되는 기술이다.

일반적인 로드밸런싱과는 차이가 있고 DNS의 업그레이드 형태라고 볼 수 있다.

 

그러면 GSLB의 특징이 무엇이고 DNS에 비해서 어떤 부분이 업그레이드 됐는지 알아보자.

 

 

GSLB 특징


 

인프라 아키텍처

GSLB의 특성에 대해 알아보기 위해 간단한 인프라 구조를 가정해보았다.

물론 GSLB를 사용하는 실제 운영하는 서비스는 훨씬 복잡할테지만 쉬운 이해를 위해 다른 부분은 최대한 생략하고 GSLB에 집중하여 인프라를 가정해보았다.

 

인프라 구성 환경

  • 총 4대의 서버
  • 서버는 서울, 부산에 각각 2개씩 존재
  • GSLB를 통해 서울, 부산으로 트래픽을 분산

 

 

1. GSLB는 health check 요청을 사용한다.

만약 부산에 존재하는 서버에 오류가 생겨 요청을 처리할 수 없는 상태가 된다면 사용자 요청에 대한 트래픽은 어떻게 처리될까??

 

DNS는 H/C(health check)를 진행하지 않기 때문에 부산에 존재하는 서버에 오류가 생긴지를 알 수가 없다. 따라서 서버의 상태와 상관없이 서울, 부산 두 곳에 요청을 전달하게 되고 부산으로 요청이 전달된 사용자는 정상적인 서비스를 이용할 수 없게 된다.

 

반면에, GSLB는 H/C(health check)를 통해 부산이 현재 요청을 처리할 수 없는 상태인걸 확인하고 부산을 즉시 Failover 처리하여 도메인 응답에서 제거함으로써 트래픽이 서울쪽으로만 가도록 변경하여 안정적인 서비스를 유지할 수 있게 도와준다.

 

 

2. 향상된 Load Balancing

DNS는 기본적으로 Round Robin 방식으로 로드밸런싱 한다.

GSLB도 기본적으로는 Round Robin 방식으로 로드밸런싱하지만 상황에 따라 좀 더 정교한 로드밸런싱이 가능하다.

 

GSLB 로드밸런싱 기능

  • 분산 알고리즘을 Round Robin이 아닌 Weighted Round Robin 방식으로도 변경 가능
    • 가중치가 서울이 10, 부산이 1이라면 11번의 요청중에 10번은 서울로, 1번은 부산으로 가중치에 따라 배분해준다.
  • L4단위 로드밸런싱의 경우 다중포트 설정 가능
  • 여러 개의 로드 밸런싱 규칙을 동시에 적용 가능
  • 서버의 상태를 모니터링 하기 때문에 트래픽이 몰리지 않는 서버로 로드밸런싱이 가능

 

Round Robin 방식
- 순환 방식 기반으로 트래픽 균등 분배
Weighted Round Robin 방식
- 연결 대상별 가중치(Weight)에 비례하여 트래픽 분배

 

3. 응답시간 중심 서비스

사용자 요청에 대한 응답시간이 서울은 1ms, 부산은 10ms가 걸린다고 가정해보자.

 

DNS는 Round Robin 방식을 사용하기 때문에 응답속도와 상관없이 서울, 부산으로 트래픽을 균등하게 분산시키기 때문에 부산으로 요청이 전달된 사용자는 비교적 느린 서비스를 경험하게 된다.

 

반면에, GSLB는 각 지역별로 서버에 대한 응답속도(latency) 정보를 가지고 있기 때문에 유저로부터 요청이 들어오면 응답속도가 빠른 서울로 우선시해서 요청을 전달해준다.

 

 

CNAME 레코드와 A레코드 설정


위의 서버 구성을 살펴보면 charliezip.tistory.com 이라는 CNAME 레코드와 charliezip.a.tistory.com 이라는 A레코드가 구성되어 있는걸 볼 수 있다.

GSLB를 설정할때 CNAME레코드, A레코드도 같이 설정하게 된다.

CNAME레코드와 A레코드는 사용자로부터 charliezip.tistory.com이라는 요청이 들어오면 해당 도메인에 맞는 서버의 IP를 맵핑해주는 역할을 하고 있다.

 

 

DNS A레코드

DNS A레코드(Address record)란 주어진 도메인의 IP 주소를 나타낸다.

 

예시)

도메인 레코드 유형
charliezip.tistory.com A 127.0.0.1

A레코드는 도메인의 IP주소를 맵핑해주기 때문에 charliezip.tistory.com이라는 도메인을 127.0.0.1 IP주소로 맵핑해준다.

 

도메인을 IP주소로 바로 맵핑해주기 때문에 직관적인 장점도 있지만

A레코드를 사용하는 경우 서버 교체 등의 이슈로 IP가 변경되는 일이 발생한다면 그때마다 IP값을 변경해주어야 하는 리스크가 존재한다.

 

IP를 제때 변경하지 않으면 서버 장애로 이어지게 되는데 이러한 리스크를 해소하기 위해 보통 CNAME 레코드를 사용한다.

 

 

DNS CNAME 레코드

CNAME레코드는 도메인 이름의 별칭으로써 작동한다.

 

 

예시)

도메인 레코드 유형
charliezip.tistory.com CNAME charliezip.a.tistory.com
charliezip.a.tistory.com A 127.0.0.1

charliezip.a.tistory.com은 charliezip.tistory.com의 별칭으로 사용된다.

그리고 charliezip.a.tistory.com 을 A레코드로 등록한다.

 

사용자 접근시 레코드 동작 흐름 순서

  1. charliezip.tistory.com 으로 접속하면 CNAME레코드 값인 charliezip.a.tistory.com 값을 반환
  2. A레코드를 통해 charliezip.a.tistory.com 에 해당하는 127.0.0.1 IP 주소로 연결

CNAME레코드를 사용할 경우 별칭인 charliezip.a.tistory.com 값을 사용하기 때문에 서버의 IP를 직접 바라보고 있지 않다.

따라서 서버의 IP가 변경되어도 별도 처리를 하지 않아도 되기때문에 좀 더 안정적인 서비스 운영이 가능한 장점이 있다.

 

유의사항

  • A레코드에는 IP만 허용되면, 포트번호는 지원하지 않는다.
  • 모든 CNAME 레코드는 IP 주소가 아닌 도메인을 가리켜야 한다.
  • CNAME 레코드는 도메인 및 서브 도메인만 허용하며, 하위주소 "charliezip.tistory.com/catagory/"는 지원하지 않는다.

 

 

반응형

'Network' 카테고리의 다른 글

[Network] HTTP 인증  (0) 2021.08.29
[Network] HTTPS  (0) 2021.08.14
[Network] HTTP 프로토콜  (0) 2021.08.02
[Network] 웹과 네트워크  (0) 2021.07.29
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함