4계층 부하 분산은 네트워크 전송 계층(4계층)에서 정의된 정보를 기반으로 클라이언트 요청을 여러 서버 그룹에 분산하는 방법을 결정합니다. 특히 인터넷 트래픽의 경우, 4계층 부하 분산 장치는 패킷 헤더에 기록된 소스 및 대상 IP 주소와 포트를 기반으로 부하 분산 결정을 내리며, 패킷 내용은 고려하지 않습니다.
OSI(Open Systems Interconnection) 참조 모델에 따르면 총 7개의 네트워킹 계층이 있습니다. 자세한 내용은 아래의 OSI 모델과 인터넷 모델의 계층을 참조하세요.
부하 분산에 대한 자세한 내용은 NGINX Plus를 사용한 애플리케이션 부하 분산을 참조하세요.
오늘날 "4계층 부하 분산"이라는 용어는 부하 분산 장치의 IP 주소가 웹 사이트나 서비스(예: DNS를 통해)에 대해 클라이언트에게 광고되는 배포를 가장 일반적으로 나타냅니다. 결과적으로 클라이언트는 요청에서 로드 밸런서의 주소를 대상 IP 주소로 기록합니다.
4계층 로드 밸런서가 요청을 받고 로드 밸런싱 결정을 내리면 요청 패킷에 대한 NAT(네트워크 주소 변환)도 수행하여 기록된 대상 IP 주소를 자체 IP 주소에서 내부 네트워크에서 선택한 콘텐츠 서버의 IP 주소로 변경합니다. 마찬가지로, 로드 밸런서는 서버 응답을 클라이언트에 전달하기 전에 패킷 헤더에 기록된 소스 주소를 서버의 IP 주소에서 자체 IP 주소로 변경합니다. (패킷에 기록된 목적지 및 소스 TCP 포트 번호도 비슷한 방식으로 변경되는 경우가 있습니다.)
4계층 로드 밸런서는 TCP 스트림의 처음 몇 개 패킷에서 추출한 주소 정보를 기반으로 라우팅 결정을 내리고 패킷 내용은 검사하지 않습니다. 4계층 로드 밸런서는 종종 공급업체가 제공하는 전용 하드웨어 장치이며 독점적인 로드 밸런싱 소프트웨어를 실행하며, NAT 작업은 소프트웨어가 아닌 특수 칩에 의해 수행될 수 있습니다.
4계층 로드 밸런싱은 상용 하드웨어가 지금처럼 강력하지 않았고 클라이언트와 애플리케이션 서버 간의 상호 작용이 훨씬 덜 복잡했을 때 트래픽 처리를 위한 인기 있는 아키텍처 접근 방식이었습니다. 이 방법은 보다 정교한 부하 분산 방법(예: Layer 7)보다 계산량이 적게 필요하지만 CPU와 메모리가 이제 충분히 빠르고 저렴해져서 대부분의 상황에서 Layer 4 부하 분산의 성능 이점이 무시할 수 있거나 무의미해졌습니다.
7계층 로드 밸런서는 OSI 모델의 최상위 수준인 애플리케이션 계층에서 작동합니다(인터넷에서는 HTTP가 이 계층의 주요 프로토콜입니다). 7계층 로드 밸런서는 HTTP 헤더의 다양한 특성과 URL, 데이터 유형(텍스트, 비디오, 그래픽), 쿠키의 정보 등 메시지의 실제 내용을 기반으로 라우팅 결정을 내립니다.
전송되는 정보의 여러 측면을 고려하면 7계층 부하 분산은 시간과 필요한 컴퓨팅 성능 측면에서 4계층보다 비용이 더 많이 들 수 있지만, 그럼에도 불구하고 전반적인 효율성은 더 높아질 수 있습니다. 예를 들어, 7계층 로드 밸런서는 클라이언트가 요청하는 데이터 유형(비디오, 텍스트 등)을 파악할 수 있으므로 로드 밸런싱된 모든 서버에 동일한 데이터를 복제할 필요가 없습니다.
NGINX Plus와 오픈 소스 NGINX 소프트웨어와 같은 최신 범용 로드 밸런서는 일반적으로 7계층에서 작동하고 완전한 역방향 프록시 역할을 합니다. NAT를 사용하는 Layer 4 로드 밸런서처럼 패킷 단위로 트래픽을 관리하는 대신, Layer 7 로드 밸런싱 프록시는 요청과 응답을 전체적으로 읽을 수 있습니다. 그들은 클라이언트와 애플리케이션 서버 간의 트랜잭션을 완전히 이해하여 트래픽을 관리하고 조작합니다.
일부 로드 밸런서는 서비스의 특성에 따라 계층 4 또는 계층 7 로드 밸런싱을 제공하도록 구성할 수 있습니다. 이전에 언급했듯이, 최신 상용 하드웨어는 일반적으로 충분히 강력하여 계층 4 부하 분산을 통한 계산 비용 절감 효과가 계층 7 부하 분산을 통한 더 큰 유연성 및 효율성의 이점을 능가할 만큼 크지 않습니다.
NGINX Plus 와 NGINX는 Dropbox, Netflix, Zynga 등 트래픽이 많은 웹사이트에서 사용하는 동급 최고의 로드 밸런싱 솔루션입니다. 전 세계적으로 3억 5천만 개가 넘는 웹사이트가 NGINX Plus와 NGINX 오픈 소스를 통해 콘텐츠를 빠르고 안정적이며 안전하게 전송합니다.
소프트웨어 기반 로드 밸런서인 NGINX Plus는 비슷한 기능을 갖춘 하드웨어 기반 솔루션보다 훨씬 저렴합니다. NGINX Plus의 포괄적인 부하 분산 기능을 사용하면 고도로 최적화된 애플리케이션 전송 네트워크를 구축할 수 있습니다.
서버 팜 앞에 NGINX Plus를 로드 밸런서로 삽입하면 전체 웹사이트의 효율성, 성능, 안정성 및 확장성이 향상됩니다. NGINX Plus는 고객 만족도와 IT 투자 수익을 극대화하는 데 도움이 됩니다.
인터넷 트래픽의 경우 "4계층" 및 "7계층" 부하 분산을 참조하는 것은 편리한 약어이지만 엄격하게 정확하지는 않습니다. 관심이 있다면 계속 읽어보세요.
7개 네트워크 계층이라는 개념은 OSI(개방형 시스템 상호 연결) 참조 모델에서 나왔습니다. 이 모델은 네트워크 기능을 7개의 추상화된 계층으로 구분하며, 일반적으로 계층 번호(계층 1~계층 7)로 지칭됩니다. 각 계층에는 데이터를 패키징하고 전송하는 방법을 정의하는 표준이 있습니다. 표준은 무엇보다도 요청이나 응답을 구성하는 비트 스트림을 프로토콜 데이터 단위 (PDU)라는 개별 패키지로 분할하는 방법을 정의합니다. 표준은 또한 헤더 형태로 각 PDU에 추가되는 메타데이터를 정의합니다. 예를 들어, 메타데이터는 원본 호스트와 대상 호스트의 주소를 지정할 수 있습니다.
네트워크 기능의 다양한 측면을 다양한 계층에 할당하면 각 계층의 처리가 간소화됩니다. 프로토콜은 자체 계층의 PDU만 처리하는 방법과 헤더에 어떤 메타데이터를 포함해야 하는지만 알면 되기 때문입니다. 그러면 인접 계층의 프로토콜이 자체 데이터 분할 수준에서 PDU를 다시 패키징할 수 있습니다.
월드 와이드 웹의 트래픽을 위한 기본 프로토콜(집합적으로 인터넷 프로토콜(IP) 제품군 이라고 함) 간의 네트워크 기능 분포는 OSI 모델과 정확히 일치하지 않습니다. 이는 IP 제품군이 1984년에 최종 OSI 모델이 발표되기 전에 정의되고 구현되었기 때문입니다. 그럼에도 불구하고 IP 제품군의 다양한 프로토콜은 OSI 계층에 대략 상응하는 고유한 기능을 수행합니다.
각 레벨에는 여러 개의 프로토콜이 정의되어 있지만 웹사이트 트래픽의 부하 분산과 관련된 프로토콜과 레벨은 다음과 같습니다.
이 목록에서 명확히 알 수 있듯이 인터넷 트래픽의 "4계층 부하 분산"을 지칭하는 것은 편리한 약어이지만 더 정확한 용어는 "3/4계층 부하 분산"입니다. 부하 분산 장치는 원본 및 대상 서버의 IP 주소(3계층)와 애플리케이션의 TCP 포트 번호(4계층)를 기반으로 결정을 내리기 때문입니다. "7계층 부하 분산"에 대한 보다 정확한 용어는 "5계층~7계층 부하 분산"일 수 있습니다. 왜냐하면 HTTP는 OSI 5, 6, 7계층의 기능을 결합하기 때문입니다.