로드 밸런싱(Load Banlancing)
개념
- 용어의 의미 그대로 Network나 Server의 Load를 분산해주는 기술을 말함
- 중앙처리 장치나 저장장치와 같이 Resource에게 작업을 나누는 것을 의미함
필요성
제공하는 서비스의 고객이 적다면 서버 한대만으로도 큰 문제 없이 운영할 수 있다. 하지만 고객의 수가 많아지고 서비스가 확장되게 되면 기존에 운영중이던 한대의 서버만으로는 정상적으로 운영이 힘들 수 있게 된다. 이와 같이 트래픽이 증가하게 되는 경우 대처 방법은 크게 두가지이다.
- Scale-Up : 기존 사용중이던 서버 자체의 성능을 확장하는 방법
- Scale-Out : 서버를 두 대 이상 증설하여 운영하는 방법. 이 방법의 경우에 증설한 여러대의 서버로 트래픽을 분산해줄 수 있는 Load Balancing이 필요함
로드 밸론서(Load Balancer)
개념
- 로드 밸런싱(Load Balancing) 기술을 제공하는 서비스나 장치
- 클라이언트 - 트래픽이 집중되는 서버나 네트워크 사이에 위치
종류
- L4 Load Balancing
- 전송 계층에서 로드를 분산함
- IP 주소, Port 번호, MAC 주소 등에 따라 트래픽을 나누고 분산처리가 가능함
- CLB(Connection Load Balancer) 또는 SLB(Session Load Balancer)라고도 함
- L7 Load Balancing
- 어플리케이션 계층에서 로드를 분산함
- OSI 7계층의 프로토콜(HTTP, SMTP, FTP 등)을 바탕으로 분산 처리가 가능
로드밸런싱 알고리즘
종류 및 개념
- 라운드로빈 방식(Round Robin Method)
- 서버에 들어온 순서대로 배정하는 방식
- 클라이언트의 요청을 순서대로 분배하기 때문에 운영중인 서버가 동일한 스펙을 가지고 있고 Session이 오래 지속되지 않는 경우에 적합
- 가중 라운드로빈 방식(Weighted Round Robin Method)
- 운영중인 각각의 서버에 가중치를 메기고 가중치가 높은 서버에 우선 배분하는 방식
- 각 서버의 트래픽 처리 능력이 상이한 경우에 적합 예) A 서버가 3, B 서버가 1 이라는 가중치를 가지고 있다면 로드밸런서가 라운드로빈 방식으로 A 서버에 3개, B 서버에 1개의 요청을 전달
- IP 해시 방식(IP Hash Method)
- 클라이언트의 IP 주소와 특정 서버를 매핑(Mapping)하여 처리하는 방식
- 사용자의 IP를 Hashing(임의의 길이의 데이터를 고정된 길이의 데이터로 Mapping)하여 로드를 분배하기 떄문에 사용자는 항상 동일한 서버로 연결됨
- 최소 연결 방식(Least Connection Method)
- 요청이 들어온 시점에 가장 적은 연결 상태를 가진 서버로 트래픽을 배분하는 방식
- Session이 길어지거나 서버에 분배된 트래픽이 일정하지 않은 경우에 적합
- 최소 응답시간 방식(Least Response Time Method)
- 서버의 현재 연결상태와 응답시간(Response Time)을 모두 고려하여 트래픽을 배분하는 방식
- 가장 적은 연결상태와 응답시간을 보이는 서버에 배분
참고 글
'CS 및 IT 일반' 카테고리의 다른 글
쿠버네티스(kubernetes)란? (0) | 2023.08.23 |
---|---|
XSS(Cross-Site Scripting) (0) | 2023.08.07 |
Cookie와 Session (0) | 2023.08.07 |