ELB (Elastic Load Balancing)
기술노트
ELB (Elastic Load Balancing)
비유로 쉽게 이해하기
ELB는 **'숙련된 교통 경찰'**과 같습니다. 고속도로 톨게이트(애플리케이션)로 차량(사용자 트래픽)이 몰릴 때, 이 교통 경찰은 여러 개의 요금소(EC2 인스턴스) 중 가장 한가한 곳으로 차량을 분산시켜 정체를 해소합니다. 또한, 특정 요금소가 고장 나면(인스턴스 장애) 해당 요금소를 즉시 폐쇄하고 다른 정상적인 요금소로만 차량을 안내하여 원활한 교통 흐름을 유지합니다.
개요
Elastic Load Balancing (ELB)은 들어오는 애플리케이션 트래픽을 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 자동으로 분산시키는 서비스입니다. 이를 통해 애플리케이션의 내결함성(fault tolerance)과 가용성을 높여줍니다.
상세 설명
ELB는 단일 장애 지점(Single Point of Failure)을 방지하는 핵심적인 역할을 합니다. 만약 하나의 웹 서버만 운영한다면, 해당 서버에 장애가 발생하거나 트래픽이 폭주했을 때 전체 서비스가 마비될 수 있습니다. ELB는 여러 대의 서버를 하나의 그룹으로 묶고, 들어오는 요청을 이 서버들에게 골고루 나누어 줍니다.
또한, ELB는 주기적으로 각 서버의 상태 확인(Health Check)을 수행하여, 응답이 없거나 비정상적인 서버를 감지하면 해당 서버를 트래픽 분산 대상에서 자동으로 제외합니다. 서버가 다시 정상 상태로 복구되면, 자동으로 다시 트래픽 분산에 포함시킵니다.
왜 중요할까요?
- 고가용성: 일부 서버에 장애가 발생하더라도, 나머지 정상 서버로만 트래픽을 보내 서비스 중단을 방지합니다.
- 확장성: Auto Scaling과 함께 사용하면, 트래픽 양에 따라 서버 수를 자동으로 늘리거나 줄이면서 트래픽을 효과적으로 분산할 수 있습니다.
- 관리 효율성: 클라이언트는 로드 밸런서의 단일 주소로만 접속하면 되므로, 뒷단의 서버 구성이 변경되어도 클라이언트에 영향을 주지 않습니다.
주요 특징
- 다양한 로드 밸런서 유형:
* Application Load Balancer (ALB): HTTP/HTTPS 트래픽에 최적화된 7계층 로드 밸런서로, 경로 기반 라우팅 등 고급 기능을 제공합니다. * Network Load Balancer (NLB): TCP/UDP 트래픽에 최적화된 4계층 로드 밸런서로, 매우 높은 성능과 낮은 지연 시간을 자랑합니다. * Gateway Load Balancer (GWLB): 방화벽, 침입 탐지 시스템 등 가상 어플라이언스를 쉽게 배포하고 확장할 수 있도록 돕는 3계층 로드 밸런서입니다.
- 상태 확인(Health Check): 등록된 대상의 상태를 자동으로 모니터링하고 비정상 대상을 격리합니다.
- SSL/TLS 종료: 로드 밸런서에서 HTTPS 암호화/복호화를 처리하여, 백엔드 서버의 부담을 줄여줄 수 있습니다.
- 고정 IP(Sticky Sessions): 특정 사용자의 요청을 항상 동일한 서버로 보내야 할 경우를 대비한 세션 유지 기능을 제공합니다.
사용 사례
- 여러 웹 서버에 걸쳐 웹 트래픽 분산
- Auto Scaling 그룹과 연동하여 탄력적인 애플리케이션 아키텍처 구축
- 마이크로서비스 아키텍처에서 각 서비스로의 요청 분산
- 고성능이 요구되는 게임 서버 또는 금융 거래 시스템
- 서드파티 가상 네트워크 어플라이언스의 확장성 및 가용성 확보