ALB(Application Load Balancer) 및 NLB(Network Load Balancer)는 모두 Amazon Web Services(AWS)에서 제공하는 로드 밸런싱 서비스입니다. 고가용성과 확장성을 보장하기 위해 수신 트래픽을 여러 대상에 분산시키는 동일한 목적을 수행하지만 ALB와 NLB 간에는 몇 가지 주요 차이점이 있습니다.
로드 밸런싱이란?
로드 밸런싱은 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법입니다. 최신 애플리케이션은 수백만 명의 사용자를 동시에 처리하고 정확한 텍스트, 비디오, 이미지 및 기타 데이터를 빠르고 안정적인 방식으로 각 사용자에게 반환해야 합니다. 이렇게 많은 양의 트래픽을 처리하기 위해 대부분의 애플리케이션에는 데이터가 중복되는 리소스 서버가 많이 있습니다. 로드 밸런서는 사용자와 서버 그룹 사이에 위치하며 보이지 않는 촉진자 역할을 하여 모든 리소스 서버가 동일하게 사용되도록 하는 디바이스입니다.
출처: AWS
운영 계층
ALB는 OSI 모델의 레이어 7(애플리케이션 레이어)에서 작동합니다. 즉, 들어오는 트래픽의 콘텐츠를 검사하고 애플리케이션 프로토콜(HTTP/HTTPS)을 기반으로 라우팅 결정을 내리고 요청 라우팅, 콘텐츠와 같은 고급 기능을 제공할 수 있습니다. - 기반 라우팅 및 SSL 종료.
NLB는 OSI 모델의 계층 4(전송 계층)에서 작동합니다. 즉, 주로 IP 주소 및 TCP/UDP 포트와 함께 작동합니다. 이러한 매개변수를 기반으로 트래픽을 라우팅하며 일반적으로 애플리케이션 계층 데이터의 심층 검사가 필요하지 않은 TCP 및 UDP 기반 프로토콜에 사용됩니다.
로드 밸런싱 알고리즘
ALB는 라운드 로빈, 최소 미해결 요청, 최소 연결 및 가중 대상 그룹과 같은 고급 애플리케이션 수준 로드 밸런싱 알고리즘을 지원합니다. URL 경로, 호스트 헤더 및 기타 HTTP 속성을 기반으로 라우팅 결정을 내릴 수 있습니다.
NLB는 "흐름 기반" 부하 분산이라는 간단한 부하 분산 알고리즘을 제공합니다. 5-튜플 해시(소스 IP, 소스 포트, 대상 IP, 대상 포트 및 프로토콜)를 사용하여 수신 연결을 대상으로 라우팅합니다. 이 알고리즘은 동일한 클라이언트가 항상 동일한 대상으로 향하게 하여 세션 선호도 또는 연결 상태를 유지하는 데 유용합니다.
대상 유형
ALB는 Amazon EC2 인스턴스, 컨테이너, IP 주소 및 Lambda 함수를 포함하여 광범위한 대상 유형을 지원합니다. HTTP/HTTPS 트래픽을 이러한 대상으로 라우팅하는 데 최적화되어 있습니다.
NLB는 주로 EC2 인스턴스, 컨테이너, IP 주소 및 Virtual Private Cloud(VPC) 엔드포인트를 비롯한 IP 기반 대상과 함께 작동합니다. IP 기반 라우팅이 필요한 저수준 네트워크 프로토콜 및 시나리오에 더 적합합니다.
프로토콜 지원
ALB는 HTTP/HTTPS 애플리케이션용으로 특별히 설계되었으며 콘텐츠 기반 라우팅, 리디렉션, 경로 기반 라우팅 및 호스트 기반 라우팅과 같은 고급 기능을 제공합니다. 또한 SSL/TLS 암호화 및 암호 해독을 오프로드할 수 있습니다.
NLB는 TCP, UDP 및 TLS(Transport Layer Security)를 포함한 광범위한 프로토콜을 지원합니다. 모든 TCP/UDP 기반 응용 프로그램을 처리할 수 있으므로 HTTP가 아닌 워크로드에 더욱 다양하게 사용할 수 있습니다.
가용 영역:
ALB와 NLB는 모두 단일 지역 내에서 가용성이 높으며 여러 가용 영역에 걸쳐 트래픽 분산을 지원합니다. 그러나 NLB는 특정 시나리오에서 유용할 수 있는 고정 IP 주소 및 ENI(탄력적 네트워크 인터페이스) 지원과 같은 추가 기능을 제공합니다.
요약하면 ALB는 애플리케이션 계층에서 작동하고 고급 HTTP 기반 라우팅 기능을 제공하는 강력한 로드 밸런서인 반면, NLB는 전송 계층에서 작동하고 더 광범위한 프로토콜에 적합한 저수준 로드 밸런서입니다. ALB와 NLB 중에서 선택하는 것은 애플리케이션의 특정 요구 사항과 지원해야 하는 프로토콜에 따라 다릅니다.
#AWS #Amazon #ALB #NLB #IP #로드밸런싱
끝.
'Dev' 카테고리의 다른 글
인텔리제이(IntelliJ) 프로젝트 열때 윈도우 창 알럿 설정 변경하기 (0) | 2022.10.30 |
---|