서버 부하 분산의 정의
- 서버 부하 분산(Server Load Balancing)은 외부의 사용자로부터 들어오는 다수의 요청(naver 접속 등)을 서버들에게 적절히 배분하여 서버들로 하여금 요청을 처리케 하는 것
- 분산 처리는 부하 분산 Network Switch 혹은 소프트웨어가 담당
- 외부로부터의 요청을 서버가 직접 받는 것이 아닌 '부하 분산 Network Switch' 혹은 '소프트웨어'가 받은 후 요청 받은 내용을 서버들로 적절히 나누어 주는 것
- 서버 부하 분산을 담당하는 Network Switch를 L4/L7 Switch(Layer 4)라고 부르며 Cloud에서는 Load Balancer라고 부름
- 현업에서는 서버 부하 분산(Server Load Balancing)을 부르기 편하게 로드밸런싱 혹은 LB(Load balancing)라고 부름
서버 부하 분산(Server Load Balancing)의 방법
- 서버에게 부하를 고르게 분산하는 것도 다양한 방법있음
- 서버의 능력을 고려하여 분배해야지 서버가 Down되지 않기 때문에 서버의 상황에 맞춰 적절한 방법을 선택 필요
- 서버의 상황에 맞춰 적절한 방법을 Load Balancing Method이라고 함
1. Round Robin
- Round Robin은 로드밸런서가 다수의 서버에게 순서대로 요청을 할당하는 방법
- 가장 단순한 방법
- 서버군에 차례로 요청을 할당하여 분산함
2. Least Connection
- 로드밸런서가 서버에게 요청을 전달한 뒤, 사용자와 서버가 정상적인 연결을 맺으면 사용자와 서버는 'Connection'을 생성함
- 로드밸런서 또한 중간자로서 Connection 정보를 갖고 있는데 이 Connection 수 정보를 기반으로 가장 Connection이 적은 서버, 즉 부하가 가장 덜한 서버에게 요청을 전달
3. Ratio(가중치)
- 서버의 처리 능력을 고려하여 할당될 수 있는 각 서버가 가질 수 있는 Connection의 비율를 이미 정해둠.
- 서버 부하 분산 비율이 100%라고 했을 때 성능이 가장 떨어지는 서버에게 10%를 나머지 서버 3대에게 각각 30%씩을 할당 가능
4. Fastest(Response Time)
- 응답속도가 가장 빠른 서버에게 우선적으로 할당하는 방식
- Fastest(Response Time)의 예시
- 서버에 할당된 Connection이 5개인데 서버가 보내오는 Response가 5개라면 갖고 있는 Connection에 대해 모두 응답하고 있으므로 성능이 충분하다고 판단하고 추가 요청을 보냄
- 다른 서버에 할당된 Connection이 10개인데 서버가 보내오는 Response가 5개뿐이라면 현재 성능이 충분치 않아 제대로 답변하지 못하는 것으로 판단하고 추가 요청을 해당 서버로 보내지 않음
참고 URL : <서버 부하 분산(출처 : 서버 구축이야기!님 블로그(https://server-talk.tistory.com/)>
'Opensource(오픈 소스) > HAproxy' 카테고리의 다른 글
Nginx로 Load Balancer 구성 → Virtual Machine 테스트 (0) | 2022.07.30 |
---|---|
L4/L7 스위치의 대안, 오픈 소스 로드 밸런서 HAProxy란 (0) | 2022.07.30 |
Keepalived를 활용하여 간단하게 HA 구성 (0) | 2022.07.26 |
단일 HAproxy 설치(HAproxy 1대와 웹 서버 2대) (0) | 2022.07.26 |