L4 LB vs L7 LB

L4

OSI 4계층 transport layer load balancer의 경우 TCP IP 헤더 정보를 통한 밸런싱

client의 트래픽 TCP SYN 요청을 처리

  • SSL TLS 불가 (L4 상위 레이어)
  • IP, port 만 보고 로드 밸런싱
  • 특정 L4 프로토콜 기반 트래픽 모두 사용 가능
  • 속도 빠름

L7

Application layer load balancer

  • HTTP, HTTPS 와 같은 특정 L7 프로토콜을 통한 로드밸런싱만 가능함
  • TLS/SSL 처리를 통해 client > LB 간 통신 암호화 가능, server는 관리 안해도 ㄱㅊ
  • server의 상태에 따라 다양한 LB 알고리즘 적용 가능: stateful nginx, HAproxy

왜 L4가 L7보다 빠를까

  • IP 주소와 포트 번호만 확인하여 트래픽을 분산 상위 프로토콜의 헤더를 파싱할 필요가 없어서 처리 속도가 훨씬 빠름.

  • L7 LB는 일반적으로 사용자 공간(User Space)에서 동작하며, HTTP 헤더 분석 및 SSL 종료 등의 부가적인 작업을 수행하기 때문에 오버헤드가 증가함.

  • L4 는 커널 영역에서 작동하는 경우가 많음 IPVS


Load balancing algorithm

Static Routing

Round Robbin

  • host에 평등하게 하나씩 트래픽 분산

Sticky RR

  • 같은 source로부터 온 request들은 동일한 host로 라우팅
    • cache, session, cookie 관리에 이점

Weighted RR

  • 호스트에 가중치를 주어 이를 기준으로 RR
    • 현재 가용성 있는 host들 or 부하가 적은 host들에게 분산

IP/URL Hash

  • Sticky RR처럼 동일한 client의 req를 동일한 서버로 보내기 위함
  • source IP를 hash input으로 넣어 서버에 매핑

Dynamic Routing

Least Connections

  • 최근 연결이 적은 host들에게 트래픽 분산
  • host들의 connection 정보를 알아야하므로 L7 LB에서 가능 Least Time
  • 최근 응답이 가장 빠른 호스트로 트래픽 분산
  • 마찬가지로 L7 LB만 가능

Firewall, Router 차이

  • Router: IP 주소 기반으로 패킷을 전달하며, 네트워크 간 연결을 담당.
  • Firewall: 네트워크 보안을 위해 패킷 필터링, 액세스 제어, DDoS 방어 등의 역할 수행.
  • LB와의 차이: LB는 주로 트래픽을 최적의 서버로 분배하는 역할을 수행하며, Router처럼 패킷을 단순히 전달하는 것이 아니라 트래픽 부하를 고려한 정책을 적용함.