▼ Why ?
동아리 스터디에서 선배가 백엔드와 클라이언트 사이에 전반적인 흐름에 대해서 설명하는 시간을 가졌는데, 거기서 알게 된 여러 개념들 중 로드 밸런싱이라는 것에 대해선 따로 공부해보는 것이 좋을 것 같다는 생각이 들어 정리해보게 되었다.
▼ 로드 밸런싱이 필요한 이유 ?
- 서비스 사업의 규모가 확장되면 확장될수록 클라이언트의 수 ⇈
➜ 기존에 관리하던 하나의 서버로는 정상적인 서비스가 불가능
이러한 문제를 해결하기 위한 방법
- Scale-up : 서버 자체의 성능을 향상시키는 방법
- Scale-out : 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설하여 운영하는 방법
➜ 이때 Scale-out에 해당하는 기술 바로 "Load Balancing"
▼ Load Balancing
- 서버가 처리해야할 업무 또는 요청(Load)을 여러대의 서버로 분산 (Balancing) 처리하는 기술
- 하나의 서버로 부하가 집중되지 않도록 부하 분산을 위해서 가상 IP를 통해 여러 서버에 접속하도록 분배

▼ Load Balancing 기법
Round Robin Method ( 라운드로빈 방식 )
- 클라이언트로부터 받은 요청을 Load balancing 대상 서버에 순서대로 할당하는 방식
Weighted Round Robin Method ( 가중 라운드로빈 방식 )
- 가중치가 높은 서버에 우선적으로 요청을 배정하는 방식
- 서버의 트래픽(Traffic) 처리 능력이 다른 경우 사용
IP Hash Method ( IP 해시 방식 )
- 클라이언트 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
- 사용자의 IP를 Hashing(임의의 길이의 데이터를 고정된 길이의 데이터로 매핑)하여 로드(Load)를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장
Least Connection Method ( 최소 연결 방식 )
- 요청이 들어온 시점에서 가장 적은 연결 상태를 보이는 서버에 우선적으로 트래픽(Traffic) 을 배정하는 방식
- 자주 세션이 길어지거나, 서버에 분배된 트래픽(Traffic) 들이 일정하지 않은 경우 적합
Least Response Time Method ( 최소 응답 시간 방식 )
- 서버의 현재 연결 상태와 응답 시간(Response Time)을 모두 고려하여 트래픽(Traffic)을 배분
- 가장 적은 연결 상태와 가장 짧은 응답 시간을 보이는 서버에 로드를 배분
▼ Why ?
동아리 스터디에서 선배가 백엔드와 클라이언트 사이에 전반적인 흐름에 대해서 설명하는 시간을 가졌는데, 거기서 알게 된 여러 개념들 중 로드 밸런싱이라는 것에 대해선 따로 공부해보는 것이 좋을 것 같다는 생각이 들어 정리해보게 되었다.
▼ 로드 밸런싱이 필요한 이유 ?
- 서비스 사업의 규모가 확장되면 확장될수록 클라이언트의 수 ⇈
➜ 기존에 관리하던 하나의 서버로는 정상적인 서비스가 불가능
이러한 문제를 해결하기 위한 방법
- Scale-up : 서버 자체의 성능을 향상시키는 방법
- Scale-out : 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설하여 운영하는 방법
➜ 이때 Scale-out에 해당하는 기술 바로 "Load Balancing"
▼ Load Balancing
- 서버가 처리해야할 업무 또는 요청(Load)을 여러대의 서버로 분산 (Balancing) 처리하는 기술
- 하나의 서버로 부하가 집중되지 않도록 부하 분산을 위해서 가상 IP를 통해 여러 서버에 접속하도록 분배

▼ Load Balancing 기법
Round Robin Method ( 라운드로빈 방식 )
- 클라이언트로부터 받은 요청을 Load balancing 대상 서버에 순서대로 할당하는 방식
Weighted Round Robin Method ( 가중 라운드로빈 방식 )
- 가중치가 높은 서버에 우선적으로 요청을 배정하는 방식
- 서버의 트래픽(Traffic) 처리 능력이 다른 경우 사용
IP Hash Method ( IP 해시 방식 )
- 클라이언트 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
- 사용자의 IP를 Hashing(임의의 길이의 데이터를 고정된 길이의 데이터로 매핑)하여 로드(Load)를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장
Least Connection Method ( 최소 연결 방식 )
- 요청이 들어온 시점에서 가장 적은 연결 상태를 보이는 서버에 우선적으로 트래픽(Traffic) 을 배정하는 방식
- 자주 세션이 길어지거나, 서버에 분배된 트래픽(Traffic) 들이 일정하지 않은 경우 적합
Least Response Time Method ( 최소 응답 시간 방식 )
- 서버의 현재 연결 상태와 응답 시간(Response Time)을 모두 고려하여 트래픽(Traffic)을 배분
- 가장 적은 연결 상태와 가장 짧은 응답 시간을 보이는 서버에 로드를 배분