본문 바로가기

리눅스

L4 로드 밸런서와 L7 로드 밸런서의 주요 기능 및 차이점

728x90

L4 로드 밸런서와 L7 로드 밸런서의 주요 기능 및 차이점

L4(Layer 4) 로드 밸런서와 L7(Layer 7) 로드 밸런서는 각각 네트워크 계층과 응용 계층에서 동작하는 로드 밸런서입니다. L4 로드 밸런서는 TCP/IP 프로토콜의 전송 계층에서 동작하는 장비로, 패킷의 헤더 정보만을 사용하여 트래픽을 분산합니다. 반면, L7 로드 밸런서는 응용 계층에서 동작하는 장비로, 패킷의 헤더 정보뿐만 아니라 애플리케이션 데이터까지 사용하여 트래픽을 분산합니다.

L4 로드 밸런서와 L7 로드 밸런서의 주요 기능 및 차이점

기능 L4 로드 밸런서 L7 로드 밸런서
동작 계층 전송 계층 응용 계층
트래픽 분산 기준 패킷 헤더 정보 패킷 헤더 정보 + 애플리케이션 데이터
장점 간단하고 효율적 다양한 트래픽 분산 정책 지원
단점 세밀한 트래픽 분산 불가능 복잡하고 비효율적

주요 기능 및 차이점

L4 로드 밸런서 (Layer 4 Load Balancer)

  1. 주요 기능
    • IP 주소와 포트 번호를 기반으로 트래픽을 분산시킵니다.
    • 네트워크 계층에서 동작하며 연결 지향적인 프로토콜 (예: TCP)을 관리합니다.
    • 연결 기반 로드 밸런싱을 수행하며 데이터 패킷 또는 연결 상태를 고려합니다.
    • TCP 로드 밸런싱, UDP 로드 밸런싱 및 SSL 엔드투엔드(End-to-End) 암호화 해독을 지원합니다.
  2. 차이점
    • 주로 네트워크 계층에서 작동하므로 IP 주소와 포트 번호를 기반으로 트래픽을 분산합니다.
    • 연결 지향적인 프로토콜 (TCP)의 연결 상태를 고려하여 로드 밸런싱합니다.
    • 애플리케이션 레벨의 내용을 이해하지 못하며, 애플리케이션 트래픽을 분석하지 않습니다.
    • 주로 서버 부하 분산 및 가용성을 향상시키는 데 사용됩니다.

L7 로드 밸런서 (Layer 7 Load Balancer)

  1. 주요 기능
    • HTTP 및 HTTPS 헤더, URL 경로, 쿠키 및 애플리케이션 레이어 정보를 기반으로 트래픽을 분산시킵니다.
    • 애플리케이션 계층에서 동작하며 애플리케이션 레벨의 내용을 분석하고 수정할 수 있습니다.
    • 세션 관리, 애플리케이션 가속, 웹 애플리케이션 방화벽(WAF) 통합 및 SSL 오프로딩을 지원합니다.
    • 애플리케이션 트래픽을 더 상세하게 관리하며 애플리케이션 트래픽 인스팩션을 수행할 수 있습니다.
  2. 차이점
    • 애플리케이션 계층에서 작동하므로 HTTP 및 애플리케이션 레벨 정보를 기반으로 트래픽을 분산합니다.
    • 애플리케이션 레벨의 내용을 이해하고 수정할 수 있으며, 트래픽을 보다 정교하게 관리합니다.
    • 세션 관리, 애플리케이션 가속, 웹 애플리케이션 방화벽 (WAF) 등 고급 기능을 제공하여 애플리케이션 보안과 최적화를 제공합니다.
    • 웹 애플리케이션과 웹 서비스의 가용성을 향상시키는 데 사용됩니다.

L7 로드 밸런서는 애플리케이션 레벨에서 더 높은 수준의 제어를 제공하며, HTTP, HTTPS 및 다른 애플리케이션 프로토콜을 지원합니다. 선택은 애플리케이션의 요구 사항과 보안 및 성능 최적화에 따라 달라질 수 있습니다.

 

  • 로드 밸런싱 없음

출처-https://assets.digitalocean.com/articles/HAProxy/web_server.png

728x90
  • L4 로드 밸런싱

출처-https://assets.digitalocean.com/articles/HAProxy/layer_4_load_balancing.png

  • L7 로드 밸런싱

출처-https://assets.digitalocean.com/articles/HAProxy/layer_7_load_balancing.png

로드 밸런서 장비에서 사용되는 주요 밸런싱 정책 유형

L4 밸런싱 정책

  1. 라운드 로빈 (Round Robin): 클라이언트 요청을 순서대로 다른 서버로 분산하는 가장 기본적인 밸런싱 방법입니다.
  2. 가장 연결 수가 적은 서버 (Least Connections): 현재 연결 수가 가장 적은 서버에 요청을 보내어 부하를 최적화합니다.
  3. 가장 빠른 응답 시간 (Least Response Time): 서버의 응답 시간을 측정하여 가장 빠른 응답 시간을 가진 서버에 요청을 전달합니다.
  4. IP 주소 해싱 (IP Hash): 클라이언트의 IP 주소를 해싱하여 해당 해시 값에 해당하는 서버로 요청을 보냅니다.
  5. 가중치 라운드 로빈 (Weighted Round Robin): 서버에 가중치를 할당하여 높은 가중치를 가진 서버에 더 많은 요청을 보낼 수 있습니다.
  6. 가중치 가장 연결 수가 적은 서버 (Weighted Least Connections): 가중치와 연결 수를 고려하여 요청을 분배합니다.
  7. 세션 지속성 (Session Persistence): 세션 쿠키 또는 URL 파라미터를 사용하여 클라이언트가 항상 동일한 서버로 라우팅되도록 합니다.

L7 밸런싱 정책

  1. URL 경로 기반 밸런싱 (URL Path-Based Balancing): 요청의 URL 경로를 기반으로 서버로 분산합니다. 특정 경로에 대한 트래픽을 특정 서버로 보낼 수 있습니다.
  2. HTTP 헤더 기반 밸런싱 (HTTP Header-Based Balancing): HTTP 헤더 정보를 기반으로 서버로 요청을 분배합니다. 예를 들어, User-Agent 헤더를 기반으로 모바일 및 데스크톱 트래픽을 분리할 수 있습니다.
  3. 쿠키 기반 밸런싱 (Cookie-Based Balancing): 클라이언트 쿠키를 기반으로 서버에 요청을 보내거나 특정 세션을 유지합니다.
  4. SSL 암호화 오프로딩 (SSL Offloading): SSL 암호화 및 해독을 수행하여 서버의 리소스를 아껴 성능을 최적화합니다.
  5. 웹 애플리케이션 방화벽 (WAF) 통합: L7 밸런서는 웹 애플리케이션 방화벽을 통합하여 애플리케이션 레벨의 보안 검사를 수행합니다.
  6. URI 리디렉션 및 리라이트: 요청을 수정하고 리디렉션하며 트래픽 관리 및 URL 리라이팅을 수행합니다.

이러한 밸런싱 정책은 네트워크 환경 및 애플리케이션 요구 사항에 따라 선택됩니다. L4 밸런싱은 주로 네트워크 레벨에서 동작하며 L7 밸런싱은 애플리케이션 레벨에서 동작하여 보다 정교한 로드 밸런싱 및 트래픽 관리가 가능합니다.

 

참고URL

- DigitalOcean : How To Use HAProxy As A Layer 4 Load Balancer for WordPress Application Servers on Ubuntu 14.04

 

728x90