AWS/Service

로드밸런서(ELB)

jih0ssang 2023. 10. 22. 16:33

온프레미스

13.246.100.25:80 으로 요청이 들어오면

13.246.100.41:80 또는 13.246.100.82:80 으로 분산한다.

 

이와 같은 서버의 포트 분산 기능은 4계층 이상에서 처리할 수 있으므로,

최소 L4(부하분산) 혹은 L7(HTTP) 스위치가 필요하다.

 

L4 스위치

- 외부망(인터넷망)과 내부망 분리 가능

- L4 스위치에 Public IP를 할당하고, 하위 물리 서버는 Private IP를 할당한다.

- 인터넷 트래픽은 Public IP로 L4 스위치에 접근해 Private IP로 물리 서버에 도달한다.

 

분산 방식

1) 라운드 로빈

- 순차적으로 분산

2) 해시(Hash)

- 클라이언트의 IP 주소를 기억해서 특정 클라이언트의 IP로 들어오는 트래픽은 고정 서버에게 전달. 항상 같은 서버에서 처리

3) Least Connection(최소 연결)

- 현재 연결이 적은 서버에게 트래픽 전달

 

L4 스위치 SLB 흐름도

L4 스위치에 2개의 가상 서버를 둬, 클라이언트 요청을 리슨한다.

가상 서버의 vport(80, 6800)는 리얼 서버의 rport(30080, 18600)와 상이하게 설정한다.

 

트래픽 요청과 분산 경로

 

  L4 / L7 스위치 ELB
요청 수신 가상 서버(Virtual Server) ELB의 IP + 리스너(Listener)
가상 서버(리스너) 구성 요소 가상 IP와 프로토콜, 포트 리스너의 프로토콜, 포트
VIP 개수 가상 서버당 1개 ELB당 1개 도메인
포함 관계 가상 서버의 모음 < L4 스위치 리스너의 모음 < ELB
요청 전달 대상 대상 그룹(Target Group)  대상 그룹
요청 분산 대상 리얼 서버 IP + 리얼 서버의 프로토콜과 포트 대상(Target) + 대상의 프로토콜과 포트

L4 스위치는 내부에 가상 서버(가상 IP)를 여러 개 만들 수 있다.

AWS는 ELB 다중화가 불가능하며, 여러 ELB를 생성하는 것으로 대체 가능하다.

 

ELB 유형

1) ALB

2) NLB

3) CLB

4) GWLB

ELB 흐름도 비교

특징

  • ALB, CLB만 보안 그룹을 사용한다.
  • ALB는 L7, NLB는 L4를 지원한다.
  • ALB의 대상 그룹 유형은 인스턴스, IP, Lambda
  • NLB의 대상 그룹 유형은 인스턴스, IP, ALB 이다.
  • GWLB는 IPS, 방화벽 같은 어플라이언스 장비를 대상으로 로드밸런싱한다. 트래픽의 최종 목적지가 아니다.

 

ENI 생성

  • ELB 생성과 동시에 ELB용 ENI가 생성된다.
  • NLB는 1개 이상, ALB는 반드시 2개 이상의 AZ를 선택해야 한다.
  • ELB 생성과 동시에 ELB용 ENI가 생성된다.
  • ELB의 실제 역할은 각 가용 영역의 서브넷에 할당된 로드밸런서 노드가 수행한다.
  • ALB 및 NLB 의 ENI를 둘 서브넷은 최소 IP 8개 여유 확보가 되어있는 서브넷이어야 한다.
  • 여유가 있다면 그 이후에 LB를 몇 개 생성하든 무방하다.
  • 인터넷 경계(외부용)이든 내부든 용도에 상관없이 LB 생성 이전에 IP 8개의 여유가 있는 서브넷이어야 한다.
  • 이것을 로드밸런서 노드라 한다.

 

NLB만 고정 IP가 있는 이유

사실 ELB는 대상 그룹 서브넷에 노드를 배치하고 노드에게 분산을 전달하는 역할이다.

ex) 대상이 없는 대상 그룹에 ALB 생성 시 

ALB는 로드밸런싱 대상이 없음을 인지하고 랜덤 AZ 중 한 곳에만 노드 생성하고, 부하가 늘어나면 다른 곳에도 생성한다.

NLB는 무조건 모든 AZ에 노드를 생성한다. 그래서 IP 변동(노드 변동)이 없으므로 탄력적 IP를 할당 가능하다.

 

 

대상그룹 Health Check

대상 그룹의 Health Check를 healthy로 만들기 위해서는

대상 그룹에 속해있는 서버에 리스너포트(ex. 80)로 돌고 있는 프로세스가 존재해야 한다.

 

'AWS > Service' 카테고리의 다른 글

Account (Multi-Account 통합 로그인)  (1) 2023.10.27
온프레미스와 연결(TGW or VGW ↔ DX)  (0) 2023.10.22
보안그룹 및 NACL  (0) 2023.10.22
RDS  (0) 2023.10.22
인스턴스 유형  (0) 2023.10.22