SAABlog
네트워킹중급

ALB vs NLB vs GLB vs CLB: 어떤 로드밸런서를 선택해야 할까?

ALB는 HTTP/HTTPS 애플리케이션용, NLB는 TCP/UDP 고성능 워크로드용, GLB는 보안 어플라이언스용입니다. SAA-C03 시험에서 자주 출제되는 ELB 유형별 차이점과 선택 기준을 정리합니다.

PHILOLAMB-
ELBALBNLBGLB로드밸런서

관련 시험 도메인

  • 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가지 유형 한눈에 비교

비교 항목ALBNLBGLBCLB
OSI 계층Layer 7Layer 4Layer 3Layer 4/7
프로토콜HTTP, HTTPS, gRPCTCP, UDP, TLSIPTCP, HTTP, HTTPS
지연 시간~10ms~100μs (극저지연)-중간
정적 IP
경로 기반 라우팅
호스트 기반 라우팅
Lambda 타겟
PrivateLink
출시 연도2016201720202009
권장 사용✅ 권장✅ 권장✅ 권장❌ 레거시

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 LogS3에 요청 로그 저장
Connection Draining기존 연결 완료 후 인스턴스 제거

비용 비교

서울 리전(ap-northeast-2) 기준:

항목ALBNLB
시간당 요금$0.0225$0.0225
LCU/NLCU$0.008/LCU$0.006/NLCU

LCU(Load Balancer Capacity Unit)와 NLCU는 계산 방식이 다르므로 단순 비교는 어렵습니다. 일반적으로 비슷한 비용이지만, 트래픽 패턴에 따라 달라질 수 있습니다.

SAA-C03 시험 출제 포인트

  1. ALB vs NLB 선택: HTTP → ALB, TCP/UDP → NLB
  2. 정적 IP 요구: NLB만 정적 IP와 Elastic IP 지원
  3. 경로 기반 라우팅: ALB만 지원
  4. Lambda 타겟: ALB만 지원
  5. GLB 사용 사례: 서드파티 보안 어플라이언스
  6. 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 간 데이터 전송 비용 발생)입니다.

관련 글

참고 자료