관리 메뉴

피터의 개발이야기

[Network] GSLB vs NLB vs ALB 로드 밸런서 비교 본문

DevOps/Network

[Network] GSLB vs NLB vs ALB 로드 밸런서 비교

기록하는 백앤드개발자 2024. 10. 3. 11:13
반응형

ㅁ 들어가며

ㅇ AWS에서 NLB, ALB에 대해서 사용해 보았는데, 최근 GSLB에 대해서 알게 되었다.

ㅇ 이 글은 GSLB의 개념을 정리하고 NLB, ALB와의 차이점을 정리하였다.

 

 

ㅁ GSLB의 정의와 기본 개념

 GSLBGlobal Server Load Balancing의 약자로, 전 세계적으로 분산된 서버들 간의 부하를 효율적으로 분산시키는 기술이다. 이 기술은 지리적으로 떨어진 여러 데이터 센터나 클라우드 환경에서 운영되는 서비스의 가용성과 성능을 최적화하는 데 중요한 역할을 한다.

 

ㅁ GSLB의 작동 원리

GSLBDNS(Domain Name System)를 기반으로 작동하며, 사용자의 위치, 서버 상태(부하, 장애), 네트워크 지연을 고려하여 최적의 서버로 라우팅한다.

GSLB는 DNS와 가장 큰 차이점은 실시간으로 서버의 상태를 분석하여 사용자 요청을 가장 적합한 서버로 라우팅한다. DNS는 지정된 IP만 반환할 뿐 서버의 상태를 알 수 없기 때문에 실패하게 될 수 있다. 

 

ㅁ GSLB의 주요 기능

ㅇ 지리적 로드 밸런싱

  - 성능 최적화: 사용자에게 가장 적합한 서버를 선택하여 응답 시간을 최소화한다. 사용자의 위치를 기반으로 가장 가까운 데이터 센터로 트래픽을 라우팅하여 응답 시간을 줄이고 사용자 경험을 개선할 수 있다.

ㅇ 높은 가용성

 - 여러 데이터 센터를 활용하여 단일 장애점을 제거한다.

 - 헬스 체크: 각 서버의 상태를 주기적으로 확인하여 장애가 발생한 서버로의 트래픽 전송을 방지한다.

 - 재해 복구: 주 데이터 센터에 문제가 발생했을 때 자동으로 백업 데이터 센터로 트래픽을 전환한다.

 

ㅇ 트래픽 관리

 - 네트워크 트래픽 최적화: 특정 서버나 데이터 센터의 부하가 높아질 경우, 다른 서버로 트래픽을 분산시킨다.

 - 비용 효율성: 트래픽을 효율적으로 분산시켜 리소스 활용도를 높인다.

ㅇ 확장성

 - 새로운 서버나 데이터 센터를 쉽게 추가할 수 있다.

 

ㅁ GSLB 서비스 로직

ㅇ 글로벌 서버 로드 밸런싱(GSLB)은 서버 로드 밸런싱(SLB)의 업그레이드된 개념이다. SLB는 서버의 상태(다운 여부)를 확인하고 단일 사이트에서만 L4 스위칭을 통해 서버 부하를 분산할 수 있는 반면, GSLB는 더 넓은 지리적 영역에 걸쳐 여러 사이트에서 동일한 작업을 수행할 수 있다.

출처: https://www.netmanias.com/en/?m=view&id=blog&no=7637

 

ㅇ 네트워크 시나리오

  • www.example.com에 대한 웹 서버는 4개가 있는데, 2개는 한국에 있고 나머지 2개는 미국에 있다.
  • SLB(SLB 1 및 SLB 2)는 각 사이트의 웹 서버 프런트 엔드에 위치한다. 사용자의 연결 요청은 www.example.com의 네 웹 서버의 IP 주소(10.1.1.10 ~ 13)로 직접 전송하는 대신 SLB의 가상 IP 주소(1.1.1.1 및 2.2.2.2)로 전송된다. 그런 다음 SLB는 요청의 대상 IP 주소를 변환한 후 웹 서버로 전달한다.
  • 한국 사이트에는 GLSB와 example.com DNS 서버가 위치해 있다.

ㅇ 서비스 로직

  1. 사용자는 www.example.com에 액세스하기 위해 로컬 DNS 서버에 DNS 쿼리를 보낸다. 그런 다음 로컬 DNS 서버는 쿼리를 루트 DNS 서버로 전달한 다음 .com DNS 서버로 전달한다.
  2. 해당 질의는 GSLB로 전송된다.
  3. GSLB는 DNS 서버 프록시로 작동하므로 DNS 쿼리를 example.com DNS 서버로 전달하기만 한다.
  4. example.com DNS 서버에서 www.example.com의 IP 주소(SLB의 가상 IP)(즉, 1.1.1.1 및 2.2.2.2)가 미리 구성되어 있다. 따라서 서버는 값을 GSLB로 전달한다. 전달 중 TTL(Time to Live)은 300초로 가정한다.
  5. 두 IP 주소 중에서 GSLB는 자체 정책에 따라 사용자에게 가장 잘 맞는 주소를 선택한다. 또한 TTL을 더 낮은 값(예: 10초)으로 대체한다. 이는 로컬 DNS 서버가 바인딩 정보(www.example.com의 IP 주소)를 최소 기간 동안 캐시하도록 하기 위한 것이다.
  6. GSLB의 정책에 따라 선택된 웹서버 1.1.1.1의 IP 주소와 변경된 TTL 값을 로컬 DNS 서버로 전달된다.
  7. 그러면 로컬 DNS 서버는 해당 값을 사용자에게 전송한다.
  8. 이제 사용자는 목적지 주소를 www.example.com의 IP 주소 1.1.1.1로 설정한 HTTP GET 메시지를 한국 사이트의 SLB1로 보낸다. 그리고 SLB1은 정책을 적용한 후(서버 상태, 부하 등을 고려) HTTP GET 메시지를 최종 목적지 서버 10.1.1.10으로 전달한다. 

ㅇ 참조: Global Server Load Balancing (GSLB) for Enterprise: Part 1. Concept and Service Logic

ㅁ GSLB의 구현 방식

ㅇ GSLB는 주로 두 가지 방식으로 구현된다.

  1. 하드웨어 기반 GSLB: 전용 하드웨어 장비를 사용하여 구현한다. 높은 성능과 안정성을 제공하지만 초기 투자 비용이 높다.
  2. 소프트웨어 기반 GSLB: 가상화 환경이나 클라우드 플랫폼에서 소프트웨어로 구현한다. 유연성이 높고 비용 효율적이지만, 하드웨어 기반 솔루션에 비해 성능이 다소 떨어질 수 있다.

 

ㅁ NLB (Network Load Balancing)

ㅇ OSI 모델의 4계층(전송 계층)에서 작동한다.

 IP 주소 및 포트 정보를 기반으로 트래픽을 분산한다.

 TCP, UDP, TLS 프로토콜을 지원한다.

 고성능, 짧은 지연 시간이 필요한 애플리케이션에 적합하다.

 게임 시스템, 미디어 스트리밍 서비스, IoT 시스템 등에 주로 사용된다.

ㅁ ALB (Application Load Balancing)

 OSI 모델의 7계층(애플리케이션 계층)에서 작동한다.

 HTTP 헤더, URL 경로, 쿠키 등 애플리케이션 수준의 정보를 기반으로 트래픽을 분산한다.

 HTTP, HTTPS, gRPC 프로토콜을 지원한다.

 콘텐츠 기반 라우팅, SSL 종료, 세션 지속성 등 고급 기능을 제공한다.

 웹 애플리케이션, 마이크로서비스, 컨테이너화된 환경에 적합하다.

 

ㅁ GSLB, NLB, ALB 차이 요약정리

  GSLB NLB ALB
작동범위 전역적, 글로벌 단일 데이터 센터, 리전 단일 데이터 센터, 리전
네트워크 계층 DNS 레벨 4계층(전송 계층) 7계층(애플리케이션 계층)
트래픽 분산 기준 지리적 위치, 서버 상태, 네트워크 성능 IP 주소, 포트 정보 HTTP 헤더, URL, 쿠키 등 애플리케이션 수준 정보
사용 사례 글로벌 서비스 제공, 재해 복구 고성능 네트워크 트래픽 처리 복잡한 웹 애플리케이션, 
마이크로서비스 아키텍처

 

ㅁ 함께 보면 좋은 사이트

 Global Server Load Balancing (GSLB) for Enterprise: Part 1. Concept and Service Logic

 Application Load Balancing, Network Load Balancing 및 Gateway Load Balancing의 차이점은 무엇인가요?

 

 

반응형
Comments