로드밸런서는 여러 대의 서버 중에서 어느 서버가 일을 할지 정해주는 역할을 한다. 그런데 로드밸런서는 어떤 기준으로 사람들을 나눌까?
가장 단순하고 많이 사용하는 방법이 바로 라운드 로빈(Round Robin)이다.
처음 이름만 들으면 어려워 보이지만, 사실 원리는 정말 단순하다. 한 사람씩 순서대로 서버에 보내는 방식이다.
예를 들어 서버가 3대 있다고 해보자.
- 서버 A
- 서버 B
- 서버 C
이때 사람이 차례대로 접속하면, 로드밸런서는 이렇게 나눈다.
- 1번째 사람 → 서버 A
- 2번째 사람 → 서버 B
- 3번째 사람 → 서버 C
- 4번째 사람 → 다시 서버 A
- 5번째 사람 → 서버 B
즉, 서버를 순서대로 한 바퀴씩 돌면서 요청을 보내는 것이다. 그래서 이름도 “Round Robin”이다.

왜 라운드 로빈을 많이 사용할까
라운드 로빈은 매우 단순하다. 그래서 설정하기 쉽고, 대부분의 로드밸런서가 기본으로 지원한다.
특히 서버 성능이 비슷할 때는 꽤 잘 작동한다.
예를 들어 같은 사양의 서버 3대가 있다면:
- 각 서버가 비슷한 속도로 일을 처리하고
- 사람도 거의 비슷하게 나눠서 받기 때문에
- 전체적으로 서버가 골고루 사용된다
그래서 작은 웹사이트나 연습용 서버에서는 라운드 로빈만으로도 충분한 경우가 많다.
나도 처음에는 로드밸런서가 엄청 복잡한 프로그램인 줄 알았다. 그런데 실제로 보니, 가장 기본적인 방식은 그냥 “한 명씩 차례대로 보내기”였다.
식당 대기줄과 비슷하게 생각하면 쉽다
라운드 로빈은 식당에서 손님을 여러 직원에게 순서대로 보내는 것과 비슷하다.
예를 들어 직원이 3명 있으면:
- 첫 번째 손님 → 직원 1
- 두 번째 손님 → 직원 2
- 세 번째 손님 → 직원 3
- 네 번째 손님 → 다시 직원 1
처럼 순서대로 손님을 나눠준다.
이렇게 하면 특정 직원 한 명에게만 손님이 몰리지 않는다.
로드밸런서도 똑같다. 서버 한 대만 계속 사용하지 않고, 여러 서버가 번갈아 가면서 일을 하게 만든다.
라운드 로빈의 단점도 있을까
있다.
라운드 로빈은 서버를 단순히 순서대로만 나누기 때문에, 각 서버의 상태를 잘 모른다.
예를 들어:
- 서버 A는 사람이 거의 없음
- 서버 B는 이미 엄청 바쁨
- 서버 C는 속도가 느림
이어도, 라운드 로빈은 그냥 순서대로 계속 보낸다.
그래서 어떤 서버는 너무 바빠지고, 어떤 서버는 여유가 남을 수도 있다.
특히 서버 성능이 다르거나, 어떤 서버가 느려졌을 때는 라운드 로빈이 잘 맞지 않을 수 있다.
그래서 더 똑똑한 방법도 있다
큰 서비스는 단순한 라운드 로빈 대신 더 복잡한 방식을 쓰기도 한다.
예를 들어:
- 사람이 가장 적은 서버로 보내기
- CPU 사용량이 가장 낮은 서버로 보내기
- 더 빠른 서버에는 더 많은 사람을 보내기
같은 방식이 있다.
특히 서버 성능이 다를 때는 “가중치 라운드 로빈(Weighted Round Robin)”을 사용하기도 한다.
예를 들어:
- 빠른 서버 A → 3명
- 보통 서버 B → 2명
- 느린 서버 C → 1명
처럼 성능에 따라 사람 수를 다르게 나눠준다.
그래서 더 효율적으로 서버를 사용할 수 있다.
그럼 라운드 로빈은 언제 사용하면 좋을까
라운드 로빈은:
- 서버 성능이 비슷하고
- 사용자가 아주 많지 않고
- 설정을 쉽게 하고 싶을 때
가장 잘 어울린다.
예를 들어:
- 집에서 만든 작은 웹서버
- 연습용 로드밸런서
- 같은 사양의 서버 여러 대
에서는 라운드 로빈만으로도 충분하다.
실제로 Nginx 같은 로드밸런서 프로그램도 기본값으로 라운드 로빈을 사용하는 경우가 많다.
Nginx에서는 실제로 어떻게 생겼을까
Nginx에서는 서버를 이렇게 적어두면 자동으로 라운드 로빈이 된다.
upstream myserver {
server 192.168.0.10;
server 192.168.0.11;
server 192.168.0.12;
}
그러면 Nginx가 접속한 사람을 세 서버에 순서대로 나눠준다.
즉, 특별한 설정을 하지 않아도 가장 기본적인 로드밸런서가 만들어지는 것이다.
한 줄로 정리하면
라운드 로빈은 로드밸런서가 여러 대의 서버에 사람을 순서대로 한 명씩 나눠주는 가장 단순한 방식이다. 설정이 쉽고, 같은 성능의 서버를 사용할 때 가장 잘 어울린다.