오늘의 인기 글
최근 글
최근 댓글
Today
Total
01-22 00:01
관리 메뉴

우노

[Network] L4 로드 밸런서 vs L7 로드 밸런서 본문

Network & Security/Concept

[Network] L4 로드 밸런서 vs L7 로드 밸런서

운호(Noah) 2025. 1. 7. 16:08

선요약

  • L4 로드 밸런서는 빠르고 간단한 트래픽 분배가 필요한 경우에 적합합니다.
    • 성능이 중요하고, 복잡한 애플리케이션 로직이 필요 없는 경우 유리합니다.
  • L7 로드 밸런서는 애플리케이션 로직에 맞춰 세분화된 트래픽 분배가 필요한 경우에 적합합니다.
    • 고급 기능이 필요하거나 세션 유지와 동적 라우팅이 중요한 애플리케이션에서 유리합니다.

들어가기 앞서,

  • 로드 밸런서는 네트워크 트래픽을 여러 서버나 리소스로 분산시켜서 시스템의 부하를 효율적으로 처리하고, 가용성을 높이는 역할을 합니다.
  • 로드 밸런서에는 L4 (Layer 4) 로드 밸런서와 L7 (Layer 7) 로드 밸런서 두 가지 주요 유형이 있습니다.
  • 이들은 OSI 모델의 서로 다른 계층에서 동작하며, 각기 다른 용도와 특성을 가지고 있습니다.

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

  • 개념
    • L4 로드 밸런서는 OSI 모델의 전송 계층 (Transport Layer)인 4계층에서 동작합니다.
    • TCP/IP 또는 UDP 프로토콜을 기반으로 하여 클라이언트의 요청을 처리합니다.
    • L4 로드 밸런서는 요청의 IP 주소포트 번호를 사용하여 트래픽을 분산합니다.
  • 특징
    • L4 로드 밸런서는 주로 IP 주소포트 번호를 기반으로 트래픽을 분산시킵니다.
    • HTTP, HTTPS, FTP와 같은 애플리케이션 프로토콜이 아닌 저수준의 전송 프로토콜을 다룹니다.
    • 로드 밸런서는 패킷 헤더 정보를 바탕으로 트래픽을 전달하므로 요청의 내용을 알지 못합니다.
  • 장점
    • 속도와 성능이 뛰어나며, 높은 트래픽을 빠르게 처리할 수 있습니다.
    • 복잡한 애플리케이션 프로세스를 알지 못하므로 시스템 자원 소비가 적습니다.
    • 낮은 레벨에서 동작하기 때문에 단순한 구현빠른 트래픽 처리가 가능합니다.
  • 단점
    • 요청의 세부 정보를 알지 못하고, 단지 네트워크 정보를 기반으로 분배하므로, 특정한 로직에 따른 세분화된 라우팅이 어렵습니다.
    • 애플리케이션 계층에 대한 세부 정보를 고려하지 않기 때문에 복잡한 라우팅 전략이나 세션 유지가 필요한 경우에는 적합하지 않을 수 있습니다.

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

  • 개념
    • L7 로드 밸런서는 OSI 모델의 애플리케이션 계층 (Layer 7)에서 동작합니다.
    • HTTP, HTTPS, WebSocket, FTP, SMTP와 같은 애플리케이션 프로토콜에 대한 트래픽을 분석하고 처리합니다.
    • L7 로드 밸런서는 HTTP 헤더, 쿠키, URI 경로 등을 분석하여 요청을 처리하고, 요청에 맞는 서버로 트래픽을 분배합니다.
  • 특징
    • 애플리케이션 레벨에서 트래픽을 분배하며, HTTP 요청의 세부 내용까지 파악할 수 있습니다.
    • 동적 라우팅세분화된 정책을 설정할 수 있습니다. 예를 들어, URL 경로에 따라 서로 다른 서버로 트래픽을 전달하는 등의 처리가 가능합니다.
    • SSL 종료, 리다이렉트, 리버스 프록시 등 고급 기능을 제공할 수 있습니다.
  • 장점
    • 세분화된 라우팅애플리케이션 계층의 동적 제어가 가능하여 복잡한 애플리케이션 로직을 처리할 수 있습니다.
    • 세션 유지상태 정보 기반 라우팅이 가능하며, 트래픽의 세부 내용을 기반으로 한 최적화가 가능합니다.
    • 애플리케이션 레벨에서 SSL 종료, URL 기반 라우팅, IP 주소 기반 라우팅 등 다양한 기능을 지원합니다.
  • 단점
    • L4보다 성능이 떨어질 수 있습니다.
      • 애플리케이션 프로토콜을 분석하고 처리해야 하므로, 더 많은 시스템 리소스를 사용하고 더 높은 지연을 발생시킬 수 있습니다.
    • 구현이 더 복잡하며, 자원 소비가 많을 수 있습니다.

L4와 L7 로드 밸런서를 선택하는 기준

  • L4 로드 밸런서 사용 사례

    • 단순한 트래픽 분배: 트래픽이 단순히 네트워크 계층에서 분배되고, 애플리케이션의 복잡한 로직을 처리할 필요가 없는 경우.
    • 고성능 및 빠른 처리: 빠른 응답 시간이 필요한 애플리케이션이나 고속 트래픽 처리가 중요한 경우.
      • 예를 들어, 게임 서버, 비디오 스트리밍 등에서는 L4 로드 밸런서를 사용합니다.
    • TCP/UDP 기반 서비스: HTTP 외의 서비스(FTP, DNS 등)를 로드 밸런싱하는 경우.
  • L7 로드 밸런서 사용 사례

    • 애플리케이션 세부 제어: URL, 헤더, 쿠키, 파라미터 등에 따라 정밀한 라우팅이 필요한 경우.
      • 예를 들어, 웹 애플리케이션에서 /images/* 요청은 특정 서버로, /api/* 요청은 다른 서버로 보내는 경우.
    • 세션 유지를 위한 로드 밸런싱: 사용자의 상태를 유지하며 같은 서버로 계속 요청을 보내는 경우.
      • 예를 들어, 로그인 상태를 유지해야 하는 웹 애플리케이션.
    • SSL 종료: HTTPS 트래픽을 로드 밸런서에서 종료하고, 이후에는 HTTP로 전달하는 기능을 제공하는 경우.
    • 복잡한 애플리케이션 요구 사항: 트래픽을 기반으로 동적으로 처리해야 하는 경우 (예: 리버스 프록시, 인증 처리 등).

L4와 L7 로드 밸런서의 결합

  • 하이브리드 방식으로 L4와 L7 로드 밸런서를 조합하여 사용하는 것도 가능합니다.
  • 예를 들어, 트래픽의 대다수는 L4 로드 밸런서를 통해 빠르게 처리하고, 특정 요청은 L7 로드 밸런서를 사용하여 세부 로직을 처리하는 방식입니다.
Comments