작업을 나누는 입구
같은 서비스를 처리할 서버가 여러 대라면 들어온 요청을 어느 서버로 보낼지 정해야 한다. 부하분산기는 이를 위한 접점이 될 수 있다. 요청을 나누더라도 저장소나 외부 서비스가 하나의 병목으로 남으면 전체 성능이 비례해 늘지는 않는다.
배정 규칙의 차이
순서대로 돌아가며 배정하거나 현재 연결 수를 고려하는 등 여러 방식이 있다. 한 요청을 처리하는 비용이 모두 같지 않으므로 요청 개수가 같다고 실제 부하도 같지는 않다. 서버의 성능 차이와 작업 특성에 맞는 규칙이 필요하다.
상태와 장애
응답하지 못하는 서버에 계속 보내지 않으려면 상태 확인이 필요하다. 단순히 포트가 열린 것과 서비스가 필요한 작업을 정상적으로 처리하는 것은 다를 수 있다. 상태 확인과 제외, 복귀의 기준이 실제 서비스 동작에 맞아야 한다.
자료의 일관성과 세션
요청을 다른 서버로 보내도 사용자의 상태와 처리 결과가 유지되어야 한다. 세션과 파일을 한 서버에만 보관하면 배정이 바뀔 때 문제가 생길 수 있다. 부하분산은 이러한 상태 관리와 장애 복구까지 자동으로 해결하는 기능은 아니다.