우노
[Network] L4 로드 밸런서 vs L7 로드 밸런서 본문
선요약
- 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보다 성능이 떨어질 수 있습니다.
L4와 L7 로드 밸런서를 선택하는 기준
L4 로드 밸런서 사용 사례
- 단순한 트래픽 분배: 트래픽이 단순히 네트워크 계층에서 분배되고, 애플리케이션의 복잡한 로직을 처리할 필요가 없는 경우.
- 고성능 및 빠른 처리: 빠른 응답 시간이 필요한 애플리케이션이나 고속 트래픽 처리가 중요한 경우.
- 예를 들어, 게임 서버, 비디오 스트리밍 등에서는 L4 로드 밸런서를 사용합니다.
- TCP/UDP 기반 서비스: HTTP 외의 서비스(FTP, DNS 등)를 로드 밸런싱하는 경우.
L7 로드 밸런서 사용 사례
- 애플리케이션 세부 제어: URL, 헤더, 쿠키, 파라미터 등에 따라 정밀한 라우팅이 필요한 경우.
- 예를 들어, 웹 애플리케이션에서
/images/*
요청은 특정 서버로,/api/*
요청은 다른 서버로 보내는 경우.
- 예를 들어, 웹 애플리케이션에서
- 세션 유지를 위한 로드 밸런싱: 사용자의 상태를 유지하며 같은 서버로 계속 요청을 보내는 경우.
- 예를 들어, 로그인 상태를 유지해야 하는 웹 애플리케이션.
- SSL 종료: HTTPS 트래픽을 로드 밸런서에서 종료하고, 이후에는 HTTP로 전달하는 기능을 제공하는 경우.
- 복잡한 애플리케이션 요구 사항: 트래픽을 기반으로 동적으로 처리해야 하는 경우 (예: 리버스 프록시, 인증 처리 등).
- 애플리케이션 세부 제어: URL, 헤더, 쿠키, 파라미터 등에 따라 정밀한 라우팅이 필요한 경우.
L4와 L7 로드 밸런서의 결합
- 하이브리드 방식으로 L4와 L7 로드 밸런서를 조합하여 사용하는 것도 가능합니다.
- 예를 들어, 트래픽의 대다수는 L4 로드 밸런서를 통해 빠르게 처리하고, 특정 요청은 L7 로드 밸런서를 사용하여 세부 로직을 처리하는 방식입니다.
'Network & Security > Concept' 카테고리의 다른 글
[Network] HTTP, HTTPS 및 SSL/TLS 암호화 프로토콜 (0) | 2024.04.08 |
---|---|
[Network] 로드밸런싱 알고리즘 종류 (0) | 2023.05.21 |
[Network] CIDR 계산 방법 (1) | 2023.03.25 |
[Network] 통신사별 DNS 서버 아이피 주소 (SKT, KT, LG, 구글) (0) | 2023.02.23 |
[Network] OpenID Connect(OIDC), OAuth 2.0 차이 (0) | 2023.02.18 |
Comments