본문 바로가기
CS/Network

[네트워크] 로드 밸런싱(Load Balancing)

by 테리는당근을좋아해 2020. 6. 29.

로드 밸런싱(Load Balancing)

- 서버에 가해지는 부하를 분산해주는 장치 또는 기술

- 클라이언트와 서버풀 사이에 위치해 한 대의 서보로 부하가 집중되지 않도록 트래픽을 관리

- 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 관리

- 스케일 아웃으로 시스템 확장을 했다면, 반드시 동반되어야하는 기술

 

1) 로드 밸런싱 알고리즘

(1) 라운드 로빈 방식(RR, Round Robin)

- 서버에 들어온 요청을 순차적으로 배정

- 각 서버가 동일한 스펙을 가지고 있고, 세션이 오래 지속되지 않는 경우에 적합

 

(2) 가중 라운드로빈 방식(Weighted Round Robin)

- 각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 우선적으로 배정

- 각각의 서버의 트래픽 처리 속도가 상이한 경우에 적합

 

(3) IP 해시 방식(IP Hash)

- 클라이언트의 IP 주소를 해시 함수를 통해 특정 서버에 매핑

- 사용자가 항상 동일한 서버로 연결되는 것을 보장

 

(4) 최초 연결 방식(Least Connection)

- 요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 우선적으로 배정

- 서버에 분배된 트래픽이 일정하지 않은 경우 적합

 

(5) 최소 응답시간 방식(Least Response Time)

- 서버의 현재 연결 상태와 응답시간을 모두 고려해 트래픽 배분

 

2) 로드 밸런서 종류

- OSI 7 계층에 따라 L1 로드밸런서부터 L7로드 밸런서까지 존재

- L4 로드밸런서부터 포트 정보를 바탕으로 로드를 분산하는 것이 가능하므로 L4와 L7이 가장 많이 활용

- 한 대의 서버에 다수의 서버 프로그램을 운영하는 경우 최소 L4 이상의 로드밸런서를 사용해야함

 

(1) L4 로드밸런서

- 네트워크 계층(IP)이나 전송 계층(TCP, UDP)의 정보를 바탕으로 로드 분산

- IP 주소, 포트번호, Mac 주소, 전송 프로토콜에 따라 로드 분산

(+) 데이터를 확인하지 않고 패킷레벨에서만 로드를 분산하기 때문에 빠르고 효율적

(+) 데이터의 내용을 복호화할 필요가 없으므로 안전

(+) 저렴

(-) 섬세한 라우팅 불가

(-) 사용자의 IP가 수시로 바뀌는 경우 연속적인 서비스 제공 불가

 

(2) L7 로드 밸런서

- 애플리케이션 계층(HTTP, FTP, SMTP)에서 로드를 분산

- HTTP 헤더, 쿠키 등과 같은 사용자 요청을 기준으로 특정 서버에 트래픽 분산 가능

- 즉, 패킷의 내용을 확인하고, 그 내용에 따라 로드를 분산 가능

(+) 클라이언트의 요청을 보다 세분화해 서버에 전달

(+) 캐싱 기능 제공

(+) DOS같은 비정상적인 트래픽을 필터링할 수 있어 안전성이 높음

(-) 패킷 내용을 복호화 해야하므로 높은 비용

(-) 클라이언트와 로드밸런서가 인증서를 공유해야하기 때문에 보안상의 위험이 존재

 

 

댓글