[Network] LB - Load Balancer

728x90
반응형
SMALL
반응형

# Load Balancer

서버의 부하를 분산시키는 서비스이다.

즉, 여러 대의 서버를 두고 트래픽을 분산시켜 각 서버에 주어지는 부하를 줄이는 서비스이다.

 

또한, 외부의 공격(DDoS 등)으로 부터 안전하다.

각 Server 앞에 LB를 두고 공인 IP를 설정, Client의 모든 요청을 LB가 받기 때문에 실제 Server들은 사설 IP를 갖게 된다.

 

그렇기에 외부에서는 서버의 IP를 알 수 없고 서버에 직접 접속할 방법이 사라지게 되어 안전해진다.

 

 

대표적으로 L4, L7 Load Balancer가 있다.

 


 

## Load Balancing Algorithm

 

Round Robin

  • sever에 들어온 요청을 순서대로 돌아가며 배정하는 방식이다.
  • client의 요청을 순서대로 분배하기에 각 server가 동일한 스팩을 갖고 있다.
  • server와 세션이 오래 지속되지 않는 경우에 활용하기에 적합하다.

 

 

Weighted Round Robin

  • 각 server마다 가중치를 매기고 가중치가 높은 서버를 우선적으로 배정하는 방식이다.
  • server마다 처리 성능이 상이한 경우 사용하는 방식이다.

 

 

IP Hash

  • client의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식이다.
  • 사용자의 IP를 해싱하여 분배하기에 사용자는 항상 동일한 서버로의 연결을 보장받는다.

 

 

Least Connection

  • 요청이 들어온 시점에 가장 적은 연결 상태를 보이는 server에 트래픽을 분배한다.
  • 세션이 길어지거나, 트래픽이 일정하지 않은 경우 적합하다.

 

 

Least Reponse Time

  • server의 현재 연결 상태와 응답 시간을 고려하여 트래픽을 분배한다.
  • 가장 적은 연결 상태와 가장 짧은 응답 시간을 보이는 서버에 우선적으로 분배한다.

##  L4 Load Balancer

 

L4 로드밸런서는 네트워크 계층(IP, IPX)이나 트랜스포트 계층(TCP, UDP)의 정보를 바탕으로 트래픽을 분산한다.

IP 주소, Port 번호, MAC 주소 등에 따라 트래픽을 분배할 수 있다.

 

 

### NAT

Network Address Translation : 네트워크 주소 변환

IP 패킷의 TCP/UDP 포트 숫자와 출발지 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술

즉, 네트워크 망을 이동하면서 Router와 같은 IP를 변형시킬 수 있는 네트워크 장비에 의해 출발지 혹은 목적지 IP가 변화하는 것을 의미한다.

 

L4에서 NAT이 필요한 이유는 다음과 같다.

모든 요청 자체는 L4가 받지만 실제 처리는 뒷 단의 각 Server에서 수행된다.

 

Client들이 L4의 VIP(Virtual Server IP)로 접속하면 L4는 실제 요청을 수행할 Server IP로 변경이 필요하다.

 

 

 

##  L7 Load Balancer

 

L7 로드밸런서는 애플리케이션 계층(HTTP, FTP, SMTP 등)에서 트래픽을 분산한다.

그렇기에 HTTP Header, Cookie 등과 같은 사용자의 요청을 기준으로 트래픽 분산이 가능하다.

 

즉, 패킷의 내용을 확인하고 그 내용에 따라 분배하는 것이다.

 

패킷을 확인하기에 특정 패턴을 지닌 바이러스를 감지하여 네트워크를 보호할 수 있고,

DoS/DDoS와 같은 비정상적인 트래픽을 필터링할 수 있어 네트워크 보안 분야에서 활용된다.

 

 


 

### L4 vs L7


 


참고

반응형

 

728x90
반응형
LIST

'Develope > Network' 카테고리의 다른 글

[Network] DNS  (0) 2022.11.02
[Network] TCP & UDP  (0) 2022.11.02
[Network] OSI 7 Layers  (0) 2022.08.12