프로젝트 배포 중에, 백엔드 서버에 도메인을 연결하면 깔끔한 API 주소 관리가 가능하고, 프론트 단에서도 도메인 기준으로 환경을 나누기 쉽고, 로드 밸런싱 등 나중에 확장하기도 좋다고 한다. 로드 밸런싱이 정확히 무엇일까? 이번 글에서는 로드 밸런서의 개념과 동작 방식에 대해 다뤄보고자 한다.
서비스 트래픽이 많아지면 단일 서버로는 모든 요청을 감당하기 어렵다. 이때 등장하는 것이 바로 로드 밸런서(Load Balancer)이다.
로드 밸런서는 여러 서버에 트래픽을 분산시켜 주는 트래픽 분산 장치로서, 가용성과 확장성을 높이기 위해 필수적인 인프라 구성 요소이다.
로드 밸런서는 클라이언트의 요청을 받아서 백엔드 서버 중 하나로 적절하게 분배하는 역할을 한다.

놀이공원 입구에 있는 직원이 손님을 줄이 덜 선 입장로로 안내해 주는 것과 비슷하다.
손님은 어떤 게이트로 들어가는지 신경 쓸 필요 없이, 안내자만 따르면 된다. 이때 이 안내자가 바로 로드 밸런서이다.
로드 밸런서는 단순히 무작위로 트래픽을 보내지 않고 여러 가지 알고리즘에 따라 요청을 분산한다.
| 알고리즘 | 설명 |
|---|---|
| Round Robin | 서버를 순서대로 돌아가며 요청을 분배 |
| Weighted Round Robin | 서버마다 가중치를 두고 비율에 따라 분배 |
| Least Connections | 현재 연결 수가 가장 적은 서버에 전달 |
| IP Hash | 클라이언트 IP를 해싱해서 특정 서버로 고정 |
| Random | 랜덤하게 서버 선택 |



로드 밸런서는 OSI 7계층 중 어디서 작동하느냐에 따라 나뉜다.
| 구분 | 설명 | 예시 |
|---|---|---|
| L4 (Transport Layer) | IP, Port 기반 분산 | TCP, UDP |
| L7 (Application Layer) | URL, 쿠키, 헤더 등 HTTP 레벨 분산 | Nginx, ALB |
/api, /images), 쿠키, 헤더 등을 기준으로 라우팅할 수 있어 정교한 분기가 가능하다.로드 밸런서는 단순히 트래픽만 분산시키는 도구가 아니다.
보안 측면에서도 매우 중요한 역할을 한다.
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
위 예시는 backend1, backend2 두 서버로 트래픽을 분산하는 간단한 Round Robin 구성이다.
실무 환경에서는 로드 밸런서 없이 안정적인 서비스 운영이 어렵다.
특히 Nginx, AWS ELB 등은 백엔드 개발자라면 반드시 익숙해져야 할 도구다. 단순 개념을 넘어서, 직접 설정하고 테스트해보는 것도 좋은 학습이 될 것이라고 생각한다.