10.1 서버 로드밸런싱(SLB) 개요
- 분산 제어란 클라이언트 요청을 수신한 서버가 그 요청 트래픽을 다시 여러 서버로 분산해 전달함을 의미한다. 그런데 트래픽을 왜 분산할까?
- 단일 서버의 처리량(Capacity)을 초과한 대량 요청 트래픽은 속도 저하나 서비스 지연 또는 장애를 유발한다. 이 상황을 대비해 부하를 다수 서버로 분산하는 것이다. 이를 서버 로드밸런싱이라 한다.
- 온프레미스의 SLB 제어: L4 스위치
- 부하를 분산한다는 것은 클라이언트 요청을 어디선가 수신하고 있다는 뜻이다. 그리고 그 요청을 여러 서버가 나누어 처리하도록 배분해야 한다.
- 이와 같이 클라이언트 트래픽을 가장 처음 수신하는 서버를 가상 서버라고 한다.
- 가상 서버는 가상 IP와 가상 포트로 구분된다.
- 요청을 받은 가상 서버는 웹이 구동 중인 2개의 리얼 서버와 리얼 포트 쌍으로 부하를 분산한다.
- 이때 리얼 서버 두 대는 웹 페이지 요청을 처리할 Nginx나 Apache 등의 웹 서버를 구동해 80 포트를 리슨하고 있을 것이다.
- 가상 서버의 포트 분산 기능은 4계층 이상에서 처리할 수 있다.
- 네트워크 상위 계층 장비는 하위 계층 기능을 수행할 수 있다. 따라서 부하 분산과 더불어 HTTP와 같은 애플리케이션 프로토콜 헤더 분석이 필요하면 L7 스위치를 사용하고 헤더 분석 필요 없이 IP와 단순 포트 쌍을 단순히 분산한다면 L4 스위치를 사용한다.
- 두 스위치 모두 4계층 레벨을 기반으로 트래픽을 처리하므로 대표해 L4 스위치라 부르기도 한다.
- L4 스위치의 특징
- 내부에 다수 가상 서버 생성 가능
- 스위치를 경계로 외부망과 내부망 분리 가능
- 가상 서버가 트래픽을 분산하는 리얼 서버의 모음을 대상 그룹(Target Group)이라고 한다.
- vport와 rport가 서로 달라도 된다.
- 부하 분산 방식이 다양하고 대상 그룹마다 분산 방식을 택할 수 있다.
- 라운드 로빈
- IP 해시
- Least Connection
- L4 스위치 Config 예시: Alteon
10.2 AWS의 SLB 제어: 로드밸런서(ELB)
- L4 스위치 vs. 로드밸런서(ELB)
- ELB 학습 순서
- ELB 4개 유형을 한 눈에 살펴보고 비교한다.
- ELB를 경계로, 로드밸런싱 처리부와 요청 수신부로 나눠서 파악한다.
- ELB 유형 비교: ALB, NLB, CLB, GWLB
- 애플리케이션 로드밸런서
- 네트워크 로드밸런서
- 클래식 로드밸런서
- 게이트웨이 로드밸런서
- ELB 유형 특징
- ALB와 CLB만 SG 사용
- CLB는 대상 그룹을 사용하지 않음
- ALB는 L7, NLB는 L4, 그리고 CLB는 L4와 L7 모두 지원
- ALB, NLB, CLB의 목적은 ELB에 등록된 대상으로 로드밸런싱 하는 것이다.
- GWLB의 목적도 같지만, 대상이 트래픽의 최종 목적지는 아니다. GWLB는 IPS와 방화벽 같은 어플라이언스로 로드밸런싱한다. 모든 트래픽을 수용한다.
- ALB의 대상 그룹 유형은 인스턴스, IP, Lambda를 지원하고 NLB는 인스턴스, IP, ALB, 그리고 CLB는 인스턴스만 지원한다.
10.3 로드밸런싱 처리부
- ELB 가용 영역과 노드
- ELB의 특징
- ELB 생성과 동시에 ELB용 ENI가 생성된다. 이를 로드밸런서 노드라 한다.
- ELB 중복 구현: 교차 영역 로드밸런싱
- ELB 다중화
- 대상 그룹과 대상
- 가변 노드를 장착한 ELB: ALB, CLB
- NLB 대상 그룹에 ALB 연결하기
- ELB의 특징
10.4 요청 수신부
- ELB 체계와 DNS 이름
- ELB 전용 DNS 이름을 제공한다. DNS 이름만으로 ELB에 접속할 수 있다.
- ELB는 두 가지 요청 유형을 제공한다. 이를 체계라 한다.
- 인터넷 체계
- 인터넷 상의 클라이언트가 IGW를 통과해 ELB로 접속 시 사용한다.
- 내부 체계
- 클라이언트가 IGW를 통과하지 않고 ELB로 접속할 때 사용한다.
- 인터넷 체계
- 리스너
- 리스너는 포트를 열어두고 대기한다.
10.5 요청 수신부터 로드밸런싱 처리까지
- 리스너와 대상 그룹
- ELB 유형마다 사용할 수 있는 리스너 프로토콜이 정해져 있다.
- ELB 유형마다 사용할 수 있는 대상 그룹 유형이 정해져 있다.
- 리스너 프로토콜과 대상 그룹 유형 모두 ELB 유형이 지원해야 한다.
- CLB는 대상 그룹 라우팅이 불가능하다. 인스턴스로만 로드밸런싱 할 수 있다.
- 상태 검사 결과가 ELB에 미치는 영향
- 대상의 정상 여부 점검하는 기능 -> 상태 검사(Health checks)
- 대상 그룹을 지원하는 ALB, NLB, GWLB는 상태 확인 속성으로 확인 가능
- 컴퓨팅 노드와 라우팅 노드 비교
- ENI 유형 차이점(컴퓨팅 ENI, 라우팅 ENI)
- 소스 대상 확인
- 라우팅 ENI는 소스/대상 확인 설정이 해제된 상태로 생성되며 트래픽을 수신하면 데이터 변경 없이 포워딩한다.
- SG 강제 적용
- 컴퓨팅 ENI는 SG를 사용하고, 라우팅 ENI는 사용하지 않는다.
- 컴퓨팅 노드: ALB, CLB
- 라우팅 노드: NLB, GWLB
- 소스 대상 확인
- ENI 유형 차이점(컴퓨팅 ENI, 라우팅 ENI)
10.6 게이트웨이 로드밸런서(GWLB)
- GWLB는 다른 ELB(ALB,NLB,CLB)와 다르게 대상이 클라이언트의 최종 목적지가 아니다.
- 클라이언트의 요청 트래픽은 GWLB가 로드밸런싱하는 대상에 잠깐 들린 후 최종 목적지로 다시 이동한다.
- 예를 들어 클라이언트가 요청하는 트래픽의 접근 제어에 관여할 수 있다.
'⛅ Cloud Study > ☁️ Public Cloud' 카테고리의 다른 글
[GCP] Foundations - 컨테이너 및 Kubernetes 소개 (0) | 2023.08.06 |
---|---|
[GCP] Foundations - Google Cloud (0) | 2023.08.05 |
[AWS VPC] 9장 연결 제어1: VPC 통제 3요소 (0) | 2023.08.03 |
[NCA] 클라우드 핵심 인프라 2 - Network 서비스 (0) | 2023.07.11 |
[NCA] 클라우드 핵심 인프라 1 - Compute 서비스 (0) | 2023.07.10 |