ALB (Application Load Balancer -v2)

Jong_cc·2026년 1월 25일

1. Application Load Balancer (ALB) 개요

ALB는 Layer 7 (HTTP) 레벨에서 작동하는 로드 밸런서입니다.

핵심 기능:

  • 여러 머신의 HTTP 애플리케이션에 대한 로드 밸런싱 (Target Groups)
  • 동일 머신의 여러 애플리케이션에 대한 로드 밸런싱 (예: 컨테이너)
  • HTTP/2 및 WebSocket 지원
  • 리다이렉트 지원 (예: HTTP → HTTPS)

2. ALB 라우팅 기능

ALB는 라우팅 테이블을 통해 다양한 Target Group으로 트래픽을 분산합니다.

라우팅 방식

URL 경로 기반 라우팅:

  • example.com/users → User 서비스
  • example.com/posts → Post 서비스

호스트명 기반 라우팅:

  • one.example.com → 첫 번째 서비스
  • other.example.com → 두 번째 서비스

쿼리 스트링/헤더 기반 라우팅:

  • example.com/user?id=123&order=false
  • HTTP 헤더 값에 따른 라우팅

마이크로서비스 최적화

  • 마이크로서비스 & 컨테이너 기반 애플리케이션에 최적 (Docker, Amazon ECS)
  • 포트 매핑 기능: ECS의 동적 포트로 리다이렉트
  • 비교: Classic Load Balancer는 애플리케이션마다 별도 필요

3. Target Groups (대상 그룹)

ALB가 트래픽을 전달할 수 있는 4가지 Target Group 유형:

EC2 인스턴스:

  • Auto Scaling Group으로 관리 가능
  • HTTP 프로토콜 사용

ECS 태스크:

  • ECS 자체에서 관리
  • HTTP 프로토콜 사용

Lambda 함수:

  • HTTP 요청이 JSON 이벤트로 변환됨

IP 주소:

  • 반드시 사설 IP여야 함
  • 온프레미스 서버 연결 시 사용

Target Group 특징

  • ALB는 여러 Target Group으로 라우팅 가능
  • Health Check는 Target Group 레벨에서 수행

4. 실제 라우팅 예시

마이크로서비스 라우팅

ALB → /user 경로 → User 서비스 Target Group (EC2)
    → /search 경로 → Search 서비스 Target Group (EC2)

플랫폼별 라우팅

ALB → ?Platform=Mobile → 모바일 Target Group (AWS EC2)
    → ?Platform=Desktop → 데스크톱 Target Group (온프레미스)

5. ALB 주요 특징

고정 호스트명

  • 형식: XXX.region.elb.amazonaws.com
  • 애플리케이션에서 사용할 고정된 DNS 엔드포인트 제공

클라이언트 IP 처리

ALB는 연결 종료(Connection Termination)를 수행합니다.

문제: 애플리케이션 서버는 클라이언트의 실제 IP를 직접 볼 수 없음

  • 서버가 보는 IP: 로드 밸런서의 사설 IP

해결: HTTP 헤더를 통한 클라이언트 정보 전달

  • X-Forwarded-For: 클라이언트의 실제 IP
  • X-Forwarded-Port: 클라이언트가 사용한 포트
  • X-Forwarded-Proto: 사용된 프로토콜 (HTTP/HTTPS)

트래픽 흐름

클라이언트 (12.34.56.78) 
    ↓ 
ALB (연결 종료) 
    ↓ 
EC2 인스턴스 (ALB 사설 IP로 수신)
    ↓
X-Forwarded-For 헤더로 실제 클라이언트 IP 확인

💡 핵심 포인트

  • ALB는 Layer 7에서 작동하여 HTTP 기반의 지능적 라우팅 제공
  • 마이크로서비스 아키텍처에 최적화된 설계
  • 다양한 라우팅 규칙으로 복잡한 애플리케이션 구조 지원
  • Target Group 레벨에서 Health Check 및 관리 수행
  • 클라이언트 정보는 HTTP 헤더를 통해 애플리케이션에 전달

작성일: 2026-01-26
주제: AWS ALB

profile
능동적인 삶을 위하여

0개의 댓글