Load Balancing

Lami·2022년 11월 20일
0

CS

목록 보기
8/9
post-thumbnail

Load Balancing

서버에 가해지는 부하를 분산해주는 장치 또는 기술로,
한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 성능을 보일 수 있도록 한다.

항상 필요할까?

트래픽이 몰렸을 때 이를 조절하는 방법에는 크게 두 가지가 있다.
1. Scale-up
2. Scale-out

Scale-up : 서버 자체의 성능을 확장하는 것
👉🏻 업그레이드

Scale-out : 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설해 운영하는 것 의미
👉🏻 업그레이드 대신 서버 증설

이때, Scale-out의 방식으로 대처하기로 결정했다면 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 필요하다.

로드밸런싱 알고리즘

  • 라운드로빈 방식
    - 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식
    - 클라이언트의 요청을 순서대로 분배하기 때문에 여러대의 서버가 동일한 스펙을 갖고 있다.
    - 서버와의 연결이 오래 지속되지 않는 경우에 활용하기 적합

  • 가중 라운드로빈 방식
    - 각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분
    - 주로 서버의 트래픽 처리 능력이 상이한 경우 사용되는 부하 분산 방식

  • IP 해시 방식
    - 클라이언트의 IP 주소를 특정 서버로 매핑해 요청을 처리하는 방식
    - 사용자의 IP를 해싱해 로드를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장함

  • 최소 연결 방식
    - 요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 우선적으로 트래픽 배분
    - 서버와의 연결이 자주 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합

  • 최소 응답 시간 방식
    - 서버의 현재 연결 상태와 응답시간을 모두 고려해 트래픽 배분
    - 가장 적은 연결 상태와 가장 짧은 응답 시간을 보이는 서버에 우선적으로 로드를 배분하는 방식

L4 Load Balancer vs. L7 Load Balancer

부하 분산에는 L4 로드밸런서와 L7 밸런서가 가장 많이 활용된다.
👉🏻 L4 로드밸런서부터 포트 정보를 바탕으로 로드를 분산할 수 있기 때문

profile
삶이 온통 사람의 길이니 많은 경험을 해보고 싶은 프론트엔드 개발자 지망생입니다.

0개의 댓글