[네트워크] 로드 밸런싱

함민혁·2023년 7월 18일
0

cs면접준비

목록 보기
13/43

로드 밸런싱(load balancing)이란

네트워크 또는 서버에 가해지는 로드를 분산 해주는 기술
중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미

로드 밸런싱이 왜 필요할까?

로드밸런싱은 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술임
서비스의 제공 초기 단계라면 클라이언트 수가 적어서 서버 한 대로 요청에 응답하는 게 가능함
하지만 사업이 확장되면 트래픽이 증가할 것이고 이 트래픽에 대처할 필요가 있음

대처 방법 2가지

  1. Scale-up : 서버 자체의 성능을 확장하는 거임 (ex> CPU가 i3인 컴퓨터를 i7로 업그레이드하는 것)
  2. Scale-out : 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설하여 운영하는 것을 의미

하드웨어 향상 비용이 비싸기도 하고, 서버가 여러대면 무중단 서비스를 제공하는 환경 구성이 용이하므로 Scale-out이 더 효과적임

Scale-out의 경우 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 반드시 필요함

로드밸런서(Load Balancer)

서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 말함
클라이언트와 서버풀(분산 네트워크를 구성하는 서버들의 그룹) 사이에 위치하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 함

로드밸런싱 알고리즘

  • 라운드로빈 방식
  • 가중 라운드로빈 방식
  • IP 해시 방식
  • 최소 연결 방식
  • 최소 리스폰타임

로드밸런서 종류

부하 분산에는 L4 로드밸런서와 L7 로드밸런서가 가장 많이 활용됨
그 이유는 L4 로드밸런서부터 PORT정보를 바탕으로 로드를 분산하는 것이 가능하기 때문임.

네트워크 통신 시스템은 앞 서 글에서 언급했듯이, OSI 7계층으로 나뉨. 각각의 계층(Layer)가 L1/L2/L3/L4/L5/L6/L7에 해당함. 상위 계층에서 사용되는 장비는 하위 계층의 장비가 갖고 있는 기능을 모두 가지고 있으므로, 상위 계층으로 더욱 정교하게 로드밸런싱이 가능함

L4 로드 밸런싱 : 전송 계층에서 부하를 분산하는 방식. IP주소, PORT번호, MAC주소 등에 따라 트래픽을 나누고 분산 처리

애플리케이션 계층(HTTP,FTP,SMTP)에서 부하를 분산하는 방식. 그래서 HTTP 헤더, 쿠키 등과 같은 사용자의 요청을 기준으로 특정 서버에 트래픽을 분산하는 게 가능함. 그림처럼 URL에 따라 부하를 분산시키거나, HTTP 헤더의 쿠키값에 따라 부하를 분산하는 등 클라이언트의 요청을 보다 세분화해 서버에 전달할 수 있음

L4 vs L7

출처 : https://m.post.naver.com/viewer/postView.nhn?volumeNo=27046347&memberNo=2521903
https://velog.io/@yanghl98/OS운영체제-로드밸런싱-Load-Balancing-정의-종류-알고리즘

profile
Born to be FE developer 🧑🏻‍💻

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

정보가 많아서 도움이 많이 됐습니다.

답글 달기