ELB
•
Elastic Load Balancing
•
애플리케이션이나 웹 서비스에서 트래픽을 효율적으로 분산해주는 AWS의 완전관리형 서비스
•
사용자가 많은 시스템에서 서버 한 대만으로는 안정적으로 트래픽을 처리하기 어려울 때, 여러 대의 서버로 부하(Load)를 나누어주는 핵심 역할을 수행한다.
•
이를 통해 서버 장애로 인한 서비스 중단을 방지하고, 트래픽 증가 상황에서도 안정적인 서비스 확장이 가능해진다.
•
사용자가 특정 도메인으로 접근하면, ELB가 적절한 대상에게 트래픽을 분산하여 서비스 장애나 과부하를 최소화한다. 이를 통해 서버 리소스 사용을 효율적으로 관리하고, 고가용성(High Availability)을 확보한다.
주요 기능 및 특징
자동 확장(Auto Scaling)과 연계
•
트래픽 증가에 맞춰 서버 개수를 동적으로 늘리고,
•
트래픽 감소 시에는 서버를 줄이는 방식으로 비용 최적화가 가능하다.
고가용성(High Availability)
•
여러 대의 서버를 묶어 하나의 로드 밸런서가 관리하기 때문에, 특정 서버에 장애가 발생하더라도 다른 서버로 트래픽이 자동 분산되어 서비스 중단을 예방할 수 있다.
유연한 트래픽 분산
•
HTTP, HTTPS, TCP, UDP 등 다양한 프로토콜 기반 트래픽을 처리
•
특히 애플리케이션 로드 밸런서는 7계층(애플리케이션 레벨)에서 요청 패턴에 따라 정교한 라우팅이 가능하다.
보안 기능
•
SSL/TLS 종료(Offloading), AWS Certificate Manager 연계 등을 통해 암호화 트래픽도 쉽게 처리할 수 있다.
•
또한 AWS WAF(웹 방화벽)와 연계하면 보안 정책을 적용하는 데 유리하다.
애플리케이션 모니터링 및 로깅
•
Amazon CloudWatch, AWS CloudTrail 등의 서비스를 통해 메트릭과 로그를 수집해 시스템 상태를 모니터링할 수 있다.
•
이를 통해 트래픽 추이를 분석하고 장애를 빠르게 파악할 수 있다.
ELB 작동 방식
종류별 ELB 설명
Classic Load Balancer (CLB)
•
가장 오래된 방식
•
OSI 모델의 4계층(전송 계층)과 7계층(애플리케이션 계층)을 모두 다룰 수 있으나, 최근에는 ALB나 NLB 사용이 권장되는 추세다.
Application Load Balancer (ALB)
•
HTTP/HTTPS 트래픽 처리에 특화된 7계층 로드 밸런서다. 호스트 기반 라우팅이나 경로 기반 라우팅 등의 정교한 트래픽 분산이 가능하다.
•
마이크로서비스 아키텍처와 컨테이너 환경에서 더욱 유용하다.
Network Load Balancer (NLB)
•
네트워크 레벨(4계층)에서 트래픽을 분산하며, 초당 수백만 건의 요청도 처리할 수 있을 정도로 고성능이다.
•
TCP/UDP 기반의 애플리케이션에 적합하다.
Gateway Load Balancer (GWLB)
•
주로 방화벽, 침입 방지 시스템(IPS), 침입 방지 서비스(IDS) 등의 네트워크 보안 서비스 트래픽을 처리하기 위한 로드 밸런서
•
높은 트래픽 규모에서도 안정적인 분산 처리 및 보안 제어가 가능하다.
교차 영역 로드 밸런싱
•
로드 밸런서의 노드는 클라이언트로부터 요청을 가져와서 등록된 대상에 분산한다.
•
교차 영역 로드 밸런싱을 활성화하면 각 로드 밸런서 노드가 활성화된 모든 가용 영역에 있는 등록된 대상 간에 트래픽을 분산한다.
•
교차 영역 로드 밸런싱을 비활성화하면 각 로드 밸런서 노드가 해당 가용 영역에 있는 등록된 대상 간에만 트래픽을 분산한다.
◦
위 다이어그램은 기본 라우팅 알고리즘으로서 라운드 로빈이 포함된 교차 영역 로드 밸런싱의 효과를 보여 준다.
라운드 로빈: 작업이나 요청을 순환하며 하나씩 처리하는 방식의 알고리즘
다음과 같은 원리를 지니고 있다.
•
순환 분배
◦
주어진 요청을 순서대로 각 대상에게 하나씩 할당한다.
◦
마지막 대상에 요청이 전달되면 다시 첫 번째 대상으로 돌아간다.
•
공정성(Fairness)
◦
모든 대상이 동일한 양의 요청을 처리하도록 보장한다.
◦
어떤 대상도 지나치게 요청을 많이 받거나 적게 받지 않는다.
◦
활성화된 2개의 가용 영역이 있는데 가용 영역 A에는 2개의 대상이 있고 가용 영역 B에는 8개의 대상이 있다.
◦
클라이언트는 요청을 보내며, Amazon Route 53은 로드 밸런서 노드 중 하나의 IP 주소를 통해 각 요청에 응답.
◦
라운드 로빈 라우팅 알고리즘에 따라 트래픽이 분산되므로 각 로드 밸런서 노드가 클라이언트가 보낸 트래픽의 50%를 수신하도록 트래픽이 분산된다.
◦
각 로드 밸런서 노드는 공유 트래픽을 해당 범위의 등록된 대상에만 분산한다.
•
교차 영역 로드 밸런싱이 활성화된 경우 각 10개의 대상이 트래픽의 10%를 수신한다.
→ 각 로드 밸런서 노드가 클라이언트 트래픽의 50%를 10개의 대상 모두에게 라우팅할 수 있기 때문
비활성화 한 경우
사용 시 고려사항
1.
로드 밸런서 유형 선택
•
HTTP/HTTPS 프로토콜 기반 라우팅이 많은 웹 애플리케이션은 ALB가 유리하고, 네트워크 레벨에서의 빠른 성능이 필요하다면 NLB를 고려하는 식으로 서비스 특성에 맞게 선택해야 한다.
2.
Target Health Check
•
로드 밸런서가 대상 서버의 정상 작동 여부를 모니터링한다.
•
Health Check가 실패한 서버는 트래픽 분산 대상에서 제외하고, 서버가 회복하면 다시 추가한다.
3.
보안 설정
•
HTTPS를 사용하는 경우, 인증서를 AWS Certificate Manager로 쉽게 관리할 수 있다.
•
AWS WAF를 이용해 방화벽 룰을 적용해 보안 레이어를 강화할 수 있다.
4.
비용
•
클라이언트 요청의 처리량, 사용한 시간(시간 단위 요금), 데이터 전송량 등에 따라 비용이 청구된다.
•
잘못된 설정이나 지나친 트래픽 유입을 막기 위해 모니터링과 비용 관리를 병행해야 한다.