ALB vs NLB vs GLB vs CLB: 어떤 로드밸런서를 선택해야 할까?
ALB는 HTTP/HTTPS 애플리케이션용, NLB는 TCP/UDP 고성능 워크로드용, GLB는 보안 어플라이언스용입니다. SAA-C03 시험에서 자주 출제되는 ELB 유형별 차이점과 선택 기준을 정리합니다.
관련 시험 도메인
- Domain 2: Design Resilient Architectures
핵심 요약 (BLUF)
ALB는 HTTP/HTTPS 웹 애플리케이션용(L7), NLB는 TCP/UDP 고성능 워크로드용(L4), GLB는 서드파티 보안 어플라이언스용입니다. 웹/API 서비스는 ALB, 극저지연이나 정적 IP가 필요하면 NLB, 방화벽/IDS 연동은 GLB를 선택하세요. CLB는 레거시로 신규 사용을 권장하지 않습니다.
시험 팁
시험 핵심: ALB = L7 + HTTP + 경로 라우팅, NLB = L4 + TCP/UDP + 정적 IP + 저지연, GLB = 보안 어플라이언스
AWS 로드밸런서란?
Elastic Load Balancing(ELB)은 들어오는 트래픽을 여러 대상(EC2, 컨테이너, Lambda 등)에 자동으로 분산하는 서비스입니다. 고가용성과 내결함성을 제공하며, 4가지 유형이 있습니다.
클라이언트 요청 → 로드밸런서 → 타겟 그룹 (EC2, 컨테이너, Lambda)
↓
Health Check로 비정상 인스턴스 제외
ELB 4가지 유형 한눈에 비교
| 비교 항목 | ALB | NLB | GLB | CLB |
|---|---|---|---|---|
| OSI 계층 | Layer 7 | Layer 4 | Layer 3 | Layer 4/7 |
| 프로토콜 | HTTP, HTTPS, gRPC | TCP, UDP, TLS | IP | TCP, HTTP, HTTPS |
| 지연 시간 | ~10ms | ~100μs (극저지연) | - | 중간 |
| 정적 IP | ❌ | ✅ | ❌ | ❌ |
| 경로 기반 라우팅 | ✅ | ❌ | ❌ | ❌ |
| 호스트 기반 라우팅 | ✅ | ❌ | ❌ | ❌ |
| Lambda 타겟 | ✅ | ❌ | ❌ | ❌ |
| PrivateLink | ❌ | ✅ | ✅ | ❌ |
| 출시 연도 | 2016 | 2017 | 2020 | 2009 |
| 권장 사용 | ✅ 권장 | ✅ 권장 | ✅ 권장 | ❌ 레거시 |
Application Load Balancer (ALB)
ALB란?
ALB는 **OSI Layer 7(애플리케이션 계층)**에서 동작하는 로드밸런서입니다. HTTP/HTTPS 트래픽을 이해하고 URL 경로, 호스트 헤더, HTTP 헤더 등을 기반으로 라우팅할 수 있습니다.
핵심 기능
1. 경로 기반 라우팅
example.com/api/* → API 서버 타겟 그룹
example.com/images/* → 이미지 서버 타겟 그룹
example.com/* → 웹 서버 타겟 그룹
2. 호스트 기반 라우팅
api.example.com → API 타겟 그룹
www.example.com → 웹 타겟 그룹
3. 다양한 타겟 유형
- EC2 인스턴스
- IP 주소 (온프레미스 포함)
- Lambda 함수
- ECS/EKS 컨테이너
ALB 적합한 워크로드
- 웹 애플리케이션 (HTTP/HTTPS)
- 마이크로서비스 아키텍처
- 컨테이너 기반 애플리케이션 (ECS, EKS)
- API Gateway 대안
- Lambda 함수 호출
시험 팁
시험 문제 패턴: "마이크로서비스에서 /users는 User Service로, /orders는 Order Service로 라우팅하려면?" → ALB 경로 기반 라우팅
Network Load Balancer (NLB)
NLB란?
NLB는 **OSI Layer 4(전송 계층)**에서 동작하며, TCP/UDP 프로토콜 수준에서 초고성능 로드밸런싱을 제공합니다. 초당 수백만 요청을 100마이크로초 이하의 지연 시간으로 처리할 수 있습니다.
핵심 기능
1. 정적 IP 주소
- AZ당 하나의 정적 IP 제공
- Elastic IP 연결 가능
- 방화벽 화이트리스트에 유용
2. 극저지연 성능
- ALB 대비 약 100배 낮은 지연 시간
- 초당 수백만 요청 처리
3. 소스 IP 보존
- 클라이언트의 원본 IP 주소 유지
- X-Forwarded-For 헤더 불필요
4. 장시간 TCP 연결
- WebSocket
- 데이터베이스 연결
- 게임 서버
NLB 적합한 워크로드
- 실시간 게임 서버 (UDP)
- IoT 디바이스 연결
- 금융 거래 시스템 (초저지연)
- 미디어 스트리밍
- VoIP 서비스
- 정적 IP가 필요한 서비스
- TCP/UDP 프로토콜 직접 사용
시험 팁
시험 문제 패턴: "고객이 특정 IP를 화이트리스트에 등록해야 합니다. 어떤 로드밸런서?" → NLB (정적 IP 제공)
Gateway Load Balancer (GLB)
GLB란?
GLB는 **Layer 3(네트워크 계층)**에서 동작하며, 서드파티 가상 어플라이언스(방화벽, IDS/IPS 등)를 배포하고 확장하는 데 사용됩니다.
핵심 기능
1. 투명한 네트워크 게이트웨이
- 모든 트래픽이 어플라이언스를 통과
- 단일 진입/출구 지점
2. 자동 확장
- 트래픽에 따라 어플라이언스 확장/축소
- Health Check로 장애 어플라이언스 제외
3. GENEVE 프로토콜
- 원본 패킷 캡슐화
- 어플라이언스에서 패킷 검사 후 반환
GLB 적합한 워크로드
- 서드파티 방화벽 (Palo Alto, Fortinet 등)
- 침입 탐지/방지 시스템 (IDS/IPS)
- 심층 패킷 검사 (DPI)
- 네트워크 모니터링
시험 팁
시험 문제 패턴: "VPC의 모든 트래픽을 서드파티 방화벽 어플라이언스로 검사하려면?" → Gateway Load Balancer
Classic Load Balancer (CLB)
CLB란?
CLB는 AWS의 **최초 로드밸런서(2009년)**로, Layer 4와 Layer 7 모두에서 기본적인 로드밸런싱을 제공합니다. 신규 배포에는 권장되지 않습니다.
CLB의 한계
- 경로/호스트 기반 라우팅 미지원
- WebSocket 제한적 지원
- 단일 SSL 인증서만 지원
- 컨테이너 타겟 미지원
마이그레이션 권장
AWS는 CLB에서 ALB 또는 NLB로의 마이그레이션을 권장합니다:
- HTTP/HTTPS → ALB
- TCP/UDP → NLB
ALB vs NLB: 언제 무엇을 선택할까?
선택 기준 요약
| 요구사항 | 선택 |
|---|---|
| HTTP/HTTPS 트래픽 | ALB |
| URL 경로 기반 라우팅 | ALB |
| 호스트 기반 라우팅 | ALB |
| Lambda 함수 호출 | ALB |
| gRPC 프로토콜 | ALB |
| TCP/UDP 트래픽 | NLB |
| 정적 IP 주소 필요 | NLB |
| 극저지연 요구 | NLB |
| 수백만 요청/초 | NLB |
| 소스 IP 보존 | NLB |
| WebSocket (장시간) | NLB |
실제 시나리오별 선택
시나리오 1: 웹 애플리케이션
요구사항: HTTP/HTTPS 트래픽, /api와 /web 분리 라우팅
→ ALB (경로 기반 라우팅)
시나리오 2: 온라인 게임
요구사항: UDP 프로토콜, 초저지연, 대량 동시 접속
→ NLB (L4, UDP 지원, 고성능)
시나리오 3: 마이크로서비스
요구사항: 서비스별 다른 URL 경로, ECS 컨테이너
→ ALB (경로 기반 라우팅, 컨테이너 지원)
시나리오 4: 금융 거래 시스템
요구사항: TCP, 극저지연, 고정 IP로 파트너 연동
→ NLB (정적 IP, 초저지연)
시나리오 5: 보안 검사
요구사항: 모든 트래픽을 서드파티 방화벽으로 전달
→ GLB (어플라이언스 통합)
ELB 공통 기능
모든 ELB 유형에서 제공하는 기능:
| 기능 | 설명 |
|---|---|
| Health Check | 타겟 상태 모니터링, 비정상 타겟 제외 |
| 고가용성 | 여러 AZ에 자동 분산 |
| Auto Scaling 연동 | EC2 Auto Scaling과 자동 연동 |
| SSL/TLS 종료 | 로드밸런서에서 암호화 처리 |
| CloudWatch 메트릭 | 성능 모니터링 |
| Access Log | S3에 요청 로그 저장 |
| Connection Draining | 기존 연결 완료 후 인스턴스 제거 |
비용 비교
서울 리전(ap-northeast-2) 기준:
| 항목 | ALB | NLB |
|---|---|---|
| 시간당 요금 | $0.0225 | $0.0225 |
| LCU/NLCU | $0.008/LCU | $0.006/NLCU |
LCU(Load Balancer Capacity Unit)와 NLCU는 계산 방식이 다르므로 단순 비교는 어렵습니다. 일반적으로 비슷한 비용이지만, 트래픽 패턴에 따라 달라질 수 있습니다.
SAA-C03 시험 출제 포인트
- ✅ ALB vs NLB 선택: HTTP → ALB, TCP/UDP → NLB
- ✅ 정적 IP 요구: NLB만 정적 IP와 Elastic IP 지원
- ✅ 경로 기반 라우팅: ALB만 지원
- ✅ Lambda 타겟: ALB만 지원
- ✅ GLB 사용 사례: 서드파티 보안 어플라이언스
- ✅ CLB 마이그레이션: 신규 배포는 ALB/NLB 권장
시험 팁
시험 문제 예시: "애플리케이션이 /api 경로의 트래픽을 API 서버로, /web 경로를 웹 서버로 라우팅해야 합니다. 가장 적합한 솔루션은?" → 정답: ALB 경로 기반 라우팅 (NLB는 L4로 URL 경로 인식 불가)
자주 묻는 질문 (FAQ)
Q: ALB와 NLB 중 어떤 것이 더 빠른가요?
NLB가 훨씬 빠릅니다. NLB는 Layer 4에서 동작하여 패킷을 직접 전달하므로 약 100마이크로초의 지연 시간을 제공합니다. ALB는 Layer 7에서 HTTP를 파싱하므로 약 10밀리초가 소요됩니다.
Q: ALB에서 정적 IP를 사용할 수 있나요?
직접은 불가능합니다. ALB는 동적 IP만 제공합니다. 정적 IP가 필요하면 NLB를 ALB 앞에 배치하거나, Global Accelerator를 사용할 수 있습니다.
Q: 하나의 로드밸런서에 ALB와 NLB를 함께 사용할 수 있나요?
가능합니다. NLB → ALB 구성으로 정적 IP와 L7 라우팅을 모두 활용할 수 있습니다. 이 패턴은 PrivateLink와 ALB를 함께 사용할 때 유용합니다.
Q: WebSocket은 어떤 로드밸런서를 사용해야 하나요?
둘 다 지원합니다. ALB는 WebSocket을 네이티브로 지원하고, NLB는 TCP 연결로 처리합니다. 장시간 연결이 필요하면 NLB가 더 적합할 수 있습니다.
Q: CLB를 계속 사용해도 되나요?
기술적으로 가능하지만 권장하지 않습니다. AWS는 새로운 기능을 ALB/NLB에만 추가하고 있으며, CLB에서 마이그레이션을 권장합니다. 콘솔에서 마이그레이션 마법사를 제공합니다.
Q: Cross-Zone Load Balancing이란 무엇인가요?
로드밸런서가 모든 AZ의 타겟에 균등하게 트래픽을 분산하는 기능입니다. ALB는 기본 활성화(무료), NLB는 기본 비활성화(활성화 시 AZ 간 데이터 전송 비용 발생)입니다.