ALB, NLB,ELB 차이는?
Last updated
Last updated
우리가 이야기하는 로드밸런서의 개념은 트래픽을 균등하게 분산시켜 주는 것을 의미한다
특정 이벤트로 인해 트래픽이 몰렸을 경우 애플리케이션이 감당할 수 있는 트래픽은 한정적이다. 이때 몰려있는 트래픽을 분산시켜 하나의 애플리케이션에서 감당할 수 있는 트래픽을 저하시켜주는게 로드밸런서의 역할이라고 보면된다
그외 AWS 공식 문서에서 설명하는 로드밸런서의 특징은 4가지로 볼수 있다
로드밸런서에서 목적지의 상태를 판별하여 중지된 경우에는 요청을 제한할 수 있다
필요한 경우 다른 서버를 추가하거나 제거할 수 있도록 애플리케이션 트래픽을 예측할 수 있다
DDOS 공격이나 악성 컨텐츠를 사전에 차단할 수 있다
추가 보안을 위해 네트워크 방화벽 그룹을 통해 인입되는 요청을 제한할 수 있다
이전에 설명한 트래픽을 분산시켜 애플리케이션의 부하를 줄여 일정한 성능을 확보할 수 있다
알고리즘은 크게 두가지로 구분할 수 있다.
고정된 규칙으로 동작하는 정적 알고리즘과 서버의 상태에 따라 반응하는 동적 알고리즘이다
순차적으로 분산시켜주는 방식이 라운드 로빈 방식이다
목적지에 가중치를 두어 가중치가 높은 서버에 더 많은 트래픽을 전달할 수 있다
클라이언트 IP 주소에 해싱값을 두어 특정 서버에 전달할 수 있다
최소 연결 방법은 로드 밸런서가 연결이 가장 적은 서버를 확인하고 해당 서버로 트래픽을 전송한다
각 서버에 가른 가중치 또는 용량을 할당할 수 있으며 로드 밸런서는 용량별 연결이 가장 적은 서버로 새 클라이언트 요청을 전송한다
응답을 전송하는데 걸리는 총 시간과 활성 연결을 결합하여 최상의 서버를 결정한다
각 서버에 에이전트를 심어 해당 서버에 트래픽을 전달하기 전에 에이전트에 충분한 여유 리소스가 있는지 확인한다
기능 | Application Load Balancer | Network Load Balancer | Gateway 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는 AWS에서 제공하는 로드밸런서를 통칭하는 의미이다
ELB의 종류로는 ALB, NLB, GLB, CLB가 있다
OSI 7 Layer중에서 애플리케이션 레이어에서 로드밸런싱 동작한다
HTTP/HTTPS 프로토콜의 URL의 PATH 기반으로 전송할 타겟을 지정할 수 있다
ALB는 SSL 적용이 가능하다
NLB보다 성능적으로는 느릴수는 있어도 요청에 따른 패킷에 따라 다양한 전송 규칙을 지정할 수 있다
OSI 7 Layer중에서 전송계층 레이어에서 로드밸런싱 동작한다
TCP/UDP 프로토콜 기반으로 전송할 타겟을 지정할 수 있다
NLB는 프로토콜을 구분하지 못하기 때문에 SSL 적용이 불가능하다
고성능을 요구하는 환경에서의 부하분산에 적합하며, 낮은 레이턴시로 초당 수백만 건의 요청을 처리할 수 있다.