하루에 한 문제
로드 밸런싱 본문
웹사이트를 사용하는 사람이 급격하게 증가함에 따라 성능이 아무리 뛰어나도 모든 트래픽을 하나의 서버가 감당할 수 없다. 이에 기업들은 서버를 추가로 구비하고 여러 대의 서버에 동일한 데이터를 저장해 수많은 트래픽을 효과적으로 분산한다.
그런데 단순히 다수의 서버를 구축해 운영한다고 해서 모든 클라이언트의 요청에 일관성 있게 응답할 수 있을까요? 쏟아지는 트래픽을 여러 대의 서버로 분산해주는 기술이 없다면 한 곳의 서버에 모든 트래픽이 몰리는 상황이 발생할 것이다. 이때 필요한 기술이 바로 로드밸런싱이다!!
로드 밸런서란??
로드밸런서는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭한다. 클라이언트와 서버풀(Server Pool, 분산 네트워크를 구성하는 서버들의 그룹) 사이에 위치하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 해준다.
그런데 로드밸런싱이 항상 필요할까??
로드밸런싱은 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술이다.
서비스의 제공 초기 단계라면 적은 수의 클라이언트로 인해 서버 한 대로 요청에 응답하는 것이 가능 하지만 사업의 규모가 확장되고, 클라이언트의 수가 늘어나게 되면 기존 서버만으로는 정상적인 서비스가 불가능하다. 이처럼 증가한 트래픽에 대처할 수 있는 방법은 크게 두 가지로 나뉜다
1. Scale-up : Server가 더 빠르게 동작하기 위해 하드웨어의 성능을 올리는 방법.
2. Scale-out : 하나의 Server보다는 여러 대의 Server가 나눠서 일을 하는 방법.
Scale-up의 경우 서버 자체의 성능을 확장하는 것이다. 비유하자면 CPU가 i3인 컴퓨터를 i7으로 업그레이드하는 것과 같다! 반면 Scale-out의 경우 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설하여 운영하는 방법이다. CPU가 i3인 컴퓨터를 여러 대 추가 구입해 운영하 것에 비유할 수 있다.
Scale-out의 방식으로 서버를 증설하기로 결정했다면 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 반드시 필요하다
로드밸런싱 알고리즘
1. 라운드 로빈 : CPU 스케줄링의 라운드 로빈 방식 활용
2. Least Connections : 연결 갯수가 가장 적은 서버 선택(트래픽으로 인해 세션이 길어지는 경우 권장)
3. IP 해시 : 사용자 IP를 해싱하여 분배(특정 사용자가 항상 같은 서버로 연결되는 것을 보장)
로드밸런싱 알고리즘
참고
m.post.naver.com/viewer/postView.nhn?volumeNo=27046347&memberNo=2521903
'CS > 네트워크' 카테고리의 다른 글
크로스 브라우징 (0) | 2021.04.14 |
---|---|
Blocking-NonBlocking-Synchronous-Asynchronous (0) | 2021.04.02 |
주소창에 naver.com을 치면 일어나는 일 (1) | 2021.03.31 |
UDP (1) | 2021.03.31 |
TCP ( 흐름 제어, 오류 제어) (0) | 2021.03.31 |