MSA 토이 프로젝트와 강의를 들으면서 자주 언급되는 단어인데 정확한 정의를 몰라 찾아보게 되었다.
서버에 가해지는 부하를 분산해주는 장치나 기술을 말한다.
클라이언트와 서버 풀 사이에 위치해 있고 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있게 한다.
서비스 초기에 클라이언트 수가 적어 서버 한 대로 모든 요청에 응답이 가능하면 굳이 필요가 없을 수 있다.
하지만, 서비스가 확장되면서 클라이언트의 수가 늘어난다면 서버 한 대로 정상적인 서비스가 불가능하다. 이때 Scale-up과 Scale-out을 통해 서버를 확장시킬 수 있는데 다음과 같다.
Scale-up을 통해 서버 자체의 성능을 확장시키는 방법도 있지만 Scale-out을 통해 기존 서버와 동일한 정도의 서버를 증설해 운영할 수도 있다.
만약, Scale-out으로 서버를 증설하기로 했다면 여러 대의 서버로 트래픽을 균등하게 분산해주는 역할을 Load Balancer가 해주게 된다.