로드밸런싱

gnoesnooj·2022년 4월 19일
0

배경

시스템 설계 관련 책을 읽다가

이와 같은 도식표를 보고, 저 사이에 로드밸런서가 들어가있는 이유가 궁금해서 찾아보게 되었다.

로드밸런싱

말 그대로 로드 (부하) 를 밸런싱 (조정) 해주는 것을 말한다.
좀 더 자세히 보자면 서비스를 사용하기 위해 요청을 보내는 클라이언트와, 요청을 받아 서비스를 제공해주는 서버 사이에 위치한다.

로드밸런싱의 필요성

  • 티모태 프로젝트를 했던 것 처럼, 적은 수의 클라이언트는 하나의 서버로도 처리가 가능하지만, 프로젝트나 사업의 규모가 확장되고 커지면서 클라이언트의 수가 큰 수로 증가하게 되면 하나의 서버로는 모든 요청을 처리하기가 힘들게 된다. 그러므로 이렇게 증가하는 요청들과 트래픽을 처리하기 위해 로드밸런싱이 필요하다.

로드밸런싱 방법

    1. Scale Up
    • 서버 자체의 능력을 키우는 것을 말한다.
    • 수직적 확장이라고도 한다.
    1. Scale Out
    • 서버의 개수를 증설하는 것을 말한다.
    • Scale out 의 경우에 각각의 서버로 알맞게 로드를 분산시켜주는 로드밸런싱이 필요하다.
    • 수평적 확장이라고 한다.

로드밸런싱 알고리즘

  • 라운드 로빈
    : 들어온 순서대로 차례로 서버에 분산시켜주는 방법

  • 가중 라운드 로빈
    : 서버마다 처리 능력이 다를 경우, 능력 우선순위로 분산시키는 방법

  • IP 해싱
    : IP를 해싱 후, 해싱된 값에 맞게 서버를 분배시키는 것. 같은 ip 라면 같은 서버를 계속 사용하게 된다.

  • 최소 연결 방식
    : 요청이 들어왔을 때, 가장 낮은 트래픽의 서버를 할당해 주는 방식이다.

  • 최소 리스폰 방식
    : 가장 적은 연결 + 가장 짧은 응답시간을 가지는 서버를 먼저 할당해 주는 방식이다.

    책 ) 가상 면접 사례로 배우는 대규모 시스템 설계 기초
    참고 ) https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903

profile
누구나 믿을 수 있는 개발자가 되자 !

0개의 댓글