흰 스타렉스에서 내가 내리지

ALB 와 NLB 본문

DevOps

ALB 와 NLB

주씨. 2024. 8. 22. 00:43
728x90

ALB 와 NLB 는 AWS 에서 제공하는 로드 밸런싱 서비스이다. 

 

1. 작동 계층

ALB (Application Load Balancer) NLB (Network Load Balancer)
- 7계층 (애플리케이션 계층) 에서 동작한다.

- HTTP(S) 프로토콜에 기반한 요청을 처리하며, 클라이언트 요청의 헤더나 내용에 따라 트래픽을 라우팅한다.

- URL 경로, HTTP 헤더, 쿼리 문자열, 호스트 이름 등에 따라 요청을 라우팅하는 고급 라우팅 기능을 제공한다. 
- 4계층 (전송 계층) 에서 작동한다.

- TCP, UDP, TLS 프로토콜을 처리하며, 트래픽을 IP 주소와 포트번호를 기반으로 라우팅한다. 

- 초당 수백만 개의 요청을 처리할 수 있는 매우 높은 처리량을 제공하며, 낮은 레이턴시 (지연 시간)와 높은 성능을 필요로 하는 애플리케이션에 적합하다. 

 

2. 성능과 확장성

ALB (Application Load Balancer) NLB (Network Load Balancer)
- 더 복잡한 트래픽 관리와 라우팅이 필요할 때 사용된다. 

- 애플리케이션 계층에서의 부하 분산이 가능하며, 세션 기반 라우팅, 쿠키기반 라우팅 등을 지원한다. 

- HTTP/2 및 WebSocket 을 지원하여 현대적인 웹 애플리케이션에 적합하다. 
- 매우 높은 성능과 낮은 레이턴시를 제공한다. 

- 수백만 개의 요청을 동시에 처리할 수 있으며, 매우 짧은 지연 시간으로 트래픽을 라우팅할 수 있다. 

- TLS 종료를 지원하여 SSL/TLS 트래픽을 암호화하거나 해제할 수 있다. 

 

 

3. 로드 밸런싱 방식

ALB (Application Load Balancer) NLB (Network Load Balancer)
- HTTP 와 HTTPS 트래픽을 기반으로 요청을 라우팅한다. 

- 애플리케이션 계층에서 헤더, 경로, 쿼리 문자열 등의 정보를 바탕으로 트래픽을 분배한다.

- 예를 들어, `/images/*` 는 특정 그룹으로, `/api/*` 는 다른 그룹으로 라우팅하는 것이 가능하다.
- TCP, UDP, TLS 트래픽을 기반으로 트래픽을 분배한다. 

- IP 주소와 포트 번호만을 기준으로 트래픽을 라우팅하며, 매우 빠르고 단순한 방식으로 작동한다. 

- 소스 IP 기반으로 라우팅하거나 고정 IP 주소를 제공하는 기능을 제공한다. 

 

4. 기타 기능

ALB (Application Load Balancer) NLB (Network Load Balancer)
- 상태검사 (Health Check) 를 통해 백엔드 대상의 가용성을 주기적으로 확인하고, 비정상적인 인스턴스를 자동으로 제외합니다. 

- 서버 이름 표시 (SNI) 를 지원하여 여러 SSL 인증서를 사용할 수 있다. 

- AWS WAF (AWS Web Application Firewall) 와 통합하여 보안 규칙을 적용할 수 있다. 
- 고정 IP 또는 Elastic IP 를 할당할 수 있어, 클라이언트와의 안정적인 연결을 유지할 수 있다. 

- 상태 검사 (Health Check) 는 TCP 연결을 통해 이루어진다. 

- 연결 유지 시간 (Idle Timeout) 설정이 가능하여 장기적인 연결을 유지하는 애플리케이션에 유리하다.                                 

 

 

5. 사용 사례

ALB (Application Load Balancer) NLB (Network Load Balancer)
- 웹 애플리케이션, RESTful API, 모바일 애플리케이션 서버, 서버리스 애플리케이션 등에서 사용된다.                               

- 세션 유지, 웹소켓, HTTP/2 등의 고급 기능이 필요한 경우에 적합하다.                               
- 매우 높은 처리량과 짧은 레이턴시가 필요한 애플리케이션, 게임 서버, 실시간 데이터 스트리밍, 금융 서비스 등에서 사용된다. 

- TCP/UDP 기반의 서비스나, IP 주소 기반의 부하 분산이 필요한 경우에 적합하다. 

 

 

 

요약 

ALB (Application Load Balancer) NLB (Network Load Balancer)
- 애플리케이션 계층에서 작동하며, 복잡한 HTTP/HTTPS 트래픽 관리와 라우팅에 적합하다.  - 전송 계층에서 작동하며, 높은 성능과 낮은 레이턴시를 요구하는 TCP/UDP 트래픽 관리에 적합하다.