CS 지식

로드 벨런서란 ? (LB)

쑨토리 2023. 9. 19. 23:00

트래픽이 많은 최신 웹사이트는 클라이언트의 수많은 동시 요청을 처리하고 텍스트, 이미지 등을 안정적인 방식으로 제공해야 한다.

이러한 대규모 트래픽이 발생하는 사이트들은 서버를 확장에서 운영하는 것이 일반적인데,

그 방법으로는 수직적 확장, 수평적 확장 2가지가 있다. 

 

* 확장 방법인 scale-out, scale-up을 확인하려면 아래 글을 참고하기!

https://ssoontory.tistory.com/279

 

스케일 아웃(Sclae-out)과 스케일 업(Scale-up)의 차이

두 방법은 모두 대용량 트래픽으로 기존에 사용하고 있던 서버에 부하가 걸렸을 때 조치할 수 있는 인프라 확장 방법들이다. 둘의 확장 방법이 어떻게 다른지 아래에서 알아보도록 하자. 💡 스

ssoontory.tistory.com

 

위의 글에서 나오는 확장 방법중, Scale-out 방식으로 여러 서버를 운영하더라도 수많은 클라이언트의 요청이 하나로 몰릴 수 있게 된다. 따라서 여러 서버를 두더라도 하나의 서버에 집중적으로 부하가 발생할 수 있게 된다는 것이다. 

이런 특정 서버로의 트래픽 쏠림 현상을 해결하기 위해 로드벨런싱은 반드시 필요한 기술이다. 


 

로드밸런싱(Load Balancing) 란?

: 두개 이상의 컴퓨터 자원에 작업을 나누는 것을 의미.

 

로드밸런서(Load Balancer)란?

: 클라이언트와 Server 그룹 사이에서 위치하여 서버의 부하를 분산시켜주는 하드웨어/소프트웨어 를 의미한다.

 

 

로드밸런서의 역할

  • 네트워크 트래픽 또는 클라이언트 요청을 여러 서버에 적절하게 분배한다. (특정 서버의 부하를 덜어줌)
  • Active 한 서버에만 요청을 전송한다. (서버가 다운되면 리다이렉션 > 높은 가용성과 신뢰성을 보장해줌)
  • 서비스 중단 없이 서버를 추가하거나 뺄 수 있게 해준다. (유연성 제공)

 


로드밸런서의 종류

 

로드벨런서는 OSI 7계층을 기준으로 부하를 분산하는 방법에 따라 종류가 나뉜다.

2 계층을 기준으로 부하를 분산한다면 L2,

3 계층을 기준으로 부하를 분산한다면 L3 방식이다.

상위 계층으로 갈수록 섬세한 부하 분산이 가능하지만 가격이 비싸진다.

하위 계층으로 갈수록 간단한 부하 분산이 가능하고 가격이 저렴해진다. 

상위 계층으로 갈수록 가격이 비쌌지만 현재 점점 가격 차이가 줄어드는 추세이기 때문에 L7을 주로 사용한다. 

 

L2 Data link 계층을 사용, Mac 주소 기반 부하 분산  
L3 Network 계층을 사용, IP 주소 기반 부하 분산  
L4 Transport 계층을 사용, Port 기반 부하 분산 TCP, UDP
L7 Application 계층을 사용, 요청(URL) 기반 부하 분산 HTTP, HTTPS 등

 


L4와 L7 로드 밸런싱

 

L4 Load Balancer 는 IP, Port 를 기준으로 스케줄링 알고리즘을 통해 부하를 분산한다. 

클라이언트에서 로드벨런서(DNS)로 요청을 보냈을때 최적의 서버로 요청을 전송하고 결과를 클라이언트에게 준다.

한대의 서버에 각기 다른 포트 번호를 부여해서 다수의 서버 프로그램을 운영하는 경우라면 최소한 L4 로드 벨런서 이상을 사용해야 한다.

 

L7 Load Balancer는 L7 위에서 동작하기 때문에 IP, Port 이외에도 URL, Payload, Http Header, Cookie 등의 내용을 기준으로 부하를 분산한다. 패킷의 내용을 확인해서 그 내용에 따라 트래픽을 특정 서버에 전송하는 것이 가능한 것이다. URL 에 따라서 부하를 분산시키거나, HTTP 헤더의 쿠키 값에 따라서 부하를 분산하는 등 클라이언트의 요청을 보다 세분화해 서버에 전달할 수 있다. 

그리고 서버의 응답까지 알고 분석할 수 있기 때문에 서버들로부터 필요한 정보를 응답 받아 클라이언트의 요청을 전달하기 전에 서버의 상태를 파악한 후 로드벨런싱을 진행할 수 있다. 

또한 L7 Load Balancer는 L4 Load Balancer와 다르게 데이터를 분석해서 처리가 가능하기 때문에 악의적이거나 비전상적인 콘텐츠를 감지해 보안 지점을 구축할 수 있는 장점이 있고, 그만큼 자원소모가 크다는 단점이 있다.

 


 

로드벨런서의 주요 기능

 

로드벨런서는 3가지의 주요 기능을 통해 로드벨런싱을 진행한다.

 

Network Address Translation ( NAT )

사설 주소인 Private IP를 공인 IP 주소 (Public IP) 로 바꾸는데 사용하는 통신망의 주소 변조기이다. 

Tunneling

데이터를 캡슐화하여 연결된 노드만 캡슐을 해제할 수 있게 만듬

 

Dynamic Source Routing protocol (DSR)

요청에 대한 응답을 할 때 로드벨런서가 아닌 클라이언트의 IP로 응답

 


로드벨런서가 동작하는 방법

 

기초적인 방법인 Bridge / Transparent Mode 에서는 사용자가 서버에 서비스 요청을 할 때 중간에서 로드벨런서가 NAT를 통해 IP / MAC 주소를 변조한다. 즉 요청과 응답이 모두 Load Balancer를 경유하게 된다. 

 

이미지 출처 : https://deveric.tistory.com/91