Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

은학의 코딩 일기장

[컴퓨터 네트워크] L4/ L7 로드밸런서 본문

cs

[컴퓨터 네트워크] L4/ L7 로드밸런서

<Eunhak> 2024. 8. 28. 17:07

L4 로드밸런서

 

L4 로드 밸런서는 OSI 4계층(전송 계층)에서 동작하는 로드 밸런서입니다. 이 계층에서의 로드 밸런서는 주로 TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol) 연결 정보를 기반으로 트래픽을 분산시키는 역할을 합니다.

L4 로드 밸런서의 특징

  1. 전송 계층에서의 트래픽 분산:
    • L4 로드 밸런서는 IP 주소와 포트 번호를 기반으로 클라이언트의 요청을 분산시킵니다. TCP/UDP 연결을 기준으로 트래픽을 분배하며, 패킷 수준에서 작동합니다.
    • 트래픽 분산은 클라이언트의 IP 주소, 포트 번호, 목적지 IP 주소, 목적지 포트 번호 등을 기준으로 이루어집니다.
  2. 프로토콜 무관:
    • L4 로드 밸런서는 HTTP, HTTPS, FTP, SMTP 등 다양한 프로토콜에 대해 트래픽을 분산할 수 있습니다. 애플리케이션 계층의 데이터(HTTP 헤더, URL 등)는 고려하지 않고, 전송 계층에서의 정보만을 사용하기 때문에 더 범용적으로 사용할 수 있습니다.
  3. 빠른 처리 속도:
    • L4 로드 밸런서는 전송 계층에서만 트래픽을 처리하므로, L7 로드 밸런서에 비해 더 빠르고 효율적으로 트래픽을 처리할 수 있습니다. 애플리케이션 계층의 데이터를 검사하지 않기 때문에, 처리 속도가 더 빠르며, 리소스 사용량이 적습니다.
  4. 간단한 로드 밸런싱 전략:
    • L4 로드 밸런서는 일반적으로 라운드 로빈(Round Robin), 최소 연결(Minimum Connections), 해시(Hashing) 등의 단순한 로드 밸런싱 알고리즘을 사용하여 트래픽을 분산합니다.
    • 이로 인해 설정과 관리가 상대적으로 단순하며, 고성능 트래픽 처리에 적합합니다.
  5. 상태 비저장(Stateless):
    • L4 로드 밸런서는 상태를 저장하지 않습니다. 즉, 각 요청은 독립적으로 처리되며, 이전 요청의 상태나 세션 정보는 유지되지 않습니다. 이로 인해 대규모 트래픽 처리에 유리합니다.

L4 로드 밸런서의 장점

  • 성능 최적화: 애플리케이션 계층의 데이터를 분석할 필요가 없기 때문에, L4 로드 밸런서는 매우 빠르고 효율적입니다. 대량의 트래픽을 처리할 수 있습니다.
  • 범용성: HTTP뿐만 아니라 다양한 프로토콜(TCP, UDP 등)에 대해 트래픽을 분산할 수 있습니다.
  • 단순성: 설정과 관리가 비교적 간단하며, 리소스 사용량이 적습니다.

L4 로드 밸런서의 단점

  • 세밀한 트래픽 분산 불가: L4 로드 밸런서는 전송 계층에서만 작동하기 때문에, 애플리케이션 계층의 데이터를 기반으로 세밀한 트래픽 분산이나 콘텐츠 기반 라우팅을 수행할 수 없습니다.
  • 보안 기능 제한: SSL 종료, 웹 애플리케이션 방화벽(WAF) 등과 같은 고급 보안 기능을 지원하지 않습니다. 이러한 기능은 L7 로드 밸런서에서 제공됩니다.
  • 세션 유지 기능 부족: 세션을 유지하거나 상태를 저장하지 않기 때문에, 특정 클라이언트의 요청이 항상 동일한 서버로 전달되도록 보장하기 어렵습니다.

L4 로드 밸런서 사용 사례

  • 고성능 네트워크 트래픽 처리: 대규모 트래픽을 빠르고 효율적으로 처리해야 하는 경우, L4 로드 밸런서가 적합합니다.
  • 다양한 프로토콜 지원: HTTP/HTTPS뿐만 아니라, FTP, SMTP, VoIP 등 다양한 프로토콜을 사용하는 애플리케이션에서 L4 로드 밸런서를 활용할 수 있습니다.
  • 단순한 트래픽 분산: 간단한 로드 밸런싱 알고리즘으로 트래픽을 균등하게 분산해야 하는 경우 적합합니다.

 

 

 

 

L7 로드밸런서

L7 로드 밸런서는 OSI 7계층(애플리케이션 계층)에서 동작하는 로드 밸런서입니다. 이는 주로 HTTP, HTTPS, WebSocket, FTP와 같은 애플리케이션 프로토콜을 기반으로 클라이언트의 요청을 분산시키고, 트래픽을 최적화하며, 서버의 부하를 균형 있게 분배하는 역할을 합니다.

L7 로드 밸런서의 특징

  1. 애플리케이션 레벨 트래픽 분산:
    • L7 로드 밸런서는 요청의 내용을 분석하고, URL, 쿠키, 헤더, HTTP 메서드 등과 같은 애플리케이션 계층의 데이터를 기반으로 트래픽을 분산시킬 수 있습니다. 이를 통해 더 세밀한 로드 밸런싱이 가능합니다.
    • 예를 들어, 특정 경로(/images, /api)의 요청을 특정 서버에만 보내도록 설정할 수 있습니다.
  2. 콘텐츠 기반 라우팅:
    • 요청된 콘텐츠의 종류에 따라 다른 서버로 트래픽을 분산시킬 수 있습니다. 예를 들어, 이미지 요청은 이미지 서버로, API 요청은 API 서버로 라우팅하는 방식입니다.
    • 이를 통해 서버가 특정 유형의 요청을 처리하는 데 최적화될 수 있으며, 전체 시스템의 성능을 높일 수 있습니다.
  3. SSL 종료(SSL Termination):
    • L7 로드 밸런서는 클라이언트와 서버 간의 SSL/TLS 암호화를 처리할 수 있습니다. 클라이언트와의 연결에서 SSL을 해제(종료)하고, 백엔드 서버로는 평문으로 트래픽을 전달하는 방식입니다.
    • 이를 통해 백엔드 서버는 SSL 처리 부담이 줄어들어 성능이 향상될 수 있습니다.
  4. 상태 유지(Session Persistence):
    • L7 로드 밸런서는 특정 클라이언트의 요청이 항상 동일한 서버로 전달되도록 할 수 있습니다. 이를 세션 유지 또는 스티키 세션(Sticky Session)이라고 합니다.
    • 예를 들어, 사용자가 로그인한 상태를 유지해야 하는 경우, 동일한 사용자의 요청이 항상 같은 서버로 전달되도록 하여 세션 정보를 유지할 수 있습니다.
  5. 고급 트래픽 관리:
    • L7 로드 밸런서는 트래픽을 관리하기 위해 고급 규칙을 설정할 수 있습니다. 예를 들어, 특정 사용자 에이전트(User-Agent)를 기반으로 요청을 필터링하거나, 특정 시간대에만 요청을 허용하는 등의 규칙을 적용할 수 있습니다.
    • 또한, QoS(Quality of Service) 정책을 설정하여 중요한 트래픽이 우선적으로 처리되도록 할 수 있습니다.
  6. 캐싱 및 압축:
    • L7 로드 밸런서는 트래픽을 최적화하기 위해 정적 콘텐츠를 캐싱하거나, 데이터를 압축하여 클라이언트로 전송하는 기능을 제공할 수 있습니다. 이를 통해 네트워크 트래픽을 줄이고 응답 속도를 향상시킬 수 있습니다.

L7 로드 밸런서의 장점

  • 정교한 트래픽 분산: HTTP/HTTPS 요청의 내용에 따라 트래픽을 세밀하게 분산할 수 있어, 트래픽 관리의 유연성이 높습니다.
  • 보안 강화: SSL 종료, 웹 애플리케이션 방화벽(WAF) 등의 기능을 통해 보안이 강화될 수 있습니다.
  • 확장성: 다양한 조건에 따라 트래픽을 분산시키므로, 애플리케이션의 확장성과 유연성이 증가합니다.
  • 사용자 경험 개선: 세션 유지를 통해 사용자 경험을 향상시킬 수 있습니다.

L7 로드 밸런서의 단점

  • 복잡성: L7 로드 밸런서는 더 많은 데이터를 분석하고 처리해야 하므로, L4 로드 밸런서보다 설정과 관리가 더 복잡할 수 있습니다.
  • 성능 부담: 애플리케이션 계층의 데이터를 처리하기 때문에, L4 로드 밸런서에 비해 더 많은 리소스를 소비할 수 있습니다. 대규모 트래픽을 처리할 때 성능이 저하될 수 있습니다.