AWS Load Balancer 종류와 역할
아래 강의를 듣고 작성하였습니다.
LOADBALANCER
로드밸런서란?
로드 밸런서는 들어오는 네트워크 트래픽을 여러 서버(인스턴스)로 분산하여 부하를 줄이고, 성능과 가용성을 향상시키는 장치 또는 서비스이다.
로드밸런서를 사용하는 이유는 다음과 같다.
1. 특정 서버가 다운되어도 중단되지 않고 서버를 운영하기 위해
2. 여러 리전에 걸쳐 고가용성 서버를 제공하기 위해
3. public 트래픽과 private 트래픽을 분리하기 위해
4. SSL 인증서를 설치하기 위해
이런 로드밸런서는 AWS에서 총 3가지가 있다.
1. Classic Load Balancer
2. Application Load Balancer
3. Network Load Balancer
AWS LoadBalancer
Classic Load Balancer
먼저 가장 오래된 로드밸런서 종류로 권장되지 않는다.
1. 작동 구간: 4계층(전송계층)과 7계층(응용계층)
2. 특징:
(1) 기본적으로 TCP, HTTP, HTTPS의 트래픽 분배 기능을 제공
(2) 세션 유지 기능 제공
사실 CLB는 진짜 이전 버전에서 사용하고 있어 어쩔수 없이 사용하는 이유 이외에는 거의 사용되지 않음. AWS 콘솔에도 보면 사용가능은 하나 권장하지 않기에 회색으로 표시되어 있음
Application Load Balancer
1. 작동 구간: 7계층(응용계층)
2. 특징:
(1) 경로(Path)기반 Target Group으로 라우팅 가능
(2) 호스트(URL)기반 라우팅
(3) 쿼리 파람 기반 라우팅
(4) WAF와 통합 가능
3. 사용사례: 여러 마이크로서비스가 존재할 경우, 웹어플리케이션에서 다양한 URL에 따라 서버로 라우팅 해줄때
Network Load Balancer
1. 작동구간: 4계층(TCP, UDP 트래픽을 처리)
2. 특징:
(1) 초고속 로드밸런싱 가능
(2) 지연시간 최소화
(3) 고정 IP 사용(로드밸런서 IP를 바로 사용할 수 있음)
3. 사용 사례:
초당 수백만 개 이상의 요청을 처리해야 하는 고성능 애플리케이션
TCP 또는 UDP 기반 서비스 (예: 게임 서버, VoIP)
고정 IP 주소가 필요한 서비스
결론
보통 우리가 백엔드 서비스에서 트래픽을 처리하기 위해서는 ALB를 사용한느것이 일반적이다.
하지만 게임과 같은 UDP기반 서비스에서는 NLB도 사용하는것이 효율적이라는 점을 알아두면 좋을 것 같다.