본문 바로가기
기초 CS 정리

로드 밸런싱(Load Balancing)

by 쿠리의일상 2023. 2. 10.
둘 이상의 CPU또는 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것

웹 사이트에 접속하는 인원이 급격하게 늘었기 때문에 이러한 사람들에 대한 모든 트래픽을 감당하기엔 1대의 서버로는 부족하다. 대응 방안으로 하드웨어의 성능을 올리거나, 여러 대의 서버가 나눠서 일하도록 만든다. (Scale-Up/Scale-Out)

 

하드웨어 향상 비용이 더욱 비싸기도 하고 서버가 여러 대면 무중단 서비스를 제공하는 환경 구성이 용이하므로 Scale-Out(서버 나누기)이 더욱 효과적이다.

이때 여러 서버에게 균등하게 트래픽을 분산시켜주는 것이 바로 Load Balancing이다.

 

Load Balancing이 하는 일은?

분산식 웹 서비스로 여러 서버에 부하를 나누어주는 역할을 한다.

클라이언트와 서버 사이에 LoadBalancer를 두고 부하가 일어나지 않도록 여러 서버에 분산시켜주는 방식으로 서비스를 운영하는 사이트의 규모에 따라 웹 서버를 추가로 증설하면서 로드 밸런서로 관리해주면 웹 서버의 부하를 해결할 수 있다.

 

 

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

  • 라운드 로빈(Round Robin) : CPU 스케쥴링의 라운드 로빈 방식 활용
  • Least Connections : 연결 개수가 가장 적은 서버 선택 → 트래픽으로 인해 세션이 길어지는 경우 권장
  • Source : 사용자 IP를 해싱하여 분배, 특정 사용자가 항상 같은 서버로 연결되는 것을 보장

로드 밸런서 장애 대비 (Active / Passive 상태)

서버를 분배하는 로드 밸런서에 문제가 생길 수 있기에 로드 밸런서를 이중화하여 대비

'기초 CS 정리' 카테고리의 다른 글

데브옵스 DevOps  (0) 2023.02.12
Blocking/Non-Blocking 과 Synchronous/Asynchronous  (0) 2023.02.11
TLS/SSL handshaking  (0) 2023.02.09
HTTP & HTTPS  (0) 2023.02.08
대칭키와 공개키  (0) 2023.02.07