[ CS / Network ] Load Balancing

황승환·2022년 7월 23일
0

CS

목록 보기
53/60

Load Balancing

오늘날 웹/앱 서비스를 이용하는 고객들이 계속해서 증가하고 있다. 이에 따라 1개의 서버로는 수많은 요청을 처리할 수 없기 때문에 여러 개의 서버를 사용한다.

수많은 요청이 여러 개의 서버 중 하나에 집중된다면 어떻게 될까? 다른 서버들은 작업을 수행하지 않아 낭비될 것이고, 집중된 하나의 서버는 과부하가 올 것이다. 이를 해결하기 위한 것이 로드 밸런싱이다.

로드 밸런싱은 클라이언트로부터 받은 요청들을 여러 서버에 골고루 배치하여 하나의 서버에 과부하가 오는 것을 막는 기술이다.

서버 선택 방식

로드 밸런서가 작업을 수행할 서버를 선택하는 방식은 다음과 같다.

Round Robin

들어오는 요청을 시간의 순서대로, Time Quantum의 크기로 잘라 수행하도록 서버에 나눈다.

Least Connections

연결 갯수가 가장 적은 서버를 선택한다. 이는 트래픽으로 인해 세션이 길어지는 경우에 권장한다.

Source

사용자 IP를 해싱하여 분배한다. 이는 같은 사용자가 항상 같은 서버로 연결되는 것을 보장한다.

TODO List

  • PM2 Load Balancing
  • Nginx Load Balancing
profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글