[CS] 로드 밸런싱(Load Balancing)

.·2022년 7월 11일
0

둘 이상의 CPU or 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것


로드 밸런싱

  • 요즘 시대에는 웹 사이트에 접속하는 인원이 굉장히 많고, 이러한 상황에서 모든 트래픽을 감당하기에 1대의 서버로는 부족하다.
  • 대응 방안으로는 하드웨어의 성능을 올리거나(Scale-up) 여러 대의 서버가 나눠서 일하도록 만드는 것(Scale-out)이 있다.
  • 하드웨어 향상 비용이 더욱 비싸기도 하고, 서버가 여러대면 무중단 서비스를 제공하는 환경 구성이 용이하므로 Scale-out이 효과적이다. 이 때 여러 서버에게 균등하게 트래픽을 분산시켜 주는 것이 로드 밸런싱이다.
  • 로드 밸런싱은 분산식 웹 서비스로, 로드 밸런서(Load Balancer)를 클라이언트와 서버 사이에 두고, 부하가 일어나지 않도록 여러 서버에 분산시켜주는 방식이다.

로드 밸런서가 서버를 선택하는 방식

  • 라운드 로빈(Round Robin): 시분할 시스템을 위해 설계된 스케줄링 방식의 하나로 프로세스들 사이에 우선순위를 두지 않고, 순서대로 일정 시간동안 CPU를 할당하는 방식
  • Least Connections: 연결 개수가 가장 적은 서버를 선택(트래픽으로 세션이 길어지는 경우 권장)
  • Source: 사용자 IP를 해싱하여 분배(특정 사용자가 항상 같은 서버로 연결되는 것을 보장)

로드 밸런서 장애 대비

  • 서버를 분배하는 로드 밸런서에 문제가 생길 수 있기 때문에 로드 밸런서를 이중화하여 대비한다.(Active와 Passive 상태)

참고

0개의 댓글