[란] L4 load balancer vs L7 load balancer 란?

Hailey·2020년 8월 22일
5

목록 보기
11/15

#로드밸런서란?

로드밸런서는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭한다. 클라이언트와 서버풀(Server Pool, 분산 네트워크를 구성하는 서버들의 그룹) 사이에 위치하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 한다. 만약 Scale-out의 방식으로 서버를 증설하기로 결정했다면 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 반드시 필요하다.

#OSI 7 계층이란?

네트워크 통신 시스템은 크게 일곱 가지의 계층(OSI 7 layers, 개방형 통신을 위한 국제 표준 모델)으로 나뉜다. 각각의 계층(Layer)이 L1/L2/L3‥‥L7에 해당한다. 상위 계층에서 사용되는 장비는 하위 계층의 장비가 갖고 있는 기능을 모두 가지고 있으며, 상위 계층으로 갈수록 더욱 정교한 로드밸런싱이 가능하다.

그렇다면 각 계층에 해당하는 대표적인 프로토콜에는 어떤 것들이 있는지 살펴보겠다.

#L4(Transport Layer)?

주로 Round Robin 방식을 사용하며, 네트워크 계층(IP, IPX)이나 트랜스포트 계층(TCP, UDP)의 정보를 바탕으로 로드를 분산시킨다.

#L7(Application Layer)?

애플리케이션 계층(HTTP, FTP, SMTP)에서 로드를 분산하기 때문에 HTTP 헤더, 쿠키 등과 같은 사용자의 요청을 기준으로 특정 서버에 트래픽을 분산하는 것이 가능하다.
쉽게 말해 패킷의 내용을 확인하고 그 내용에 따라 로드를 특정 서버에 분배하는 것이 가능한 것이다. 위 그림과 같이 URL에 따라 부하를 분산시키거나, HTTP 헤더의 쿠키값에 따라 부하를 분산하는 등 클라이언트의 요청을 보다 세분화해 서버에 전달할 수 있다. 또한 L7 로드밸런서의 경우 특정한 패턴을 지닌 바이러스를 감지해 네트워크를 보호할 수 있으며, DoS/DDoS와 같은 비정상적인 트래픽을 필터링할 수 있어 네트워크 보안 분야에서도 활용된다.

아래의 표를 통해 L4 로드밸런서와 L7 로드밸런서를 한 눈에 비교해볼 수 있다.

#로드밸런서 알고리즘?

  • Round Robin(순차방식)
    : 요청을 순서대로 각 서버에 균등하게 분배하는 방식
    서버 커넥션 수나 응답시간에 상관없이 모든 서버를 동일하게 처리, 다른 알고리즘에 비해서 가장 빠르다
  • IP 해시 방식(IP Hash Method)
    클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식, 사용자의 IP를 해싱해(Hashing, 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는 것, 또는 그러한 함수) 로드를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장한다.
  • Least Connection(최소접속방식)
    : 서버에 연결되어 있는 Connection 개수만 갖고 단순비교하여 가장 적은곳에 연결
  • Weighted Least Connections(가중치 최소접속방식)
    : 서버에 부여된 Weight 값을 기반으로 Connection 수의 개수와 같이 고려하여 할당
  • Fastest Response Time(응답시간방식)
    : 가장 빨리 응답하는 서버에 이용자 요구를 연결하는 방법. 응답시간은 각 서버가 패킷 형태의 요구를 송수신하는데 걸리는 시간을 측정한 것이다.
  • Adaptive(최소대기방식)
    : Open또는 Pending(계류중인) 커넥션을 적게 가지고 있는 서버로 네트웍 커넥션 방향을 지정한다. Pending 커넥션은 Full TCP Handshake를 완성하지 않은 것으로, 이것은 초당 클라이언트 Thread의 수가 증가할 때 더욱 잘 수행된다.

Refer
https://post.naver.com/viewer/postView.nhn?volumeNo=27612269&memberNo=2521903
https://post.naver.com/viewer/postView.nhn?volumeNo=27046347&memberNo=2521903

profile
Business & Software 💗🌎

0개의 댓글