본문 바로가기
Concepts/System Design

Layer 4 vs Layer 7 Load balancing

by ocwokocw 2025. 3. 29.

- 출처: https://www.f5.com/glossary/layer-4-load-balancing

 

What Is Layer 4 Load Balancing?

Learn about Layer 4 load balancing, how it differs from Layer 7 load balancing, and why it matters.

www.f5.com

- 출처: https://www.f5.com/glossary/layer-7-load-balancing

 

Benefits of Layer 7 Load Balancing

Layer 4 & Layer 7 load balancers base their routing decisions on different criteria. Read on to learn more about how they are different & why it matters.

www.f5.com

 

- Layer 4 로드 밸런싱

Layer 4 로드 밸런싱은 클라이언트 요청을 서버 그룹으로 어떻게 분배할지 결정하기 위해 네트워킹 전송계층에 정의된 정보를 사용한다. Layer 4 로드 밸런서는 출발지 와 목적지 IP 주소와 패킷 header 에 포함된 포트로 로드 밸런싱 결정을 하며 패킷의 내용은 고려하지 않는다.

 

- Layer 4 로드 밸런싱과 NAT (Network Address Translation)

"Layer 4 로드 밸런싱" 이라 하면 웹 사이트나 서비스를 위해 클라이언트에게 로드 밸런서의 IP 주소가 배포된다는것을 말한다. 그 결과 클라이언트는 요청시 목적지 IP 주소를 로드 밸런서 주소로 설정한다.

 

Layer 4 로드 밸런서가 요청을 받고 로드 밸런싱 결정을 할 때 요청 패킷에서 Network Address Translation(NAT) 를 수행하는데, 클라이언트의 요청 패킷에 설정된 목적지 IP 주소 (자신의 주소 즉 로드 밸런서의 주소)를 선택된 내부 네트워크의 컨텐츠 서버 주소로 변경한다. 이와 유사하게 서버응답을 클라이언트에게 반환할 때 로드 밸런서는 패킷 헤더의 출발지 주소를 컨텐츠 서버의 IP 주소에서 자신의 주소로 변경한다.

 

Layer 4 로드 밸런서는 TCP stream 에서 처음 몇개의 패킷에서 추출된 주소 정보에 기반하여 라우팅 결정을 하고 패킷의 내용은 검사하지 않는다. Layer 4 로드 밸런서는 밴더사에 의해 제공되는 전용 하드웨어 장비이며, 전용 로드 밸런싱 소프트웨어를 실행하여 NAT 연산은 소프트웨어가 아닌 특수한 칩에 의해 수행될 수 있다.

 

Layer 4 로드 밸런싱은 범용 하드웨어가 지금처럼 강력하지 않았고 클라이언트와 애플리케이션 서버간의 상효작용이 덜 복잡했을 때 트래픽 처리를 위해 인기있는 접근 방식이었다. Layer 4 는 더 정교한 로드 밸런싱 방법 (Layer 7) 보다 적은 연산량을 요구하지만 CPU 와 메모리가 충분히 빠르고 값이 싼 지금 Layer 4 의 성능 이점은 일반적인 상황에서 미미하거나 무의미해졌다.

 

- Layer 4 vs Layer 7

Layer 7 로드 밸런서는 OSI 모델의 가장 최상위 계층인 어플리케이션 계층에서 동작한다. Layer 7 로드 밸런서는 HTTP 헤더의 다양한 특성과 메시지의 실제 내용, 예를 들면 URL 이나 데이터 유형(텍스트, 비디오, 그래픽) 이나 쿠키 내용과 같은 것에 기반하여 라우팅을 결정한다.

 

전송된 정보의 다양한 측면을 고려하기 때문에 Layer 7 로드 밸런싱은 Layer 4 로드 밸런싱 보다 시간이나 컴퓨팅 파워가 더 소모되지만 그럼에도 불구하고 전반적인 효율성이 증대될 수 있다. 예를 들면 Layer 7 로드 밸런서는 클라이언트가 요청한 데이터의 유형을 결정할 수 있기 때문에 로드 밸런싱된 동일한 데이터를 중복 배치할 필요가 없다.

 

요즘 일반적으로 사용되는 NGINX Plus 와 오픈소스 NGINX 소프트웨어 같은 로드 밸런서들은 Layer 7 에서 동작하며 완전한 reverse proxy 로서 서비스한다. NAT를 사용하는 Layer 4 로드 밸런서처럼 패킷별 기반한 트래픽 관리가 아닌 Layer 7 로드 밸런싱 프록시는 요청과 응답을 전체적으로 고려할 수 있다. 즉 클라이언트와 어플리케이션 서버 사이의 트랜잭션을 완전하게 고려하여 트래픽을 관리할 수 있다.

 

어떤 로드 밸런서는 서비스의 특징에 따라 Layer 4 나 Layer 7 로드 밸런싱을 제공하도록 설정할 수 있다. 앞에서 언급한것처럼 현재 상용 하드웨어는 일반적으로 충분히 성능이 괜찮으므로 Layer 4 로드 밸런싱에서 얻는 성능 이점보다 Layer 7 에서 얻는 유연성과 효율성이 더 클수도 있다.

 

- OSI 계층과 인터넷 모델

사실 인터넷 트래픽에서 "Layer 4" 와 "Layer 7" 로드 밸런싱을 편의상 언급하고 있지만 엄밀히 말하면 정확하진 않다.

 

7 네트워크 계층에 대한 개념은 OSI (Open Systems Interconnection) 계층으로 부터 왔다. 모델은 네트워크 기능을 일반적으로 언급되는 Layer 1 ~ Layer 7 로 7 개의 추상과 계층으로 나누었다. 각 계층에는 어떻게 데이터를 패키징하고 전송하는지 정의한 표준이 존재한다. 이 표준은 요청이나 응답을 구성하는 비트 스트림을 프로토콜 데이터 단위(PDU) 라고 불리는 개별 패키지로 분할하는 방법을 정의한다. 또한 표준은 각 PDI 에서 헤더 형태로 추가되는 메타데이터를 정의하며 메타데이터는 예를 들어 출발지와 목적지 호스트의 주소를 지정할 수 있다.

 

다양한 수준에서 여러 프로토콜이 정의되어 있지만 웹사이트 로드 밸런싱과 관련된 프로토콜은 아래와 같다.

  • IP(Internet Protocol): Layer 3 인 internetwork 에서 작동한다. 이 계층의 PDU 는 "packets" 이며 대게 인터넷을 구성하는 작은 네트워크들 경계인 출발지에서 목적지 호스트까지 전송하는 역할을 한다. 인터넷에 연결된 각 장치는 고유의 IP 주소를 가지며, IP 주소는 패킷의 수신자로서 장치를 찾는데 사용된다.
  • TCP(Transmission Control Protocol): Layer 4 인 transport 계층에서 작동한다. TCP 는 효율적으로 브라우저가 실행중인 호스트와 서버 어플리케이션이 실행중인 호스트간의 가상 연결을 생성한다. 네트워크의 비 신뢰적인 특성 때문에 IP 패킷은 유실되고, 손상되며, 도착 순서가 보장되지 않을 수 있다. TCP 는 이런 오류들을 바로 잡고, IP 패킷의 스트림을 신뢰할 수 있는 통신 채널로 만들어준다. 많은 어플리케이션이 실행되고 있는 장비에서 정확히 특정 어플리케이션으로 전송될 수 있도록 하기 위해 각 어플리케이션에는 고유의 TCP 포트가 할당된다.
  • HTTP(Hypertext Transfer Protocol): Layer 7 인 application 에서 작동한다. 웹 브라우저와 웹 서버 사이의 통신을 위해 데이터가 어떻게 인코딩되어야 하는지를 정의한다.

'Concepts > System Design' 카테고리의 다른 글

Reverse proxy (web server)  (0) 2025.04.02
Load balancer  (0) 2025.03.29

댓글