

애플리케이션 계층(L7)에서 HTTP/HTTPS 요청을 받아 대상 그룹(EC2 인스턴스, 컨테이너, IP 주소, Lambda 등)으로 트래픽을 분산하는 AWS의 관리형 로드밸런서이다.
현대 웹/클라우드 애플리케이션은 단순히 IP 주소 + 포트만으로 동작하지 않는다. HTTP(S) 요청 안에 포함된 URL 경로, 쿠키, 헤더, 사용자 세션 정보, 모바일 vs 데스크탑 구분 등 애플리케이션 계층(Application Layer)의 맥락이 중요해졌다.
단일 서버가 급격히 증가하는 트래픽이나 요청 유형(예시 : 정적 리소스, API, 파일 업로드, 웹소켓 등)변화, 다양한 디바이스/브라우저 대응, A/B 테스트, 버전릴리즈 복합 운영 등을 감당해야 한다.
또한 보안 및 운영 측면에서 끝단에서 암호화된 요청을 해독해 내용을 보고 판단해야 한다., 세션 유지, 쿠키 기반 sticky session 처리가 필요하다.는 요구가 많아졌다.
이러한 맥락에서 내용까지 보고 판단하는 로드밸런서, 즉 L7 로드밸런서가 유리해졌다.
4계층 부하 분산은 메시지 내용과는 관계없이 메시지 전달을 담당하는 중간 전송 계층에서 작동한다. 전송 제어 프로토콜(TCP)은 인터넷에서 하이퍼 텍스트 전송 프로토콜(HTTP) 트래픽을 위한 4계층 프로토콜이다. 4계층 부하 분산 장치는 패킷 내용읗 검사하지 않고 단순히 네트워크 패킷을사우이 서버로 전달한다. TCP 스트림의 처음 몇개의 패킷을 검사하여 제한적인 라우팅 결정을 내릴 수 있다.
7계층 부하 분산은 각 메시지의 싳제 내용을 처리하는 사우이 애플리케이션 계층에서 작동한다. HTTP는 인터넷 웹사이트 트래픽을 위한 주요 7계층 프로토콜이다. 7계층 부하 분산기는 4계층 부하 분산기보다 훨씬 정교한 방식으로 네트워크 트래픽을 라우팅하며, 특히 HTTP와 같은 TCP 기반 트래픽에 적합하다. 7계층 부하 분산기는 네트워크 트래픽을 종료하고 그 안의 메시지를 읽는다. 메시지 내용(예시 : URL 또는 쿠키)을 기반으로 부하 분산 결정을 내릴 수 있다. 그런 다음 선택한 업스트림 서버에 새로운 TCP 연결을 설정하거나 HTTP keepalive를 통해 기존 연결을 재사용하고 서버에 요청을 작성한다.
ALB는 OSI 모델의 7계층(애플리케이션 계층)에서 HTTP/HTTPS (및 gRPC WebSocket) 요청의 콘텐츠(URL 경로, 호스트 헤더, 쿠키 등)를 분석하여 라우팅할 수 있다.
반면 CLB는 비교적 단순하며, NLB는 전송 계층(L4)에서 동작한다.
ALB는 경로 기반(path-bases) 또는 호스트 기반(host-header) 라우티잉 가능하며, 여러 타겟 그룹으로 요청을 분기할 수 있다.
CLB에는 이 같은 세분화된 콘텐츠 기반 라우팅 기능이 거의 없다.
ALB는 EC2 인스턴스뿐 아니라 컨테이너, IP 주소, 그리고 AWS lambda 함수까지 타겟으로 지정할 수 있다.
CLB는 주로 EC2 인스턴스를 대상으로 하고 시간이 지나면서 기능이 제한적이라는 평가가 많다.
ALB는 HTTP/2 및 WebSocket을 지원한다. 따라서 MSA, 컨테이너 환경, API Gateway 형태의 웹 기반 시스템에 적합하다.
ALB는 HTTP 헤더 기반 라우팅, 고정 응답(fixed response), 리디렉션(redirect) 기능 등을 지원한다. 또한 AWS WAF(웹 애플리케이션 방화벽)과 통합하거나 인증 / 권한 부여 (OpenID Connect 등)를 프론트엔드에서 처리하는 구조에 적합하다.
ALB는 여러 가용영역(Availibility Zone)에 걸쳐 자동으로 확장 가능하며, 요청량 증가 시 새로운 노드가 자동으로 증설된다.
cross-zone load balancing이 기본적으로 활성화되어 있어 여러 가용 영역에 걸친 분산이 보다 간편하다.
L7 로드밸런싱은 패킷 기반 L4 로드밸런싱보다 CPU 사용량이 높지만, 최신 서버에서 성능 저하를 유발하는 경우는 드물다. 레이어 7 로드밸런싱을 통해 로드 밸런서는 더욱 스마트한 로드 밸런싱을 결정 내리고 콘텐츠 최적화 및 변경 사항(예시 : 압축 및 암호화)을 적용할 수 있다. 또한, 버퍼링을 사용하여 업스트림 서버에 느린 연결 부하를 분산하여 성능을 향상시킨다.
사용자가 트래픽이 많은 웹사이트에 접속한다고 가정해보자. 사용자 세션 동안 이미지나 비디오와 같은 정적 콘텐츠, 뉴스 피드와 같은 동적 콘텐츠, 심지어 주문 상태와 같은 거래 정보까지 요청할 수 있다. L7 로드밸런싱을 통해 로드밸런서는 요청 자체의 정보(요청되는 콘텐츠 종류 등)를 기반으로 요청을 라우팅할 수 있다.
따라서 이미지나 비디오에 대한 요청은 해당 콘텐츠를 저장하고 멀티미디어 콘텐츠를 제공하도록 고도로 최적화된 서버로 라우팅될 수 있다. 할인 가격과 같은 거래 정보에 대한 요청은 가격 관리 담당하는 애플리케이션 서버로 라우팅이 될 수 있다. L7 로드밸런싱을 통해 네트워크 및 애플리케이션 설계자는 안정적이고 효율적으로 확장하여 수요를 충족하는 고도로 조정되고 최적화된 서버 인프라 또는 에플리케이션 전송 네트워크를 구축할 수 있다.