codingstairs
노트에듀라이프연락
⌕검색⌘K
koen

Navigation

  • Intro
  • Blog
  • Life

연락하기

로그인 없이도 보낼 수 있어요. 답변이 필요하면 이메일을 함께 적어 주세요.

  • 익명 폼으로 의견 남기기 →
  • ✉ warragon112@gmail.com
  • 카카오톡 오픈채팅 ↗

© 2026 codingstairs

  • 노트
  • 에듀
  • 검색
  • 라이프
  • 연락
  • 약관
  • RSS
  • GitHub
노트›cloud

로드 밸런서 — ELB 4 종

2026-04-28 게시· 2026-05-18 갱신·0회 조회

로드 밸런서 — ELB 4 종

여러 백엔드 서버에 트래픽을 분산하고, 죽은 서버를 빼고, 인증서를 한 자리에서 관리하는 일은 거의 모든 웹 서비스의 공통 자리입니다. AWS 의 그 자리가 ELB (Elastic Load Balancing) 입니다 — 시기마다 다른 모양으로 4 종이 등장했습니다.

1. ELB 4 종에 대한 이야기

종류 출시 계층 자리
Classic LB (CLB) 2009 L4 + L7 (혼합) 옛 표준. 신규 비권장.
Application LB (ALB) 2016 L7 (HTTP · gRPC · WebSocket) HTTP 기반 워크로드.
Network LB (NLB) 2017 L4 (TCP · UDP · TLS) 매우 높은 처리량 · 정적 IP · 비-HTTP.
Gateway LB (GWLB) 2020 L3 (IP 패킷) 네트워크 어플라이언스 (방화벽 · IDS).

신규에는 ALB 또는 NLB 를 고르는 흐름이 권장됩니다.

2. L7 vs L4

L7 (Application Layer) — HTTP 메시지를 해석하고 라우팅합니다.

  • URL 경로 기반 라우팅 (/api/* → A, /static/* → B).
  • Host 헤더 기반.
  • 쿠키 · 쿼리 파라미터.
  • HTTPS 종단 (TLS termination).
  • HTTP 헤더 변형 (X-Forwarded-For · X-Forwarded-Proto).

ALB 가 이 자리. 응답 시간은 일반적으로 L4 보다 약간 깁니다 (파싱 비용).

L4 (Transport Layer) — TCP/UDP 연결만 봅니다. 페이로드 해석 없음.

  • 매우 낮은 지연 · 높은 처리량.
  • 정적 IP (Elastic IP 부착 가능).
  • 클라이언트 IP 보존 (Proxy Protocol 옵션).
  • TLS 종단도 가능 (NLB 의 TLS 리스너).

NLB 가 이 자리. 게임 서버 · MQTT · gRPC 직접 노출 · 소켓 서버.

L3 (Network Layer) — IP 패킷을 그대로 통과시켜 보안 어플라이언스 (방화벽 · IDS · DPI) 가 검사하게 합니다. GWLB 가 그 자리. Geneve 터널 사용.

3. Target Group

LB 뒤에 붙는 백엔드 묶음. 같은 Target Group 안의 인스턴스 · IP · Lambda 가 같은 헬스체크 규칙을 공유합니다.

타깃 종류 메모
EC2 인스턴스 EC2 ID 단위
IP VPC 안 임의 IP (RDS 도 가능)
Lambda ALB 만, 함수 ARN 등록
ALB NLB 의 타깃으로 ALB (2021~)

ALB 는 한 LB 에 여러 Target Group 을 둘 수 있고, 리스너 규칙으로 라우팅합니다.

4. Health Check · Sticky Session

Health Check — 지정 경로/포트로 주기적 검사. healthy 한 타깃에만 트래픽을 보냅니다.

  • HTTP /health 200 응답 확인.
  • TCP 연결 확인 (NLB 기본).
  • threshold 만큼 연속 성공해야 healthy.

엔드포인트 자체는 가벼워야 합니다. 무거운 헬스체크는 의도치 않은 부하를 만듭니다.

Sticky Session — 같은 클라이언트의 후속 요청을 같은 백엔드로:

  • ALB — 자체 발행 쿠키 (AWSALB) 또는 애플리케이션 쿠키.
  • CLB — AWSELB 쿠키.

세션 상태가 인스턴스 메모리에 있을 때만 의미. 외부 세션 저장소 (Redis) 가 있으면 sticky 는 불필요.

5. X-Forwarded-For 와 클라이언트 IP

ALB 는 TLS 종단 + 새 TCP 연결을 백엔드로 만듭니다. 백엔드 입장에서 source IP 는 ALB 의 IP. 클라이언트 IP 는 X-Forwarded-For 헤더에 추가됩니다.

NLB 는 기본 모드에서 source IP 를 보존합니다. 다만 SG 평가는 백엔드 SG 가 클라이언트 IP 를 직접 보게 됩니다 (2023 부터 NLB SG 옵션 추가).

6. ACM · TLS 종단

aws acm request-certificate \
  --domain-name example.com \
  --subject-alternative-names www.example.com \
  --validation-method DNS

ALB · NLB (TLS 리스너) 에 인증서를 부착하고 백엔드는 평문 또는 자체 인증서. 내부 통신도 암호화하려면 backend 에 별도 인증서 + LB 에서 SSL passthrough (NLB) 또는 re-encrypt (ALB).

7. 다른 LB · 프록시 비교

도구 카테고리 메모
HAProxy (2001) LB 매우 빠른 L4/L7. 자체 호스팅 표준.
nginx (2004) 리버스 프록시 + LB 풍부한 모듈. 정적 파일 · 캐시 강함.
traefik (2015) 리버스 프록시 컨테이너 라벨 기반 동적 설정.
Caddy (2015) 리버스 프록시 자동 HTTPS 표준.
Envoy (2016) 프록시 service mesh 기반. xDS API.
ALB · NLB · GWLB 매니지드 AWS 통합. 운영 부담 적음.

비교의 결정 요인:

  • 운영 부담 — 매니지드 (ELB) vs 자체 호스팅 (HAProxy · nginx).
  • 자동 HTTPS — Caddy.
  • service mesh — Envoy + Istio · Linkerd.
  • 컨테이너 라벨 기반 라우팅 — traefik · Caddy + Docker.

8. ALB + Auto Scaling

Route 53 (Alias) → ALB → Target Group (Auto Scaling Group)
                          ↓
                     EC2 인스턴스 N 대 (헬스체크)

ASG 가 인스턴스를 늘리면 자동으로 Target Group 에 등록. unhealthy 가 되면 교체.

NLB + 정적 IP — 방화벽이 NLB 의 정적 IP 를 화이트리스트로 잡는 자리에. ALB 는 IP 가 변동되어 동일 흐름이 어렵습니다 (Global Accelerator 결합 또는 NLB → ALB 패턴).

ALB 라우팅 규칙 예시:

  • Host: api.example.com AND Path: /v1/* → API Target Group
  • Host: web.example.com → Web Target Group
  • Path: /admin/* AND Cognito 인증 통과 → Admin Target Group

규칙은 우선순위로 평가됩니다. 첫 일치가 적용.

9. 자주 걸리는 자리

idle timeout 미스매치 — ALB 기본 60 초. 백엔드의 keep-alive 가 더 짧으면 연결 재사용 시 1 회성 오류. 백엔드 keep-alive 를 ALB 보다 길게.

헬스체크 경로의 무거움 — DB 까지 검사하는 헬스체크가 의외로 비용을 만듭니다. 가벼운 /health + 별도 deep check 분리.

NLB 의 SG 부재 (옛 동작) — 2023 이전 NLB 는 SG 없음. 2023 이후 SG 옵션 추가.

WebSocket 의 idle timeout — 메시지가 오래 끊기면 연결이 끊깁니다. heartbeat 또는 timeout 늘림.

HTTPS 백엔드의 인증서 검증 — ALB → backend 가 self-signed 면 검증 실패.

ALB 의 호스트 헤더 — 백엔드가 가상 호스트를 본다면 X-Forwarded-Host 또는 정확한 Host 전달 점검.

CLB 잔존 — 옛 인프라의 CLB 는 새 기능 제한. 점진적 ALB 마이그레이션.

하고픈 말

LB 의 90% 자리는 ALB 또는 자체 Caddy/nginx 가 답입니다. NLB 는 정적 IP · 매우 높은 처리량 · 비-HTTP 같은 명확한 이유가 있을 때. CLB 는 새 인프라에 도입하지 않는 흐름이 표준이 됐습니다.

Next

  • ecs-fargate
  • localstack-and-ministack

ELB 사용자 가이드 · ALB 라우팅 규칙 · ACM · HAProxy · nginx · Envoy · traefik · PROXY protocol v2 를 참고합니다.

cloud 카테고리의 다른 글

카테고리 전체 보기 →
  • title 템플릿 단일 소스 — 자식 페이지가 박지 않게 한다
  • GitHub Pages — 저장소를 정적 사이트로
  • Replit — 브라우저 기반 개발·배포 통합 플랫폼
  • HTTP API Mocking — WireMock · MockServer · Prism · MSW
  • Firebase Local Emulator Suite — Firebase 한 묶음을 노트북에
  • Supabase Self-Hosted — Postgres 한 통에 BaaS 를 담는 방법