✅ 로드 밸런서란?
로드 밸런서 종류
ALB(Application Load Balancer)와 NLB(Network Load Balancer)의 가장 큰 차이점은 OSI 7계층에서 어느 계층에서 동작하느냐입니다.
- ALB (Application Load Balancer) → L7 (애플리케이션 계층)에서 동작
- NLB (Network Load Balancer) → L4 (전송 계층)에서 동작
1️⃣ 트래픽 처리 방식 🔄
- ALB (L7) → 애플리케이션 계층에서 요청을 분석
- HTTP, HTTPS 트래픽을 이해하고 URL, 쿠키, 헤더, 쿼리 문자열 등을 기반으로 라우팅 가능
- 예) /api 요청은 서버 A로, /images 요청은 서버 B로
- NLB (L4) → 네트워크 계층에서 패킷을 그대로 전달
- IP 주소와 포트 기반으로 트래픽을 분배
- 개별 요청을 분석하지 않고 연결(TCP/UDP) 자체를 로드 밸런싱
- 특정 포트(예: 443)로 오는 모든 트래픽을 특정 서버 그룹으로 전달
2️⃣ 성능 및 속도 🚀
- ALB는 L7에서 애플리케이션 데이터를 분석하므로 상대적으로 부하가 큼
- 요청을 파싱하고 라우팅 규칙을 적용해야 하기 때문에 성능 오버헤드 발생
느리지만, 다양한 기능을 제공
- NLB는 패킷을 가공하지 않고 그대로 전달하므로 속도가 빠름
- L4에서 네트워크 수준에서 트래픽을 나누기 때문에 성능이 뛰어나고 지연 시간이 적음
- 빠르고 가벼움
3️⃣ 기능 차이 🔧

4️⃣ 언제 ALB vs. NLB를 써야 할까? 🤔
- ALB (L7)
- HTTP/HTTPS 기반의 웹 애플리케이션을 운영할 때
- URL 기반 라우팅, 쿠키 기반 세션 유지, WAF(Web Application Firewall) 적용이 필요할 때
- gRPC 트래픽을 처리할 때
- NLB (L4)
- TCP/UDP 기반의 서비스 (예: VoIP, 게임 서버, IoT)
- 낮은 지연 시간이 중요한 서비스 (예: 금융 거래 시스템)
- 고정 IP가 필요한 경우 (ALB는 고정 IP 제공 안 함)
- VPN, SSH, 데이터베이스 연결(예: RDS, Redis) 등 L4 트래픽을 분배할 때
(gRPC 란?)
💡 서버와 클라이언트가 서로 원격에서 함수 호출을 하듯이 통신할 수 있도록 도와주는 프레임워크!

✅ 로드 밸런서의 리스너 (Listener)란?
리스너는 로드 밸런서가 특정 포트에서 들어오는 연결을 감지하고 처리하는 역할을 합니다.
즉, 클라이언트가 보낸 요청을 수신하는 "입구" 역할을 하며, 설정된 규칙에 따라 어떤 대상 그룹(Target Group)으로 트래픽을 보낼지 결정합니다.
🎯 리스너의 주요 역할
1️⃣ 클라이언트 요청 수신
- 특정 포트(예: 80, 443)에서 들어오는 요청을 감지
2️⃣ 규칙(Rule) 적용 후 트래픽 전달
- ALB는 URL, 헤더, 쿠키 등을 분석해 적절한 서버로 보냄
- NLB는 포트와 IP를 기반으로 트래픽을 전달
3️⃣ SSL/TLS 종료 (HTTPS 처리 가능)
- HTTPS 트래픽을 처리하는 경우, SSL 인증서를 로드 밸런서에 적용해 암호화된 연결을 해제(SSL Offloading)
- 대상 서버는 복호화된 HTTP 요청을 받아 처리
🎛 리스너의 구성 요소
1️⃣ 포트 & 프로토콜
- 리스너는 특정 포트에서 요청을 수신함
- 예:
HTTP(80), HTTPS(443) → ALB
TCP(3306), UDP(53) → NLB
2️⃣ 규칙 (Rules)
- ALB는 URL, 헤더, 쿼리 파라미터 등을 기반으로 트래픽을 라우팅
- 예: /api/ 요청은 API 서버로, /images/ 요청은 이미지 서버로
3️⃣ 대상 그룹 (Target Group)
- 리스너는 트래픽을 대상 그룹(Target Group)에 연결된 서버로 보냄
- 예: 웹 서버, 애플리케이션 서버, Lambda 함수 등
4️⃣ SSL 인증서 (HTTPS 리스너의 경우)
- HTTPS 리스너의 경우, SSL 인증서를 설정하여 보안 트래픽을 처리
- 🛠 예제: ALB에서 HTTP & HTTPS 리스너 설정

📌 HTTP(80) 요청을 HTTPS(443)로 리디렉트하여 보안 강화 가능!
🚀 정리
- 리스너는 특정 포트에서 들어오는 요청을 감지하고 트래픽을 적절한 대상 그룹으로 전달하는 역할
- ALB는 L7 기반으로 URL, 헤더 등을 분석하여 라우팅 가능
- NLB는 L4 기반으로 포트와 IP만 보고 트래픽을 전달
- HTTPS 리스너는 SSL/TLS 인증서를 사용해 암호화된 트래픽을 처리
➡ 리스너를 설정하면 로드 밸런서가 "어떤 트래픽을 어떻게 처리할지" 결정할 수 있음! 🔥