본문 바로가기
클라우드/AWS

[AWS] ELB(Elastic Load Balancer)란?

by 클레어몬트 2025. 3. 6.

ㅁElastic Load Balancer(ELB): 외부에서 들어오는 네트워크 트래픽을 여러 인스턴스로 자동으로 분산하는 역할을 수행하는 서비스

ELB를 사용하면 높은 가용성과 확장성을 갖춘 애플리케이션을 운영할 수 있으며, 백엔드 인스턴스의 부하를 고르게 분산하여 성능을 최적화할 수 있다

 

(AWS에서 제공하는 ELB의 주요 기능)

  • 트래픽 자동 분산: 하나의 진입점(Load Balancer)에서 여러 인스턴스로 트래픽을 분배
  • 애플리케이션 가용성 향상: 인스턴스에 대한 헬스 체크 수행 및 비정상 인스턴스 제거
  • 보안 강화: HTTPS 및 TLS 암호화를 지원하여 네트워크 보안 유지
  • 스케일링 지원: Auto Scaling과 함께 사용하여 트래픽 증가에 대응 가능

AWS에서 지원하는 ELB 유형 3가지

AWS는 다양한 애플리케이션 요구 사항을 충족시키기 위해 세 가지 유형의 Load Balancer를 제공한다

1) Application Load Balancer (ALB)

  • L7(Application Layer)에서 HTTP/HTTPS 요청을 처리
  • 요청 경로(path) 또는 HTTP 헤더(header)를 기반으로 트래픽을 라우팅
  • 애플리케이션 계층의 로직 처리가 필요할 때 적합
  • 사용 예: 웹 애플리케이션, REST API 서비스, 마이크로서비스

ALB 트래픽 흐름

IGW → ALB → Application
  • 인터넷 게이트웨이(IGW)를 통해 ALB로 트래픽이 전달됨
  • ALB는 요청을 분석한 후 적절한 애플리케이션 서버로 라우팅

2) Network Load Balancer (NLB)

  • L4(전송 계층, TCP/UDP)에서 트래픽을 처리
  • IP 및 포트 정보를 기반으로 라우팅
  • 고속 데이터 처리 및 낮은 지연 시간(Latency)이 중요한 경우 적합
  • 사용 예: 금융 시스템, 게임 서버, IoT 서비스

NLB 트래픽 흐름

IGW → NLB → Application
 
  • IGW를 통해 NLB가 트래픽을 수신
  • NLB는 TCP/UDP 포트 기반으로 인스턴스에 트래픽 전달

3) Classic Load Balancer (CLB, 기존 ELB)

  • L4(TCP) 및 L7(HTTP/HTTPS) 요청을 처리할 수 있음
  • 기본적인 로드 밸런싱 기능만 제공 (ALB 및 NLB에 비해 기능이 제한됨)
  • 기존 애플리케이션과의 하위 호환성을 위해 사용
  • 현재는 ALB 또는 NLB로의 마이그레이션이 권장됨

CLB 트래픽 흐름

IGW → CLB → Nginx Instances → Application
  • CLB는 Nginx 인스턴스를 통해 애플리케이션 트래픽을 전달
  • 현재는 ALB/NLB를 권장하지만, 기존 환경에서는 CLB를 유지하는 경우도 있음

어떤 Load Balancer를 선택해야 할까?

각 로드 밸런서는 특정한 사용 사례에 맞게 설계되어 있다

 


ELB의 장점

AWS의 Elastic Load Balancer는 클라우드 환경에서 확장성과 가용성을 보장하는 중요한 역할을 수행한다

1) 트래픽 자동 분산

  • ELB는 트래픽을 자동으로 여러 인스턴스에 분배하여 부하를 줄인다
  • Auto Scaling과 함께 사용하면 트래픽 변화에 따라 자동으로 조정 가능

2) 헬스 체크(Health Check) 기능

  • 백엔드 인스턴스의 상태를 주기적으로 확인하여 비정상 인스턴스를 자동으로 제외함.
  • 트래픽이 정상적으로 동작하는 인스턴스로만 분배됨

3) 보안 및 암호화 지원

  • HTTPS 및 TLS 암호화 지원으로 보안 강화를 위한 SSL 인증서 적용 가능
  • AWS WAF(웹 방화벽) 및 보안 그룹(Security Group)과 연계하여 DDoS 공격 및 악의적인 요청 차단 가능

4) Auto Scaling과의 연동 가능

  • ELB는 Auto Scaling과 함께 사용하여 트래픽 부하에 따라 EC2 인스턴스를 동적으로 조절할 수 있다
  • 애플리케이션이 고가용성(High Availability)을 유지할 수 있도록 지원

 

[정리]

AWS Elastic Load Balancer(ELB)는 트래픽을 자동으로 여러 인스턴스로 분배하여 서비스의 가용성과 성능을 향상시키는 필수적인 서비스이다

  • HTTP/HTTPS 기반 서비스라면? ALB
  • TCP/UDP 기반, 고속 네트워크 서비스라면? NLB
  • 기존 애플리케이션 유지가 필요하면? CLB

💡 최신 AWS 아키텍처에서는 ALB or NLB를 사용하는 것이 권장됨! (CLB는 사용 X)
ELB를 올바르게 설정하면 안정적인 서비스 운영과 확장성 확보가 가능하므로, AWS 환경에서 필수적으로 고려해야 하는 요소이다 (: