AWS LB(Load Balancer)

로드 밸런서는 서버에 네트워크 또는 애플리케이션 트래픽을 분산시키는 장치이다.

부하 분산 장치는 애플리케이션의 안정성을 높이는데 중요한 요소이다.

로드 밸런서는 일반적으로 L4/L7 계층 두가지로 나누어 볼 수 있다.

L4 : 네트워크 및 전송 계층 프로토콜(IP, TCP, FTP, UDP) 에서 발견 된 데이터에 작용

L7 : HTTP와 같은 애플리케이션 계층 프로토콜에서 발견된 데이터를 기반으로 요청을 분배

여기서, L7 단계의 로드 밸런서가 ALB, L4 단계의 로드 밸런서가 NLB 이다.

 

위에서 언급한 부하분산 이외에도 로드밸런서의 역할은 서버 Health Check, SSL(HTTPS) 지원, HA(High Availability, 고가용성) 지원 등의 이유로 로드 밸런서를 사용하고있다.

서비스간 라우팅, Health Check와 같은 서비스 간 통제 기능들이 애플리케이션에서 코드로 구현하는 것이 아닌 인프라 단에서 구현함으로서 각 서비스들을 관리하는데 훨씬 편리해지기 때문에 최근 유행하는 MSA(Micro Service Architecture)에서 LB는 필수요소가 되었다. 

ALB, NLB 순으로 출시되었다. ( 오래된 디바이스를 쓰고 있거나 보안에 엄격한 네트워크 관리자에겐 ALB가 까다롭게 여겨질 수 있었을 것입니다. 그런 의미로 차후에 L4 로드밸런서인 NLB가 출시되지 않았나 생각합니다.)

 

AWS ALB, NLB 비교

ALB와 NLB의 가장 큰 차이점은 ALB의 IP는 유동적, NLB는 고정 IP 이라는 점과

ALB는 L7 NLB는 L4 단의 로드 밸런서를 지원하기 때문에 ALB적용시 SSL을 적용 가능하고, NLB는 SSL 적용이 인프라 단에서 불가능하여 애플리케이션에서 따로 적용해 줘야 한다는 점이다.