배경
- 서버에 많은 클라이언트의 요청을 응답하기 어려울 경우, 문제해결 방법으로는 크게 두가지가 있다.
- scale-up : 서버가 더 빠르게 동작하도록 단일서버의 하드웨어의 성능을 올리는 방법
- scale-out : 하나의 서버보다는 여러대의 서버가 나눠서 일을 하는 방법. 무중단서비스를 재공할 수 있다.
- 로드밸런서는 이 중 scale-out에 관한 방법이다.
정의
- 클라이언트의 요청에 대하여 각각 서버의 부하,속도저하를 고려하여 적절히 분산처리해주는 것을 말한다.
- 트래픽을 여러대의 서버에 균등하게 분산시켜주는 역할을 한다.
분산방식
- Round Robin라운드로빈
- 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식을 말한다.
- Least Connections최소 연결 방식
- 연결개수가 가장 작은 서버를 선택하는 방식
- 트래픽으로 인하여 하나의 세션이 길어지는 경우 권장하는 방식
- IP해시방식 Source
- 사용자의 IP를 Hashing하여 분배하는 방식
- 사용하는 항상 같은서버로 연결된다.
분류
- L2 : Mac Address를 기반으로 Load Balancing
- L3 : IP주소를 기반으로 Load Balancing
- L4 : Transport Level(전송계층 ex>TCP, UDP)에서 Load Balancing.
- L7 : Application Layer Level(HTTP Request)에서 Load Load Balancing.
부가기능
- NAT
- 사설IP주소를 공인IP주소로 바꾸는데 사용하는 통신망의 주소변조기
- Tunneling
- 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념
- 데이터를 캡슐화하여 연결된 상호간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다.
- DSR
- 로드 밸런서 사용시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP주소가 아닌 클라이언트의 IP주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념