ㅁ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 환경에서 필수적으로 고려해야 하는 요소이다 (:
'클라우드 > AWS' 카테고리의 다른 글
[AWS] IAM(Identity and Access Management): 롤 플레이 (0) | 2025.03.06 |
---|---|
[AWS] Amazon EKS가 궁금해요(feat.쿠버네티스) (0) | 2025.03.06 |
[AWS] Route 53 - DNS 서비스 (0) | 2025.03.06 |
[AWS] 라우팅 테이블 제대로 이해하기 (0) | 2025.03.05 |
[AWS] VPC 피어링이란? (0) | 2025.03.05 |