티스토리 뷰

* 부하분산

- 서버-클라이언트 환경에서 서버가 클라이언트 요청을 받아 처리하는 과정에서 발생하는 부하(연산 작업)에 대해 동일한 목적을 수행하는 다수의 서버에 분산 처리하는 기능

- 부하분산을 사용하면 고가용성 및 내결함성이 향상되어 장애가 발생할 때 유연하게 대처할 수 있고, 서비스를 안정적으로 유지할 수 있어 클라우드를 구성할 때 반드시 사용해야 하는 기술

 

[참고]

고가용성 : 시스템이나 서비스가 지속적으로 작동 가능하도록 하는 기능

내결함성 : 시스템의 일부 구성 요소가 작동하지 않더라도 계속 작동할 수 있는 기능

 

 

* 로드 밸런싱 & 로드 밸런서

- 로드 밸런싱(Load Balancing) : 부하분산을 처리하는 기술

- 로드 밸런서(Load Balancer) : 부하분산을 수행하는 대상

 

 

* Amazon ELB 기능

- AWS에서 ELB(Elastic Load Balancing)라는 로드 밸런싱 기술 제공함

- Amazon EC2 인스턴스에서 운영 중인 애플리케이션, 마이크로서비스 또는 컨테이너 서비스로 유입되는 트래픽을 자동 분산 처리하는 기술로, 여러 가용 영역에서 작동하여 애플리케이션 가용성을 향상 시킴

- HTTP, HTTPS, TCP, SSL 등 다양한 프로토콜을 지원하며, 사용자가 같은 인스턴스에서 세션을 유지할 수 있도록 지원함

- AWS의 CloudWatch 기능을 이용하여 로그와 메트릭을 모니터링 할 수 있음

- AWS의 오토 스케일링 기능과 결합해서 트래픽이 증가할 때 자동으로 인스턴스를 추가하거나 제거하면서 애플리케이션 가용성을 유지함

- 네트워크 및 응용 프로그램 수준의 로드 밸런싱을 지원하여 다양한 애플리케이션에 적용할 수 있으며, SSH 암호화를 지원하여 애플리케이션의 보안을 강화함

 

 

* Amazon ELB 구성 요소

1) 로드 밸런서

 - 여러 대의 EC2 인스턴스, IP 주소, 람다 등을 사용함

 - 트래픽을 대상 그룹에 있는 인스턴스로 분산시켜 애플리케이션의 가용성을 유지하는 역할

 - 로드 밸런서는 사용자의 요청을 받아 애플리케이션 서버로 전달하고, 애플리케이션 서버의 응답을 사용자에게 반환함

 

2) 대상 그룹

 -  로드 밸런서에서 분산할 대상의 집합을 정의하는 구성 요소

 - 대상 그룹의 인스턴스에 대해 정적 또는 동적으로 구성할 수 있음

 - 라우팅 규칙에 따라 요청을 받아들일 대상 그룹을 선택함

 - 로드 밸런서는 대상 그룹에 포함된 대상들의 상태를 정기적으로 확인하여 장애 발생 대상을 자동으로 제외하고, 정상적으로 동작하는 대상에만 요청을 전달함

 

3) 리스너

 - 로드 밸런서에서 사용할 포트와 프로토콜을 설정하는 구성 요소

 - 로드 밸런서에서 클라이언트 요청을 수신하고, 해당 요청을 처리할 대상 그룹을 선택하는 역할

 - 로드 밸런서에 연결된 프로토콜과 포트를 사용하여 클라이언트 요청을 수신하고, 해당 요청을 대상 그룹으로 라우팅함

 

 

* Amazon ELB 구성요소 간 관계

- 사용자와 인스턴스 간 로드 밸런싱 통신을 할 수 있도록 로드 밸런서가 위치함

로드 밸런서는 대상 그룹을 통해 로드 밸런싱 대상을 지정하고 상태를 확인함

- 리스너는 로드 밸런싱을 처리하는 트래픽의 프로토콜과 포트 번호를 정의하고 대상 트래픽을 어떻게 처리할 지 규칙 생성

- Amazon ELB 구성 요소를 통해 애플리케이션의 가용성과 확장성 향상할 수 있음

 

 

* Amazon ELB 동작 방식

- Amazon ELB를 생성하면 설정한 가용 영역별로 로드 밸런서 노드가 생성되고 앞단에 리스너를 실행함

- 리스너는 다양한 프로토콜(HTTP, HTTPS, TCP 등)을 지원하며, 요청에 대한 대상 그룹의 라우팅을 정의함

- 로드 밸런서는 가용 영역에 속한 대상 그룹의 인스턴스로 트래픽을 전달함

 

[동작 방식]

1) 클라이언트 요청 수신

 - 로드 밸런서에서 클라이언트 요청을 수신함

 - 로드 밸런서는 클라이언트와 연결을 유지하며, 요청을 수신하려고 리스너를 등록함

 

2) 대상 그룹 선택

 - 수신한 클라이언트 요청을 처리할 대상 그룹을 선택함

 - 대상 그룹은 인스턴스, IP 주소, 람다 함수, ALB 등 여러 유형의 대상으로 구성됨

 

3) 트래픽 분산

 - 선택된 대상 그룹에서 요청을 처리할 대상을 선택하고 해당 대상으로 요청을 분산함

 - 분산 시 로드 밸런서는 각 대상의 가용성 상태를 모니터링하고 가용하지 않은 대상을 제외함

 

4) 응답 반환

 - 분산된 요청을 대상에서 처리하고 클라이언트에 응답을 반환함

 - 응답은 로드 밸런서에서 수신한 것으로 반환되므로, 클라이언트는 로드 밸런서가 대상 그룹에서 선택한 대상에게서 마치 응답을 받는 것처럼 느낄 수 있음

 

 

* ELB 생성 시 로드 밸런서와 통신하는 방식

1) 인터넷 경계 로드 밸런서 : 외부에서 직접 로드 밸런서에 접근하는 방식 

2) 내부 로드 밸런서 : 외부의 접근이 차단된 격리된 네트워크(내부 서버 전용)에서 로드 밸런서를 사용하는 방식

 

 

* Amazon ELB 교차 영역 로드 밸런싱

1) 교차 영역 로드 밸런싱 비활성화

출처:AWS Elastic Load Balancing 사용 설명서

 - 가용 영역별로 로드 밸런서가 배치되고 다수의 인스턴스가 구성되어 있는데, 대상 인스턴스 수량이 첫 번째 가용 영역은 두 대, 두 번쨰 가용 영역은 여덟 대로 영역별로 불균형하게 구성되어 있음

 - 사용자 PC에서 ELB 도메인 주소로 트래픽을 전송하면, 도메인을 해석하여 50:50 비중으로 가용 영역에 위치한 로드 밸런서로 전달

 - 두 로드 밸런서는 트래픽 비중이 다르게 되어 로드 밸런싱이 불균형해지는 것을 확인할 수 있음

 

2) 교차 영역 로드 밸런싱 활성화

출처:AWS Elastic Load Balancing 사용 설명서

 

 - ELB 교차 영역 로드 밸런싱(Cross-zone Load Balancing) : 여러 가용 영역에 걸쳐 있는 EC2 인스턴스나 컨테이너 등 대상을 더 효과적으로 로드 밸런싱하는 기능

 - 교차 영역 로드 밸런싱은 가용 영역별로 인스턴스 수량이 불균형하게 위치할 때 트래픽 비중을 보정할 수 있으며, 트래픽을 분산하는 기준이 가용 영역이 아닌 대상 그룹에 속한 자원을 기준으로 균일한 비중의 로드 밸런싱을 수행할 수 있음

 - 비활성화 시와 동일하게 가용 영역별로 인스턴스 수량이 불균형한 환경에서 가용 영역별로 50:50 비중으로 트래픽을 전달한다고 가정할 때, 대상 자원의 비율에 따라 가용 영역을 교차하기 때문에 각 10의 비중을 맞추어 균일하게 로드 밸런싱함

 - 교차 영역 로드 밸런싱 활성화하면 가용 영역과 무관하게 대상 자원의 비율을 고려하여 가용 영역을 교차할 수 있어 좀 더 효율적으로 로드 밸런싱을 할 수 있음

 

 

* Amazon ELB 종류

- 트래픽의 프로토콜 종류나 서비스의 목적과 대상에 따라 네 가지로 분류할 수 있음

구분 CLB ALB NLB GWLB
주요 특징 EC2-Classic을 대상으로 트래픽을 부하분산 처리하는 로드 밸런서 HTTP와 HTTPS에 대한 트래픽을 부하분산 처리하는 OSI 7계층의 로드 밸런서 TCP와 UDP에 대한 트래픽을 부하분산 처리하는 OSI 4계층 로드 밸런서 VPC 내부 라우팅으로 서드 파티의 방화벽/어플라이언스 대상으로 경유하는 트래픽을 부하분산 처리하는 로드 밸런서
유형 4계층, 7계층 7계층 4계층 3계층 게이트웨이,
4계층 로드 밸런서
프로토콜 TCP, SSL/TLS, HTTP,
HTTPS
HTTP, HTTPS, gRPC TCP, UDP, TLS IP
대상 유형 EC2-Classic IP, 인스턴스,
AWS Lambda, 컨테이너
IP, 인스턴스, ALB, 컨테이너 IP 인스턴스
고정 IP 제공 미지원 미지원 지원 미지원
보안 그룹 보안 그룹 미사용  보안 그룹 미사용  보안 그룹 사용  보안 그룹 미사용 

 

 

* CLB(Classic Load Balancer)

- Amazon ELB의 가장 초기에 출시된 로드 밸런서

- 4계층과 7계층 프로토콜을 모두 지원함

- HTTP/HTTPS 요청에 따른 최신 HTTPv 1.2 프로토콜과 TCP의 SSL/TLS 암호화 프로토콜도 지원하며, SSL인증서를 사용

- 고정 IP 주소를 사용하여 로드 밸런서를 생성하고, 로드 밸런서에 대한 DNS 이름으로 액세스 할 수 있음

- 서버의 기본 주소가 변경되면 로드 밸런서를 새로 생성해야 하며, 기능적인 한계 때문에 포트나 헤더 같은 데이터를 수정하거나 변경할 수 없는 등 제약 사항이 있기 때문에 서버의 구성과 아키텍처가 커지고 복잡해져 비용이 증가함

- 현재는 NLB와 ALB 같은 새로운 로드 밸런서로 대체하여 사용하는 추세이며, 레거시 서비스로 분류됨

 

 

* ALB(Application Load Balancer)

- AWS에서 제공하는 L7 로드 밸런서

- HTTP/HTTPS 같은 웹 애플리케이션 프로토콜을 지원함

- ALB는 대상 그룹 단위로 트래픽을 분산하며, 각 대상 그룹은 ALB가 요청을 전달할 EC2 인스턴스, 람다 함수, 컨테이너 및 IP 주소로 라우팅하는 기능을 제공함

- 웹 애플리케이션에 특화된 세밀한 라우팅을 제어할 수 있어 웹 애플리케이션을 위한 로드 밸런서로 사용함

- Lambda를 대상 그룹 지정할 수 있음

 

[특징]

- HTTP 헤더를 확인하여 다양한 라우팅 기능을 제공함

 1) 경로 기반 라우팅 : URL 경로를 기반으로 요청을 분산함

 2) 호스트 기반 라우팅 : 호스트 이름을 기반으로 요청을 분산함

 3) 쿼리 문자열 기반 라우팅 : URL 쿼리 문자열을 기반으로 요청을 분산함

- 오토 스케일링과 함께 사용하여 확장성 있는 애플리케이션을 구성할 수 있음

- 대상 그룹 내 인스턴스에 대해 상태 검사를 수행하고, 문제가 발생하면 자동으로 장애 조치를 취할 수 있음

- Amazon CloudWatch Logs와 통합되어 로그 및 지표 데이터를 수집하고 모니터링 및 분석할 수 있음

 

 

* NLB(Network Load Balancer)

- AWS에서 제공하는 L4 로드 밸런서로, TCP, UDP, TLS 프로토콜을 지원함

- NLB는 ALB와 다르게 클라이언트와 로드 밸런서 간 연결을 TCP 레벨에서 유지하므로 대규모 트래픽을 처리할 수 있음

- 이를 위해 높은 처리량, 초당 연결 수, 대역폭 등 기능을 제공하며 동일한 IP 주소에서 여러 대상 그룹을 지원할 수 있음

- 대규모 네트워크 트래픽을 처리하고 대상 그룹의 대상이 IP 주소로 식별될 때 유용함

- AWS에서 제공하는 다른 로드 밸런서보다 높은 처리량과 빠른 응답 시간을 보장하므로 게임 서버, VoIP 서비스, 미디어 스트리밍에 사용

- 고정 IP 사용할 수 있음

 

[특징]

 1) 높은 처리량 : 초당 수백만 개의 연결을 처리함

 2) 빠른 응답 시간 : 빠른 응답 시간을 위해 최적회된 L4 로드 밸런싱 알고리즘 사용

 3) 높은 가용성 : 여러 가용 영역에서 인스턴스를 실행하고 매우 빠른 인스턴스 검색을 수행하여 신속하게 장애를 복구함

 4) IP 주소 보존 : 클라이언트 IP 주소를 원래 IP 주소로 보존할 수 있음

                           클라이언트 IP 주소를 유지하면서 로드 밸런싱을 수행할 수 있음을 의미함

 5) 모니터링 : AWS CloudTrail, Amazon CloudWatch Logs 같은 모니터링 기능을 지원함

 

 

* GWLB (GateWay Load Balancer)

- 네트워크 트래픽을 서드 파티의 방화벽/어플라이언스 장비로 부하분산 처리하는 로드 밸런서

- 사용 시 서드 파티의 방화벽/어플라이언스 장비를 쉽게 배포하고 확장 및 관리할 수 있음

- 요청에 따라 트래픽을 확장하거나 축소하면서 다수의 서드 파티 장비에 로드 밸런싱을 처리함

- VPC 내에서 실행되는 애플리케이션의 가용성과 확장성을 향상시키는데 사용되며, TCP 및 UDP 프로토콜을 지원하여 다양한 유형의 애플리케이션에 유연하게 적용할 수 있음

 

'개인공부 > AWS' 카테고리의 다른 글

[AWS] 데이터베이스 서비스  (0) 2024.01.25
[AWS] 스토리지 서비스  (0) 2024.01.25
[AWS] AWS 네트워킹  (0) 2024.01.21
[AWS] 네트워킹 기초 정리  (0) 2024.01.21
[AWS] Amazon CloudWatch 이메일 경보 설정 방법  (0) 2024.01.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함