Elastic Load Balancing
ELB는 여러 서버나 태스크를 하나의 엔드포인트 뒤에 묶어 요청을 나눠 보내는 트래픽 분산 계층입니다. 살아 있는 대상만 남기면서 서비스 앞단의 고가용성을 담당합니다.
▶아키텍처 다이어그램
🔍 구조 다이어그램점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다
EC2나 컨테이너를 여러 대 띄웠는데 사용자는 한 주소만 알아야 하고, 장애 난 대상은 자동으로 빼야 합니다. 이 분산 규칙을 애플리케이션마다 직접 넣기 시작하면 배포가 늘수록 운영이 불안정해집니다.
과거에는 웹 서버가 자체적으로 프록시나 로드밸런서를 운영해야 했고, 장애 탐지와 확장까지 직접 챙겨야 했습니다. 그래서 분산과 헬스 체크를 서비스로 제공하는 ELB가 기본 인그레스 계층이 됐습니다.
ELB는 리스너와 타깃 그룹을 두고 요청을 적절한 EC2, ECS, Fargate 태스크나 IP 대상으로 분산합니다. 헬스 체크로 비정상 대상을 제외하고, 서비스 성격에 따라 HTTP/HTTPS용 ALB, 초저지연 TCP용 NLB, 네트워크 장비용 GWLB 같은 형태를 고를 수 있습니다.
ELB와 API Gateway는 둘 다 요청 앞단에 서지만 목적이 다릅니다. ELB는 살아 있는 서버나 태스크로 트래픽을 분산하고 고가용성을 만드는 데 강하고, API Gateway는 인증·스로틀링·API 정책 관리에 강합니다. 서버 풀로 요청을 안정적으로 나누는 게 핵심이면 ELB를 보고, 공개 API를 제품처럼 운영하는 게 핵심이면 API Gateway를 보면 됩니다.
웹 앱, 컨테이너 서비스, 다중 인스턴스 API, 경로 기반 라우팅이 필요한 인그레스, 초저지연 TCP 트래픽 분산에 적합합니다. API 수준의 인증, 스로틀링, 사용량 제어가 핵심인 경우에는 맞지 않습니다.