로드밸런서를 알아보기 전에 사용자의 요청이 시스템에서 처리되는 과정과 단말에 대해서 이해할 필요가 있다.
보통의 웹은 사용자 요청을 처리하기 위해서 아래와 같은 처리 결과를 거친다.

설명을 붙이자면
1. 사용자는 도메인 이름www.suby.com을 이용하여 웹사이트에 접속을 하는데 . 이 접속을 위해서 도메인 이름을 DNS에 질의를 하여 IP주소로 변환하는 과정이 필요하다.
2. DNS는 보통 서드 파티
가 제공하는 유료
서비스를 이용하게 되므로 우리가 만들어야 할 서비스는 아니다.
3. 해당 IP주소로 HTTP 요청을 전달해 웹 서버는 그 요청에 맞는 응답을 보내준다.
4. 애플리케이션 서버는 endpoint를 이용하여 데이터베이스에 데이터를 요청할수 있고 데이터베이스는 데이터를 반환할수 있는데 아래는 그것을 표현한 그림이다.

사용자가 많아지면
사용자가 늘면 서버 하나로는 많은 트래픽을 담당하기에는 충분하지 않아서 방안을 생각해봐야 하는데 2가지를 생각할수 있다.
- 수직적 규모 확장
- 수평적 규모 확장
수직적 규모 확장에는 소위 scale up 이라는 고사양 자원(ram이나 CPU 등)을 추가하는 방식이 있고
수평적 규모 확장에는 scale out 이라고 하는 더 많은 서버를 추가하여 성능을 개선하는 행위를 말한다.
수직적 규모 확장에는 한계가 있는데 ,
- 한 대의 서버에 메모리나 CPU등을 무한으로 증설할수 없다.
- 장애에 대한 자동복구 방학이나 다중화 방안을 제시하지 않는다. 이로 인해 장애가 발생하면 웹/앱은 완전히 중단이 된다.
위에서 본 설계는 client가 Aplication Server에 바로 연결이 된다.
이러한 설계는 아래와 같은 내용을 야기한다.
- 웹 서버가 다운이 된다면 사용자는 웹 사이트에 접속할 수 없다.
- 너무 많은 사용자가 접속하여 웹 서버가 한계 상황에 도달하게 되면 응답속도가 느려지거나 서버 접속이 불가능해 질수도 있다.
이러한 문제를 해결하는 데는 부하 분산기
또는 로드 밸런서를 도입하는 것이 최선이다.

위와 같이 Client는 로드밸런서에 접속하고, 로드 밸런서가 서버1/2 와 같이 접속을 처리한다.
따라서 웹 서버는 클라이언트의 접속을 직접 처리하지 않는다.
그리고 더 나은 보안을 위해 서버 간 통신
에는 사설 IP주소가 이용된다. 사설 IP주소는 같은 네트워크에 속한 서버사이에 통신에만 쓰일수 있는 IP 주소로, 인터넷을 통해서는 접속할 수 없다. 로드밸런서는 웹 서버와 통신하기 위해 바로 이 사설 주소를 이용한다.