-
둘 이상의 CPU or 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 말한다.
웹의 발전으로 인해 웹사이트에 접속하는 인원이 급격하게 늘어나고 결국 이는 트래픽량의 급증을 보여준다.
모든 트래픽을 감당하기에는 1대의 서버로는 부족하게 되는 상황이 되었다. 이에 대한 대응 방안으로 하드웨어의 성능을 올리는 Scale Up 방법과 여러대의 서버가 나눠 일하는 Scale Out 방식이 존재한다.
Scale up 의 경우 하드웨어 향상 비용이 비싸다는 문제가 존재한다. Scale out을 통해 서버를 여러대 둔다면 무중단 서비스를 제공하는 환경 구성에 용이하고 효과적이다. 이때 여러 서버에 균등하게 트래픽을 분산 시켜주는 방식을 로드밸런싱이라 한다.
로드 밸런싱은 분산식 웹 서비스로, 여러 서버에 부하(Load)를 나누어 주는 역할을 한다. 로드 밸런서를 클라이언트와 서버 사이에 두어 부하가 발생하지 않도록 여러 서버에 트래픽을 분산시켜주는 방식이다. 서비스를 운영하는 사이트 규모에 따라 웹 서버를 츄가로 증설하며 로드 밸런서로 관리해주면 웹서버의 부하를 해결할 수 있다.
로드 밸런서가 서버를 선택하는 방식
Round-Robin(RR) : CPU 스케줄링 방식인 라운드 로빈 방식을 활용하여 트래픽을 할당한다.
Least Connections : 연결 개수가 가장 적은 서버를 선택하는 방식이다. 트래픽으로 인해 세션이 길어지는 경우에 권장되는 사항이다.
Source : 사용자의 IP를 해싱하여 분배하는 방법이다. 특정 사용자가 항상 같은 서버로 연결되는 것을 보장할 수 있다.
로드 밸런서에서 생기는 장애를 대비하기 위해 로드 밸런서를 이중화 시켜 대비한다.
'CS' 카테고리의 다른 글
파일 시스템 (0) 2021.01.07 IP(Internet Protocol)? (0) 2021.01.03 해싱(Hashing)? (0) 2020.12.22 세마포어? 데드락? (0) 2020.12.14 프로세스 vs 쓰레드 (0) 2020.12.13