궁금한게 많은 개발자 노트

AWS의 ALB, NLB 본문

Back End

AWS의 ALB, NLB

궁금한게 많은 개발자 2022. 4. 12. 15:21

평소에 aws의 LB(Load Banlancer) 중 ALB(Application Load Balancer)와 NLB(Network Load Balancer)의 차이점으로는 통신하는 네트워크 계층의 차이정 도로 밖에 설명을 못하는 것 같아 이에 대한 내용을 공부해보려고 ALB와 NLB의 차이점에 대해서 정리해보려고 합니다.

 

시작하기 전에 LB(Load Balancer)는 무슨 역할을 하는지에 대해서 다시 한번 정리하도록 하겠습니다.

 

Load Balancer란

하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산 처리하여 서버의 로드율 증가, 부하량, 속도 저하 등을 고려하여 적절히 분산 처리하여 해결해주는 서비스입니다.

위의 그림처럼 사용자가 많아져 트래픽이 하나의 서버로 몰리지 않도록 적절하게 분배시켜주는 역할을 합니다.

 

로드밸런서의 종류

L2 Data link 계층을 사용, Mac주소 기반 부하 분산
L3 Network 계층을 사용, IP주소 기반 부하 분산
L4 Transport 계층을 사용, Port 기반 부하 분산
L7 Application 계층을 사용, 요청(URL) 기반 부하 분산

 

AWS ALB, NLB 비교

ALB와 NLB의 차이점은 다음과 같습니다.

ALB

  1. ALB는 L7단의 로드 밸런서를 지원합니다.
  2. ALB는 HTTP/HTTPS 프로토콜의 헤더를 보고 적절한 패킷으로 전송합니다.
  3. ALB는 IP주소 + 포트번호 + 패킷 내용을 보고 스위칭합니다.
  4. ALB는 IP 주소가 변동되기 때문에 Client에서 Access 할 ELB의 DNS Name을 이용해야 합니다.
  5. ALB는 L7단을 지원하기 때문에 SSL 적용이 가능합니다.

NLB

  1. NLB는 L4단의 로드 밸런서를 지원합니다.
  2. NLB는 TCP/IP 프로토콜의 헤더를 보고 적절한 패킷으로 전송합니다.
  3. NLB는 IP + 포트번호를 보고 스위칭합니다.
  4. NLB는 할당한 Elastic IP를 Static IP로 사용이 가능하여 DNS Name과 IP주소 모두 사용이 가능합니다.
  5. NLB는 SSL 적용이 인프라 단에서 불가능하여 애플리케이션에서 따로 적용해 주어야 합니다.

'Back End' 카테고리의 다른 글

django 핵심 기능 - Model  (0) 2022.05.19
django 개발의 기본 사항  (0) 2022.05.19
토큰 기반 인증 시스템과 JWT  (0) 2022.04.19
인증, 인가와 OAuth란  (0) 2022.04.18
django serializer란  (0) 2022.04.12
Comments