-
로드밸런서(Load Balancer)란??Computer Science/Network 2020. 9. 30. 23:22
- 동시에 수천만의 사용자가 하나의 서버에 요청을 한다면 서버가 다운될 수 있다.
두 가지 해결방법 존재
서버의 성능을 올리던가 = Scale-up
여러대의 서버를 둬서 나눠서 일을 하던가 = Scale-out
Load Balancing이란?
- 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리하여 해결해주는 서비스
* 사전 개념*
네트워크 구조에 상관없이 개방형으로 통신할 수 있는 국제 표준 모델이 OSI 7layer입니다.
L1~ L7 까지 나뉘어져있고 L4 장비 등의 말이 여기서 유래된 것입니다.
L1 은 '랜선' 등의 장비를 의미하는 것이고 L2는 'Mac address', L3는 'IP'를 의미한다고 볼 수 있습니다.
Mac 과 IP의 차이점을 먼저 보겠습니다.
모든 사용자가 하나의 네트워크상에 있다면 Mac 주소만으로 다른 사용자를 찾아갈 수 있습니다. 이를 담당하는 장비가 스위치입니다. 그러나, 우리가 사용하는 인터넷은 수많은 외부 네트워크와 통신하고 있습니다. 스위치만 사용하게 되면 오직 장비간의 통신만 가능할 뿐이지 네트워크간의 통신은 불가능합니다. 그래서 나온것이 '라우터'입니다.
라우터는 네트워크간의 통신이 가능하여 외부 다른 네트워크와 통신할 때 사용합니다.
즉, 스위치는 들어온 신호를 내부망 안에서 전달할 수 있는 장비라면
라우터는 들어온 신호를 내부망과 외부망 모두에게 보낼 수 있는 장비입니다.
네트워크 로드밸런서 종류
L2 - Mac주소를 바탕으로 Load Balancing
L3 - IP주소를 바탕으로 Load Balancing
L4 - Transport Layer(IP와 Port) Level에서 Load Balancing , TCP UDP
L7 - Application Layer(사용자의 Request) Level에서 Load Balancing. HTTP, HTTPS, FTP
로드밸런서 동작 과정 ( L4의 경우 )

1. 클라이언트가 브라우저에 도메인 입력(e.g. abc.co.kr)
PC에 설정된 Local DNS 서버로 DNS Query
Local DNS 서버는 abc.co.kr을 관리하는 DNS 서버에 DNS Query, L4의 VIP주소 획득
2. Local DNS는 획득한 VIP 주소를 Client에게 전송
3. 획득한 DNS를 기반으로 L4 VIP로 http 요청
4. L/B 장비는 내부 알고리즘 (라운드 로빈 등)을 통해 최적의 서비스 서버를 선별하여 요청을 전송하며 서버는 작업 결과를 L/B 장비로 전송
5. 전달받은 서버 작업 결과 L/B 장비 통해 Client로 전송하여 요청 처리 완료
로드밸런서 알고리즘 종류
- Round Robin
- 단순히 Round Robin으로 분산하는 방식입니다.
- Least Connections
- 연결 개수가 가장 적은 서버를 선택하는 방식입니다.
- 트래픽으로 인해 세션이 길어지는 경우 권장하는 방식입니다.
- Source
- 사용자의 IP를 Hashing하여 분배하는 방식입니다.
- 사용자는 항상 같은 서버로 연결되는 것을 보장합니다.
- Weighted Least Connections(가중치 최소접속방식)
- 서버에 부여된 Weight 값을 기반으로 Connection 수의 개수와 같이 고려하여 할당 - Fastest Response Time(응답시간방식)
- 가장 빨리 응답하는 서버에 이용자 요구를 연결하는 방법. 응답시간은 각 서버가 패킷 형태의 요구를 송수신하는데 걸리는 시간을 측정한 것이다. - Adaptive(최소대기방식)
- Open또는 Pending(계류중인) 커넥션을 적게 가지고 있는 서버로 네트웍 커넥션 방향을 지정한다. Pending 커넥션은 Full TCP Handshake를 완성하지 않은 것으로, 이것은 초당 클라이언트 Thread의 수가 증가할 때 더욱 잘 수행된다.
단순하게 한가지 알고리즘만 선택하지 않고 Least Connection 알고리즘 선택 후 동등한 수의 Connection일 경우 Round Robin을 선택하는 방식으로 결합하여 사용
로드밸런서가 장애가 일어났을 경우
- 로드밸런서를 이중화하여 장애를 대비함
- 이중화된 Load Balancer들은 서로 Health Check를 합니다.
- Main Load Balancer가 동작하지 않으면 가상IP(VIP, Virtual IP)는 여분의 Load Balancer로 변경됩니다.
- 여분의 Load Balancer로 운영하게 됩니다.
참고 및 출처
'Computer Science > Network' 카테고리의 다른 글
TCP Keepalive 와 HTTP Keepalive (0) 2024.02.10 TCP 소켓 옵션 (0) 2023.01.28 TCP의 혼잡제어 (0) 2020.10.06 TCP의 흐름제어, 오류제어 (0) 2020.10.03 - Round Robin