ALB, NLB,ELB 차이는?

ALB, NLB,ELB 차이는?

로드밸런서?

  • 우리가 이야기하는 로드밸런서의 개념은 트래픽을 균등하게 분산시켜 주는 것을 의미한다

  • 특정 이벤트로 인해 트래픽이 몰렸을 경우 애플리케이션이 감당할 수 있는 트래픽은 한정적이다. 이때 몰려있는 트래픽을 분산시켜 하나의 애플리케이션에서 감당할 수 있는 트래픽을 저하시켜주는게 로드밸런서의 역할이라고 보면된다

  • 그외 AWS 공식 문서에서 설명하는 로드밸런서의 특징은 4가지로 볼수 있다

가용성

  • 로드밸런서에서 목적지의 상태를 판별하여 중지된 경우에는 요청을 제한할 수 있다

확장성

  • 필요한 경우 다른 서버를 추가하거나 제거할 수 있도록 애플리케이션 트래픽을 예측할 수 있다

보안

  • DDOS 공격이나 악성 컨텐츠를 사전에 차단할 수 있다

  • 추가 보안을 위해 네트워크 방화벽 그룹을 통해 인입되는 요청을 제한할 수 있다

성능

  • 이전에 설명한 트래픽을 분산시켜 애플리케이션의 부하를 줄여 일정한 성능을 확보할 수 있다

그렇다면 로드밸런싱은 어떤 알고리즘으로 동작하는가?

  • 알고리즘은 크게 두가지로 구분할 수 있다.

  • 고정된 규칙으로 동작하는 정적 알고리즘과 서버의 상태에 따라 반응하는 동적 알고리즘이다

정적 알고리즘

라운드 로빈 방식

  • 순차적으로 분산시켜주는 방식이 라운드 로빈 방식이다

가중 기반 라운드 로빈 방식

  • 목적지에 가중치를 두어 가중치가 높은 서버에 더 많은 트래픽을 전달할 수 있다

IP 해시 방식

  • 클라이언트 IP 주소에 해싱값을 두어 특정 서버에 전달할 수 있다

동적 알고리즘

최소 연결 방법

  • 최소 연결 방법은 로드 밸런서가 연결이 가장 적은 서버를 확인하고 해당 서버로 트래픽을 전송한다

가중치 기반 최소 연결 방법

  • 각 서버에 가른 가중치 또는 용량을 할당할 수 있으며 로드 밸런서는 용량별 연결이 가장 적은 서버로 새 클라이언트 요청을 전송한다

최소 응답 시간 방법

  • 응답을 전송하는데 걸리는 총 시간과 활성 연결을 결합하여 최상의 서버를 결정한다

리소스 기반 방법

  • 각 서버에 에이전트를 심어 해당 서버에 트래픽을 전달하기 전에 에이전트에 충분한 여유 리소스가 있는지 확인한다

그렇다면 ALB, NLB, ELB는 무엇인가?

기능Application Load BalancerNetwork Load BalancerGateway Load Balancer

로드 밸런서 유형

계층 7

계층 4

계층 3 게이트웨이 + 계층 4 로드 밸런싱

대상 유형

IP, 인스턴스, Lambda

IP, 인스턴스, Application Load Balancer

IP, 인스턴스

흐름/프록시 동작 종료

아니요

프로토콜 리스너

HTTP, HTTPS, gRPC

TCP, UDP, TLS

IP

다음을 통해 연결 가능

VIP

VIP

라우팅 테이블 항목

리디렉션

고정 응답

Desync Mitigation Mode

HTTP 헤더 기반 라우팅

HTTP2/gRPC

참고 : https://aws.amazon.com/ko/elasticloadbalancing/features/?nc=sn&loc=2&dn=1

ELB

  • ELB는 AWS에서 제공하는 로드밸런서를 통칭하는 의미이다

  • ELB의 종류로는 ALB, NLB, GLB, CLB가 있다

ALB

  • OSI 7 Layer중에서 애플리케이션 레이어에서 로드밸런싱 동작한다

  • HTTP/HTTPS 프로토콜의 URL의 PATH 기반으로 전송할 타겟을 지정할 수 있다

  • ALB는 SSL 적용이 가능하다

  • NLB보다 성능적으로는 느릴수는 있어도 요청에 따른 패킷에 따라 다양한 전송 규칙을 지정할 수 있다

NLB

  • OSI 7 Layer중에서 전송계층 레이어에서 로드밸런싱 동작한다

  • TCP/UDP 프로토콜 기반으로 전송할 타겟을 지정할 수 있다

  • NLB는 프로토콜을 구분하지 못하기 때문에 SSL 적용이 불가능하다

  • 고성능을 요구하는 환경에서의 부하분산에 적합하며, 낮은 레이턴시로 초당 수백만 건의 요청을 처리할 수 있다.

Last updated