-
[클라우드] AWS 로드 밸런싱(load balancing)인프라/클라우드 2025. 4. 30. 23:39
- 부하분산
- Amazon ELB
- Amazon ELB 구성
- Amazon ELB 동작
- Amazon ELB 교차 영역 로드 밸런싱
- Amazon ELB 종류
- CLB(Classic Load Balancer)
- ALB(Application Load Balancer)
- NLB(Network Load Balancer)
- GWLB(GateWay Load Balancer)
로드 밸런싱(load balancing)
부하로 인한 장애를 방지하기 위해, 동일한 목적을 수행하는 다수의 서버에 분산 처리하는 기능
로드 밸런서(load balancer) : 부하분산을 수행하는 대상
- 고가용성 및 내결함성이 향상
- 서비스를 안정적으로 유지
Amazon ELB (Elastic Load Balancing)
Amazon EC2 인스턴스로 유입되는 트래픽을 자동 분산 처리하는 기술
- 여러 가용 영역에서 작동 (애플리케이션 가용성을 향상)
- HTTP, HTTPS, TCP, SSL 등 다양한 프로토콜을 지원
- 사용자가 같은 인스턴스에서 세션을 유지할 수 있도록 지원
- AWS의 CloudWatch 기능을 이용하여 로그와 메트릭을 모니터링 가능
- AWS의 오토 스케일링 기능과 결합해서 트래픽이 증가할 때 자동으로 인스턴스를 추가/제거
- 네트워크 및 응용 프로그램 수준의 로드 밸런싱을 지원 (다양한 애플리케이션에 적용)
김원일,『AWS 교과서 』, 길벗(2023), 4장 ≫ 클라이언트에서 인스턴스로 향하는 트래픽을 ELB가 받아 다수의 대상으로 로드 밸런싱해서 전달
Amazon ELB 구성
- 로드 밸런서(load balancer)
- 여러 대의 EC2 인스턴스, IP 주소, 람다 등을 사용하여 트래픽을 대상 그룹에 있는 인스턴스로 분산
- 사용자 요청을 받아 서버로 전달, 서버의 응답을 사용자에게 반환
- 대상 그룹
- 로드 밸런서에서 분산할 대상의 집합
- 로드 밸런서는 대상 그룹에 포함된 대상들의 상태를 정기적으로 확인
장애 발생 대상을 자동으로 제외, 정상적으로 동작하는 대상에만 요청을 전달
- 리스너
- 로드 밸런서에서 사용할 포트와 프로토콜을 설정
- 대상 트래픽에 대한 규칙 생성, 수행 동작 정의
- 로드 밸런서에서 클라이언트 요청을 수신, 해당 요청을 처리할 대상 그룹을 선택하여 라우팅
김원일,『AWS 교과서 』, 길벗(2023), 4장 Amazon ELB 동작
- 클라이언트 요청 수신
- 로드 밸런서에서 클라이언트 요청을 수신
- 로드 밸런서는 클라이언트와 연결을 유지, 요청 수신을 위해 리스너를 등록
- 대상 그룹 선택
- 수신한 클라이언트 요청을 처리할 대상 그룹을 선택
- 대상 그룹은 인스턴스, IP 주소, 람다 함수, ALB 등 여러 유형의 대상으로 구성
- 트래픽 분산
- 선택된 대상 그룹에서 요청을 처리할 대상을 선택, 해당 대상으로 요청을 분산
- 로드 밸런서는 각 대상의 가용성 상태를 모니터링
- 응답 반환
- 분산된 요청을 대상에서 처리하고 클라이언트에 응답을 반환
Amazon ELB 교차 영역 로드 밸런싱
교차 영역 로드 밸런싱이 비활성화
- 가용 영역 기준으로 분산 (인스턴스 하나의 부하는 고려X)
- 가용 영역별로 인스턴스의 수가 불균형하다면?
교차 영역 로드 밸런싱이 활성화
- 대상 그룹에 속한 자원을 기준으로 분산
- 여러 가용 영역에 걸쳐 있는 EC2 인스턴스나 컨테이너 등 대상을 더 효과적으로 로드 밸런싱하는 기능
- 가용 영역별로 인스턴스 수량이 불균형하게 위치할 때 트래픽 비중을 보정
- 좀 더 효율적으로 로드 밸런싱
- ALB는 기본적으로 활성화, NLB는 비활성화
- 대상 그룹 수준에서 구성
- 가용 영역 간에 통신 비용이 발생 가능
Amazon ELB 종류
트래픽의 프로토콜 종류나 서비스의 목적/대상에 따라 븐류
CLB(Classic Load Balancer)
- L4, L7 프로토콜을 모두 지원
- 대상 : EC2-Classic
- 프로토콜 : TCP, SSL/TLS, HTTP, HTTPS
- 고정 IP 주소를 사용하여 로드 밸런서를 생성, 로드 밸런서에 대한 DNS 이름으로 액세스
- 서버의 기본 주소가 변경되면 로드 밸런서 새로 생성 필요
포트나 헤더 같은 데이터를 수정하거나 변경할 수 없는 등 제약 사항
→ 레거시(legacy) 서비스로 분류 (NLB와 ALB로 대체)
ALB(Application Load Balancer)
- L7 로드 밸런서 → 웹 애플리케이션에 특화된 세밀한 라우팅
- 대상 : IP, 인스턴스, AWS Lambda, 컨테이너
- 프로토콜 : HTTP/HTTPS 같은 웹 애플리케이션 프로토콜을 지원
- 특징
- 보안 그룹 사용
- HTTP 헤더를 확인하여 다양한 라우팅 기능을 제공
경로 기반 라우팅 : URL 경로를 기반으로 요청을 분산
호스트 기반 라우팅 : 호스트 이름을 기반으로 요청을 분산
쿼리 문자열 기반 라우팅 : URL 쿼리 문자열을 기반으로 요청을 분산. - 오토 스케일링
- 대상 그룹 내 인스턴스에 대해 상태 검사를 수행하고, 문제가 발생하면 자동으로 장애 조치 가능
- Amazon CloudWatch Logs와 통합되어 로그/지표 데이터를 수집/모니터링/분석 가능
NLB(Network Load Balancer)
- L4 로드 밸런서
- 대상 : IP, 인스턴스, ALB 컨테이너 (AWS Lambda 불가능!)
- 프로토콜 : TCP, UDP, TLS
- 대규모 트래픽을 처리, 대상 그룹의 대상이 IP 주소로 식별될 때 유용
- 특징
- 고정 IP 제공
- 높은 처리량 : 초당 수백만 개의 연결을 처리
- 빠른 응답 시간 : 최적화된 14 로드 밸런싱 알고리즘을 사용
- 높은 가용성 : 여러 가용 영역에서 인스턴스를 실행, 매우 빠른 인스턴스 검색을 수행, 신속하게 장애를 복구
- IP 주소 보존 : 클라이언트 IP 주소를 유지하면서 로드 밸런싱을 수행 가능
- 모니터링 : AWS CloudTrail, Amazon CloudWatch Logs 지원
GWLB(GateWay Load Balancer)
- 네트워크 트래픽을 서드 파티의 방화벽/어플라이언스 장비로 부하분산 처리
- 대상 : IP, 인스턴스
- 프로토콜 : IP
- 서드 파티의 방화벽/어플라이언스 장비를 쉽게 배포하고 확장 및 관리 가능
- VPC 내에서 실행되는 애플리케이션의 가용성과 확장성을 향상시키는 데 사용
TCP 및 UDP 프로토콜을 지원하여 다양한 유형의 애플리케이션에 유연하게 적용
김원일,『AWS 교과서 』, 길벗(2023), 4장 참조
김원일, 『AWS 교과서』, 길벗(2023), 4장
'인프라 > 클라우드' 카테고리의 다른 글
[클라우드] AWS 스토리지 (0) 2025.05.18 [클라우드] AWS 네트워크 (0) 2025.03.31 [클라우드] AWS EC2란? (0) 2025.03.24 [클라우드] 클라우드란? (0) 2025.03.17