학습 목표
· 로드 밸런서란?
· 사용 이유
· 다양한 종류의 로드밸런서
· 다양한 로드밸런싱 알고리즘
- 라운드로빈
- 가중 라운드로빈
- IP 해시
- 최소 연결
- 최소 요청 시간
로드 밸런서란?
· 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭한다.
· 서버가 요청을 처리할 수 있는지 확인하기 위해 서버에 지속적인 상태 확인을 수행한다.
- 필요한 경우 비정상 서버가 복원될 때까지 풀에서 제외한다.
· 증가하는 부하에 대응하기 위해 새로운 가상화 애플리케이션 서버 생성을 트리거하기도 한다.
· 전통적으로 로드 밸런서는 하드웨어 기기로 구성되어 왔지만, 점점 소프트웨어 기반으로 되고 있다.
사용 이유
· 시스템을 확장하는 방법 중 스케일 업 보다 스케일 아웃이 더 저렴하기 때문이다.
ex) 사용자 5천 명의 요청을 동시에 처리하는 서버는
사용자 천 명의 요청을 동시에 처리하는 서버 보다 5배가 아니라 훨씬 비싸다.
따라서 작은 장비를 여러 대 묶어 사용하는 확장 방법이 선호된다.
다양한 종류의 로드밸런서
· 로드밸런서는 OSI 7 계층 중 어떤 레이어에서 수행되는가에 따라 종류가 나뉜다.
OSI 7계층
계층 | TCP/IP | OSI Model | 역할과 기능 | 프로토콜 |
7 Layer | 응용계층 (Application) |
응용계층 (Application) |
사용자와 네트워크 간의 연결, 데이터 생성 |
HTTP, SMTP, FTP, NFS, Telnet |
6 Layer | 표현계층 (Presentation) |
데이터 형식규정 | JPEG, MPEG, CDR, SMB, AFP | |
5 Layer | 세션계층 (Session) |
인증 및 서비스 제공 | TLS, SSH, ISO 8327, RPC | |
4 Layer | 전송계층 (Transport) |
전송계층 (Transport) |
프로세스 간의 데이터 전송 | TCP, UDP, RTP, SCTP, SPX |
3 Layer | 네트워크계층 (Network) |
네트워크계층 (Network) |
데이터 경로설정(스위칭, 라우팅) | IP, ICMP, ARP, BGP, IPX |
2 Layer | 네트워크엑세스계층 (Network Access) |
링크계층 (Link) |
네트워크 기기 간의 데이터 전송 | Ethernet, ATM, LAN, Wifi |
1 Layer | 물리계층 (Physical) |
시스템 간 물리적 연결, 전기적 신호변환 |
Model, Cable, Fiber |
OSI 계층에 따른 로드밸런서
종류 | 설명 | 프로토콜 |
L2 | Data Link 계층을 사용, Mac 주소 기반 부하 분산 | |
L3 | Network 계층을 사용, IP 주소 기반 부하 분산 | |
L4 | Transport 계층을 사용, Port 기반 부하 분산 | TCP, UDP |
L7 | Application 계층을 사용, HTTP 헤더(URL, 쿠키 등) 기반 부하 분산 | HTTP, HTTPS |
· 상위 계층으로 갈수록 더욱 정교한 로드밸런싱이 가능하다.
· 부하 분산에는 L4와 L7 로드밸런서가 가장 많이 활용된다.
L4 로드밸런서부터 포트정보를 바탕으로 로드를 분산하는게 가능하기 때문이다.
· L7 로드밸런서는 특정한 패턴을 지닌 바이러스를 감지해 네트워크를 보호할 수 있고,
DoS/DDOS 같은 비정상적인 트래픽을 필터링할 수 있어 네트워크 보안 분야에도 활용된다.
예시 - port 기반의 L4 로드밸런싱
예시 - URL 기반의 L7 로드밸런싱
다양한 로드밸런싱 알고리즘
라운드로빈 (Round Robin)
· 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식
· 여러 대의 서버가 동일한 스펙을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우 활용하기 적합하다.
가중 라운드로빈(Weighted Round Robin)
· 각각의 서버마다 가중치를 매기고 가중치가 높은 서버의 요청을 우선적으로 배분하는 방식
· 서버의 트래픽 처리 능력이 상이한 경우 활용하기 적합하다.
IP 해시 (IP Hash Method)
· 클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
· 사용자의 IP를 해싱(임의의 길이를 지닌 데이터를 고정된 길의 데이터로 매핑하는 것)해 로드를 분배하므로
사용자가 항상 동일한 서버로 연결되는 것을 보장한다.
최소 연결(Least Connection Method)
· 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 배분하는 방식
· 자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우 적합한 방식
최소 요청 시간(Least Respnse Time Method)
· 서버의 현재 연결 상태와 응답시간을 모두 고려하여 트래픽을 배분하는 방식
· 가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 로드를 배분한다.
출처
https://deveric.tistory.com/91
https://dev.classmethod.jp/articles/load-balancing-types-and-algorithm/
https://post.naver.com/viewer/postView.nhn?volumeNo=27046347&memberNo=2521903
https://post.naver.com/viewer/postView.nhn?volumeNo=27612269&memberNo=2521903
'네트워크' 카테고리의 다른 글
HTTP 0.9 , HTTP 1.0, HTTP/1.1, HTTP/2의 차이점 (0) | 2022.01.23 |
---|---|
TCP vs UDP (0) | 2022.01.23 |
분산 서버 환경에서 세션 공유 문제 해결하기 (0) | 2021.11.29 |
REST란? REST API란? 일반적인 HTTP API가 REST API가 아닌 이유 (0) | 2021.11.10 |
[Chrome] Chrome 브라우저 NET :: ERR_CERT_INVALID (인증서)문제 해결 (0) | 2020.11.12 |
댓글