4 분 소요

ELB(Elastic Load Balancing)란

AWS의 ELB(Elastic Load Balancing)는 여러 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 다양한 대상에 트래픽을 자동으로 분산하는 서비스이다. 또한, 대상의 상태를 지속적으로 모니터링하여, 정상적인 대상에게만 트래픽을 전달하는 기능을 제공한다.

❓ 왜 ELB가 필요할까?

오토 스케일링을 사용하면 EC2 인스턴스의 개수가 상황에 따라 늘어나거나 줄어든다. 그런데, EC2 인스턴스는 각각 다른 IP 주소를 가지므로, 클라이언트가 어느 IP로 접속해야 하는지 매번 알아야 한다.

예를 들어, 사용자가 대규모 웹 애플리케이션을 운영한다고 가정해 보자.
각각의 EC2 인스턴스가 개별 IP 주소를 가지기 때문에, 클라이언트는 어느 서버에 접속해야 할지 미리 알고 있어야 한다. 하지만, 오토 스케일링으로 인해 EC2 인스턴스 개수가 동적으로 변하면 클라이언트가 이를 정확히 관리하기 어려워 진다.

이를 해결하기 위해 ELB가 등장한 것이다.

ELB의 역할

ELB는 클라이언트와 EC2 클러스터(서버 그룹) 사이에서 중개자 역할을 한다. 즉, 클라이언트는 개별 EC2 인스턴스와 직접 통신하는 것이 아니라, ELB를 통해 통신하며,
ELB는 트래픽을 적절한 EC2 인스턴스로 분배하는 역할을 담당한다.

  • ELB를 사용하면 클라이언트는 하나의 도메인만 알면 된다.
  • 트래픽을 적절한 서버로 자동 분산하여 부하를 균등하게 유지한다.
  • 문제가 발생한 EC2 인스턴스는 자동으로 제외하고, 정상적인 서버에만 트래픽이 전달된다.

이러한 특성을 느슨한 연결(Loose Coupling)이라고 한다. 즉, 클라이언트와 개별 서버가 직접 연결되지 않고, ELB를 통해 유연하게 연결되는 구조를 가질 수 있다.

ELB의 주요 기능

1️⃣ 자동 트래픽 분산

  • 여러 개의 EC2 인스턴스, 컨테이너, IP 주소 등에 트래픽을 자동으로 나눠줍니다.
  • 특정 서버의 부하가 높으면, 다른 서버로 트래픽을 보내 부하를 분산합니다.

2️⃣ 헬스 체크 (Health Check)

  • EC2 인스턴스가 정상적으로 동작하는지 지속적으로 모니터링합니다.
  • 만약 특정 EC2 인스턴스가 응답하지 않으면, 해당 인스턴스로는 트래픽을 보내지 않습니다.
  • 즉, 장애가 발생한 서버로 트래픽이 가지 않도록 자동으로 조절합니다.

3️⃣ 오토 스케일링과 연동 가능

  • 오토 스케일링으로 인해 EC2 인스턴스 개수가 늘어나거나 줄어들더라도, ELB가 알아서 관리합니다.
  • 인스턴스가 추가되면 자동으로 트래픽을 전달하고, 인스턴스가 삭제되면 대상에서 제거됩니다.

4️⃣ 도메인 기반 연결 (IP 고정 불가)

  • 일반적으로 ELB는 지속적으로 변하는 EC2 IP 주소 때문에 고정된 IP를 사용할 수 없습니다.
  • 대신 도메인(DNS) 기반으로 접속해야 합니다.
  • 단, 네트워크 로드 밸런서(NLB)의 경우 IP 고정이 가능합니다.

ELB의 종류

1️⃣ 애플리케이션 로드 밸런서(ALB, Application Load Balancer)

애플리케이션 로드 밸런서는 가장 많이 사용되는 로드 밸런서로, OSI 모델의 레이어 7(애플리케이션 계층)에서 작동한다.

  • 트래픽의 내용을 분석하고, 이를 기반으로 라우팅이 가능하다.
    • 예를 들어, 트래픽 내용 중 image.sample.com으로 온 요청은 이미지 서버로 전송하고, web.sample.com으로 온 요청은 웹 서버로 전송할 수 있다.
  • 요청 내용에 따라 유연한 트래픽 분산이 가능하다. 헤더, URL, 쿼리 스트링 등 다양한 요소를 기반으로 경로 설정이 가능하다.

즉, 트래픽의 내용을 이해하고, 요청에 맞게 최적의 서버로 보내는 똑똑한 로드 밸런서 이다.


2️⃣ 네트워크 로드 밸런서(NLB, Network Load Balancer)

네트워크 로드 밸런서는 빠른 성능을 제공하는 로드 밸런서로, OSI 모델 4계층(Layer 4)에서 작동한다.

  • 애플리케이션 로드 밸런서(Layer 7)보다 낮은 계층에서 동작하므로 처리해야 할 정보량이 적어 속도가 빠르다.
  • TCP, UDP 기반의 트래픽을 빠르게 분산처리 하며, 실시간 통신, 고속 데이터 처리가 필요한 경우에 적합하다.
  • Elastic IP 할당이 가능하기 때문에 고정 IP를 사용할 수 있다.
  • ALB의 IP 고정이 필요하면 NLB 뒤에 배치 가능하다.
    • 네트워크 로드 밸런서를 애플리케이션 로드 밸런서 앞에 두어 IP 고정을 유지하는 방법도 있음

즉, 빠르고 효율적인 트래픽 분산이 필요할 때 주로 사용하며, 고정 IP를 지원하는 것이 특징이다.


3️⃣ 클래식 로드 밸런서(CLB, Classic Load Balancer)

과거에 사용되던 로드 밸런서로 현재는 거의 사용되지 않는다.

  • OSI 모델의 레이어 4(전송 계층) & 레이어 7(애플리케이션 계층) 지원
  • 기능이 제한적 → ALB, NLB보다 유연한 트래픽 분산이 어려움
  • 현재는 주로 기존 시스템에서 유지보수 목적으로 사용됨
  • AWS에서도 CLB 대신 ALB 또는 NLB 사용을 권장


4️⃣ 게이트웨이 로드 밸런서(GLB, Gateway Load Balancer)

트래픽을 필터링하고 보안 검사를 먼저 수행하는 특수한 로드 밸런서이다.

  • OSI 모델의 레이어 3(네트워크 계층)에서 동작한다.
  • 보안 장비(방화벽, IDS/IPS, DDoS 방어 시스템)와 연동 가능하다.
  • 트래픽을 검증한 후 정상적인 트래픽만 내부 시스템으로 전달한다.
  • 클라우드 보안이 중요한 환경에서 사용된다.

쉽게 말해 보안 게이트처럼 악성 트래픽이 내부 시스템으로 들어오지 못하게 필터링하는 역할을 한다. 트래픽이 먼저 GLB를 통과해야 하고, 이상이 없으면 실제 서버로 전달된다. 방화벽이나 침입 탐지 시스템(IDS/IPS)과 함께 쓰이는 경우가 많다.


🚀 AWS 로드 밸런서 4가지 종류 한눈에 정리

  애플리케이션 로드 밸런서(ALB) 네트워크 로드 밸런서(NLB) 클래식 로드 밸런서(CLB) 게이트웨이 로드 밸런서(GLB)
주요 역할 HTTP/HTTPS 기반으로 트래픽을 분석하고 라우팅 TCP/UDP 기반으로 빠르게 트래픽을 분산 예전 로드 밸런싱 방식, 현재는 거의 사용 안 함 트래픽을 사전에 검사하여 보안 강화
OSI 계층 레이어 7 (애플리케이션 계층) 레이어 4 (전송 계층) 레이어 4(전송 계층), 일부 레이어 7(애플리케이션 계층) 레이어 3 (네트워크 계층)
주요 기능 URL, 헤더, 쿠키 기반 라우팅 / HTTPS 지원 / 다양한 규칙 설정 가능 빠른 트래픽 처리 / TCP, UDP, TLS 지원 / 고정 IP(엘라스틱 IP) 사용 가능 기본적인 트래픽 분산 (ALB, NLB보다 기능 부족) 보안 장비(Firewall, IDS/IPS)와 연동하여 악성 트래픽 차단
장점 트래픽을 분석해 최적의 서버로 연결하는 똑똑한 로드 밸런서 속도가 빠르고, 네트워크 레벨에서 고정 IP 제공 가능 예전에는 유용했으나 현재는 기능이 부족 보안 강화에 특화, 악성 트래픽을 차단하고 필터링 가능
단점 속도는 NLB보다 느림, IP 고정 불가 HTTP/HTTPS 기반 기능이 부족(단순 트래픽 분산) ALB/NLB 대비 기능이 부족, 현재는 거의 사용 안 함 일반적인 로드 밸런싱이 아니라 보안 필터링 용도로 특화됨
현재 사용 여부 가장 많이 사용됨 빠른 속도가 필요한 경우 사용 AWS에서 ALB/NLB로 대체 권장 보안이 중요한 환경에서 사용
사용 예시 웹 서비스, API 서버, 마이크로서비스 게임 서버, 금융 시스템, 대용량 데이터 처리 기존 레거시 시스템 유지보수 방화벽, 침입 탐지 시스템(IDS/IPS), DDoS 방어

ALB → 가장 똑똑한 로드 밸런서 (HTTP/HTTPS 기반, 다양한 기능)
NLB → 가장 빠른 로드 밸런서 (TCP/UDP 기반, 고속 처리 & 고정 IP 가능)
CLB → 예전 방식, 현재는 거의 사용 안 함 (ALB/NLB 대체)
GLB → 보안 필터링을 위한 로드 밸런서 (악성 트래픽 차단 & 보호 역할!)

태그: ,

카테고리:

업데이트:

댓글남기기