잡다한 공부/Cloud
3. AWS 부하분산 서비스
자이구
2024. 12. 18. 16:39
부하분산은 서버-클라이언트 환경에서 서버가 클라이언트 요청을 받아 처리하는 관정에서 발생하는 부하에 대해 동일한 목적을 수행하는 다수의 서버에 분산 처리하는 기능
로드 밸런싱 : 부하 분산
로드 밸런서 : 부하 분산을 수행하는 대상
AWS ELB : EC2 인스턴스에서 운영 중인 애필리케이션, 마이크로 서비스 또는 컨테이터 서비스로 유입되는 트래픽을 자동 분산 처리하는 기술
즉, 네트워크 및 응용 프로그램 수준의 로드 밸런싱을 지원하여 다양한 애플리케이션에 적용, SSL 암호화를 지원
- 여러 가용 영역에서 작동하여 애플리케이션 가용성을 향상
- 다양한 프로토콜을 지원
- 사용자가 같은 인스턴스에서 세션을 유지할 수 있도록 지원
- 오토 스케일링 기능과 결합해서 트래픽이 증가할 때 자동으로 인스턴스를 추가하거나 제거하면서 애플리케이션 가용성을 유지
구성요소
- 로드 밸런서 : 트래픽을 대상 그룹에 있는 인스턴스로 분산시켜 애플리케이션의 가용성을 유지하는 역활
- 대상 그룹 : 로드 밸런서에서 분산할 대상의 집합을 정의하는 구성요소
그룹 포함 대상들의 상태를 정기적으로 확인하여 정상 동작하는 대상에만 요청을 전달 - 리스너 : 로드 밸런서에서 사용할 포트와 프로토콜을 설정하는 구성 요소
동작 방식
- 설정한 가용 영역별로 로드 밸런서 노드가 생성되고 앞단에 리스너를 실행
- 다양한 프로토콜을 지원하며, 요청에 대한 대상 그룹의 라우팅을 정의
- 클라이언트 요청 수신 : 로드 밸런서는 클라이언트와 연결을 유지하며, 요청을 수신하려고 리스너를 등록
- 대상 그룹 선택 : 수신한 클라이언트 요청을 처리할 대상 그룹을 선택
- 트래픽 분산 : 선택된 대상 그룹에서 요청을 처리할 대상을 선택하고 해당 대상으로 요청을 분산
- 응답 반환 : 분산된 요청을 대상에서 처리하고 클라이언트에 응답을 반환
교차 영역 로드 밸런싱
- 대상 그룹에 등록된 대상이 여러 가용 영영게 걸쳐 있다면 기본적으로 로드 밸런서는 동일한 비중으로 가용 영역 내에 있는 대상으로 트래픽을 분산
- ELB 교차 영역 로드 밸런싱은 여러 가용 영역에 걸쳐 있는 EC2 인스턴스나 컨테이너 등 대상을 더 효과적으로 로드 밸런싱 하는 기능
- 가용 영역별로 인스턴스 수량이 불균형하게 위치할 때 트래픽 비중을 보정할 수 있으며, 트래픽을 분산하는 기준이 가용 영역이 아닌 대상 그룹에 속한 자원을 기준으로 균일한 비중의 로드 밸런싱을 수행
- ALB를 사용할 때 기본적으로 활성화, NLB는 비활성화
종류
- CLB
- 4, 7계층 모두 지원
- 레거시 서비스, NLB, ALB로 대체
- 제약사항이 많음
- ALB
- L7 로드 밸런서로, HTTP/HTTPS 같은 웹 애플리케이션 프로토콜 지원
- 웹 애플리케이션에 특화된 세밀한 라우팅을 제어할 수 있어 웹 어플리케이션 위한 로드밸런서로 사용
- HTTP 헤더를 확인하여 다양한 라우팅 기능을 제공
경로 기반 라우팅 / 호스트 기반 라우팅 / 쿼리 문자열 기반 라우팅 - 오토 스케일링과 함께 사용하여 확장성 있는 애플리케이션을 구성할 수 있음
- 대상 그룹 내 인스턴스에 대해 상태 검사를 수행, 문제가 발생하면 자동으로 장애 조치를 취함
- NLB
- L4 로드 밸런서
- 대규모 네트워크 트래픽을 처리하고 대상 그룹의 대상이 IP 주소로 식별될 때 유용
- 클라이언트와 로드 밸런서 간 연결을 TCP 레벨에서 유지하므로 대규모 트래픽을 처리할 수 있음
- NLB는 높은 처리량, 초당 연결 수, 대역폭 등 기능을 제공하며 동일한 IP 주소에서 여러 대상 그룹을 지원