흰 스타렉스에서 내가 내리지

ALB 보다 NLB 가 더 높은 처리량과 짧은 레이턴시를 가지는 이유 본문

DevOps

ALB 보다 NLB 가 더 높은 처리량과 짧은 레이턴시를 가지는 이유

주씨. 2024. 8. 22. 01:03
728x90

주된 이유는 작동 계층구현 방식에 있다. 

 

1. 작동 계층의 차이

  • NLB 는 전송 계층 (Layer 4) 에서 작동한다.
    • NLB 는 TCP, UDP, TLS 트래픽을 처리하며, IP 주소와 포트 번호를 기반으로 패킷을 라우팅한다. 
    • 전송 계층에서의 로드 밸런싱은 데이터 패킷을 빠르게 전달하는 데 중점을 둔다. 패킷의 내용 (예: HTTP 헤더, URL 경로 등) 을 검사하지 않기 때문에 처리 오버헤드가 적다. 
    • 단순히 트래픽을 전달하는 역할만 하기 때문에, 트래픽 처리 속도가 매우 빠르고, 지연 시간이 최소화된다. 
  • ALB 는 애플리케이션 계층 (Layer 7) 에서 작동한다. 
    • ALB 는 HTTP, HTTPS 트래픽을 처리하며, 클라이언트 요청의 내용을 분석하여 특정 경로, 헤더 , 쿼리 문자열 등을 기반으로 트래픽을 라우팅한다. 
    • 애플리케이션 계층에서의 로드밸런싱은 데이터의 내용에 따라 정교하게 트래픽을 분배할 수 있지만, 데이터를 검사하고 처리하는 과정에서 추가적인 연산이 필요하다. 이로 인해 NLB 에 비해 오버레드가 더 크고, 처리시간이 늘어난다. 

 

2. 구현 방식과 목적의 차이

  • NLB 는 고성능 트래픽 처리를 위해 최적화되었다. 
    • NLB 는 패킷을 가능한 한 빠르게 전달하기 위해 설계되었다. 패킷의 내용을 분석하지 않고, 단순히 IP 주소와 포트 번호를 기준으로 트래픽을 분산하기 때문에 매우 높은 처리량을 제공할 수 있다. 
    • 또한, NLB 는 대규모 트래픽 처리에 유리한 고정 IP, Elastic IP, Direct Server Return(DSR) 과 같은 기능을 지원하며, 이는 고성능 네트워킹 요구사항을 충족시킨다. 
  • ALB 는 트래픽 관리와 애플리케이션 로직에 집중한다.
    • ALB 는 HTTP/HTTPS 트래픽을 분석하고, 세션 관리, SSL 종료, 애플리케이션 계층 보안 등 복잡한 기능을 제공하는 데 중점을 둔다. 
    • 이러한 기능들은 더 많은 연산 자원을 필요로 하며, 이로 인해 NLB 에 비해 상대적으로 낮은 처리량과 높은 레이턴시를 가질 수 밖에 없다. 

 

 

 

요약

  • NLB 는 전송 계층 (Layer 4) 에서 작동하여 IP 주소와 포트 번호만을 기반으로 빠르고 단순하게 트래픽을 라우팅한다. 패킷의 내용을 검사하지 않기 때문에 오버헤드가 매우 적고, 결과적으로 더 높은 처리량과 짧은 레이턴시를 제공한다.
  • ALB 는 애플리케이션 계층 (Layer 7) 에서 작동하여 HTTP/HTTPS 요청의 내용을 기반으로 정교하게 트래픽을 라우팅합니다. 이 과정에서 추가적인 연산이 필요하기 때문에 오버헤드가 크고, 결과적으로 NLB 에 비해 처리량이 낮고 레이턴시가 높아질 수 있다.