ELB (Elastic Load Balancer)

Jong_cc·2026년 1월 25일

1. 로드 밸런싱(Load Balancing)이란?

로드 밸런서는 트래픽을 여러 대의 다운스트림 서버(EC2 인스턴스)로 전달하는 서버입니다.

핵심 개념: 사용자는 로드 밸런서의 단일 접점(DNS)을 통해 애플리케이션에 접근하며, 내부에 몇 대의 서버가 있는지 알 필요가 없습니다.

2. 로드 밸런서를 사용하는 이유

  • 부하 분산: 여러 다운스트림 인스턴스에 부하를 분산
  • 단일 접점 제공: 애플리케이션에 대한 단일 DNS 접점 노출
  • 장애 처리: 다운스트림 인스턴스의 장애를 원활하게 처리
  • Health Check: 인스턴스에 대한 정기적인 상태 확인 수행
  • SSL Termination: 웹사이트에 대한 HTTPS SSL 종료 제공
  • 쿠키 고정성: 쿠키를 통한 Stickiness 강제 적용
  • 고가용성: 여러 가용 영역에 걸친 고가용성 제공
  • 트래픽 분리: 공용 트래픽과 사설 트래픽 분리

3. Elastic Load Balancer를 사용하는 이유

ELB는 AWS 관리형 로드 밸런서입니다.

AWS 보장사항:

  • AWS가 작동을 보장
  • 업그레이드, 유지보수, 고가용성을 AWS가 담당
  • 제한된 구성 옵션만 제공 (간편함)

비용 효율성: 다른 AWS 서비스와의 통합으로 설정 비용 절감

  • EC2, Auto Scaling Groups, Amazon ECS
  • AWS Certificate Manager (ACM), CloudWatch
  • Route 53, AWS WAF, AWS Global Accelerator

4. Health Checks (상태 확인)

Health Check는 로드 밸런서에게 중요한 기능입니다.

목적: 로드 밸런서가 트래픽을 전달하는 인스턴스가 요청에 응답할 수 있는지 확인

작동 방식:

  • 특정 포트와 경로에서 상태 확인 수행 (일반적으로 /health)
  • 응답이 200 (OK)이 아니면 인스턴스를 Unhealthy로 판단
  • Unhealthy 인스턴스에는 트래픽을 보내지 않음

5. AWS 로드 밸런서의 4가지 종류

AWS는 4가지 관리형 로드 밸런서를 제공합니다.

Classic Load Balancer (CLB) - v1 (구세대):

  • HTTP, HTTPS, TCP, SSL (secure TCP) 지원

Application Load Balancer (ALB) - v2 (신세대):

  • HTTP, HTTPS, WebSocket 지원
  • Layer 7에서 작동

Network Load Balancer (NLB) - v2 (신세대):

  • TCP, TLS (secure TCP), UDP 지원
  • Layer 4에서 작동, 초고성능

Gateway Load Balancer (GWLB):

  • Layer 3 (Network layer) - IP Protocol에서 작동
  • 방화벽, IDS/IPS 등 네트워크 가상 어플라이언스용

권장사항: 더 많은 기능을 제공하는 신세대 로드 밸런서 사용 권장

배치 옵션: 모든 로드 밸런서는 Internal (private) 또는 External (public)로 설정 가능

6. 로드 밸런서 보안 그룹 설정

로드 밸런서 보안을 위한 보안 그룹 간 참조 방식이 핵심입니다.

ELB 보안 그룹:

  • 포트: 80 (HTTP), 443 (HTTPS)
  • 소스: 0.0.0.0/0 (어디서든 접근 허용)
  • 사용자가 어디서든 로드 밸런서에 접근 가능

EC2 보안 그룹:

  • 포트: 80 (HTTP)
  • 소스: 로드 밸런서의 보안 그룹 ID (IP 범위가 아님)
  • EC2 인스턴스를 로드 밸런서의 보안 그룹에 연결

보안 효과: EC2 인스턴스는 로드 밸런서를 통해서만 트래픽을 받을 수 있어 강화된 보안 메커니즘을 제공합니다.

💡 핵심 포인트

  • ELB는 관리형 서비스라 AWS가 알아서 확장(Scaling)과 유지보수를 다 해줌
  • Health Check 경로를 단순히 /로 두기보다, 애플리케이션의 로직이나 DB 연결 상태까지 체크하는 별도의 /health 경로를 만드는 게 실무에서 더 확실함
  • NLB는 정적 IP(Static IP)를 가질 수 있다는 점이 ALB와의 큰 차이. 화이트리스트 관리가 필요한 환경이라면 NLB를 고려

profile
능동적인 삶을 위하여

0개의 댓글