로드 밸런싱(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같은 비정상적인 트래픽을 필터링할 수 있어 안전성이 높음
(-) 패킷 내용을 복호화 해야하므로 높은 비용
(-) 클라이언트와 로드밸런서가 인증서를 공유해야하기 때문에 보안상의 위험이 존재
'CS > Network' 카테고리의 다른 글
[네트워크] CDN과 ADN (0) | 2020.06.29 |
---|---|
[네트워크] 스케일 업(Scale-Up)과 스케일 아웃(Scale-Out) (0) | 2020.06.28 |
[네트워크] Web Server와 WAS (3) | 2020.06.28 |
[네트워크] Spoofing / Sniffing / Snooping (0) | 2020.06.28 |
[네트워크] 웹 크롤링과 웹 스크래핑 (2) | 2020.06.28 |
댓글