로드 밸런싱은 부하 분산이라고 하며 뜻 그대로 부하를 밸런스있게 분산하는 것입니다.

출처: https://www.smileshark.kr/post/what-is-a-load-balancer-a-comprehensive-guide-to-aws-load-balancer
서비스의 규모가 커질수록 단일 서버로는 모든 요청을 처리하기 힘듭니다. 서버 자원을 늘리는 방법으로는 Scale-Up 방식과 Scale-Out 방식이 있습니다.
보통 고성능 하드웨어로 갈수록 가격이 기하급수적으로 비싸지고 기존의 서버의 하드웨어를 교체한다는 것은 그 시간동안 서비스 중단을 초래할 수 있으며, 하드웨어의 변경을 통한 예상치 못한 오류 등의 이유로 Scale-Up 보다는 Scale-Out이 보편적입니다.
즉, 서비스로 오는 요청들을 하나의 서버가 아니라 여러 서버가 처리를 하게 되며, 현재 요청을 처리하기에 가장 적합한 서버에게 요청을 전달하는 것이 로드 밸런싱입니다.
여러 로드 밸런싱이 있지만 다음 두 종류가 많이 사용됩니다.
OSI 7계층 중 4계층(전송 계층)에서 TCP/UDP 프로토콜을 통해 부하를 분산합니다. 부하 분산에 IP와 Port를 활용합니다. L7 로드 밸런싱에 비해 빠르다는 장점이 있습니다. Layer 4에서 로드 밸런싱을 수행하기에 L4라 칭합니다.
OSI 7계층 중 7계층(어플리케이션 계층)에서 HTTP/HTTPS 프로토콜을 통해 부하를 분산합니다. 패킷의 내용을 통해 부하를 분산하는 것이 가능하기에 다양한 로드 밸런싱이 가능합니다. 하지만 L4 로드 밸런싱에 비해 느리고 비싸다는 단점이 있습니다.
N개의 서버에 순차적으로 요청을 할당합니다. 5개의 서버가 있다면 첫 번째 요청은 1번 서버, 두 번째 요청은 2번 서버 ... 다섯 번째 요청은 5번 서버, 여섯 번째 요청은 다시 1번 서버에 할당하는 식입니다.
서버들의 스펙이 동일하고 서버와의 연결이 오래 지속되지 않을 때 적합합니다.
각 서버에 가중치를 부여하고 가중치가 높은 서버에 우선 할당합니다. A 서버의 가중치가 5이고 B 서버의 가중치가 3이면 A 서버에 5개의 요청을, B 서버에 3개의 요청을 할당합니다.
서버의 스펙이 서로 다를 경우 적합합니다.
클라이언트의 IP 주소를 기반으로 특정 서버에 매핑하여 요청을 처리하는 방식입니다. 사용자의 IP를 해싱하여 부하를 할당하기 때문에 사용자가 항상 동일한 서버에 연결되는 것을 보장합니다.
접속자 수가 많을수록 효율이 뛰어납니다.
요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 요청을 할당합니다.
자주 연결이 길어지거나 서버에 분배되는 트래픽이 일정하지 않을때 유용합니다.
서버의 현재 연결 상태와 응답 시간을 고려하여 가장 짧은 응답 시간을 보이는 서버로 요청을 할당합니다.
각 서버의 성능과 처리하는 데이터 양 등이 상이할 경우 유용합니다.