ALB vs NLB vs Service LoadBalancer 비교
구분 | ALB (Ingress) | NLB (Ingress) | Service (type=LoadBalancer) |
Layer | L7 (HTTP/HTTPS) | L4 (TCP/UDP) | 보통 L4 (클라우드 벤더 로드밸런서) |
특징 | 경로 기반 라우팅 (/api, /web) 가능, 호스트 기반 라우팅 가능, SSL 종료 지원 | 초고성능, 저지연 TCP/UDP 처리, 대규모 트래픽 분산에 강함 | 단순히 Pod 앞에 클라우드 로드밸런서 생성 |
사용 사례 | 웹서비스 (프론트/백 API 분기), 멀티 도메인, SSL 관리 | 게임 서버, 금융권, IoT 같이 초저지연 TCP 필요 | 간단한 단일 서비스 외부 공개 |
Service 타입 | Service는 ClusterIP, ALB가 앞단에서 라우팅 | Service는 ClusterIP, NLB가 앞단에서 트래픽 전달 | Service를 LoadBalancer로 지정 |
장점 | 하나의 ALB로 여러 서비스 관리 (비용↓), HTTP 레벨 라우팅 | 네트워크 성능 최적화, 대규모 트래픽 처리 | 설정 간단, 바로 외부 IP 제공 |
단점 | L7만 지원 → TCP/UDP 불가 | HTTP 기능 부족 (경로 라우팅 불가), 비용↑ | 서비스마다 LB가 따로 생겨 비용↑, 라우팅 불가 |
정리
•
ALB (Ingress): 웹서비스, API Gateway 느낌 → 경로/호스트 기반 라우팅, SSL 관리 최적.
—> ex) front + back을 같이 운영하는 웹서비스
•
NLB (Ingress): TCP/UDP 기반 고성능 로드밸런서 → 네트워크 성능이 중요한 서비스에 최적
—> ex) 금융 서비스나 TCP 기반의 채팅서버
•
Service type=LoadBalancer: 단일 서비스 빠르게 외부 공개할 때 가장 간단
—> 테스트 환경에서 하나만 외부에 빨리 띄워야 할 경우