어제의 나보다 성장한 오늘의 나

로드 밸런싱 본문

CS/네트워크

로드 밸런싱

NineOne 2021. 4. 8. 03:03

문제점

사용자가 한 두 명인 경우에 서버는 여유롭게 원하는 결과를 응답할 수 있다. 하지만 사용자가 수천만 명이라면 어떨까?

서버는 모든 사람들의 응답을 해주려고 노력하지만 결국엔 지치게 되어 동작을 멈추게 된다.

문제 해결

  • Scale-up : Server가 더 빠르게 동작하기 위해 하드웨어 성능을 올리는 방법.
  • Scale-out : 하나의 Server 보다는 여러 대의 Server가 나눠서 일을 하는 방법.

기업에서는 Scale-out형태를 취한다. 

  • 하드웨어 향상하는 비용보다 서버 한대 추가 비용이 더 적다.
  • 여러 대의 Server 덕분에 서버가 하나 다운되더라도 다른 서버가 살아 있기에 무중단 서비스를 제공할 수 있다.

하지만! 다수의 서버를 구축해 운영한다고 해도 쏟아지는 트래픽을 여러 대의 서버로 분산해주는 기술이 없다면 한 곳의 서버에 모든 트래픽이 몰리는 상황이 되어 위에 문제점과 별반 다를 게 없다.

이때 필요한 기술이 바로 로드(=부하) 밸런싱(=분산)이다.

 

로드밸런싱 알고리즘

  • 라운드 로빈 방식(Round Robin Method)
    • 서버에 들어온 요청 순서대로 돌아가며 배정하는 방식
    • 클라이언트의 요청을 순서대로 분배하기 때문에 여러 대의 서버가 동일한 스펙 또는 서버와의 연결이 오래 지속되지 않는 경우에 적합하다.
  • 가중 라운드 로빈 방식(Weighted Round Robin Method)
    • 각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분
    • 서버의 트래픽 처리 능력이 상이할 경우 사용
  • IP 해시 방식(IP Hash Method)
    • 클라이언트의 IP 주소를 특정 서버로 매핑하여 처리하는 방식
    • 사용자의 IP를 해싱해 분배하기 때문에 동일안 서버로 연결되는 것을 보장
  • 최소 연결 방식(Least Connection Method)
    • 요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 우선적으로 배분
    • 자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우 적합
  • 최소 리스폰 타임(Least Response Time Method)
    • 서버의 현재 연결 상태와 응답 시간 (Response Time, 서버에 요청을 보내고 최초 응답을 받을 때까지 소요되는 시간)을 모두 고려해 배분
    • 가장 적은 연결 상태와 가장 짧은 응답 시간을 보이는 서버에 우선적으로 배분

 


부하 분산에는 L4 로드밸런서와 L7 로드밸런서가 가장 많이 활용된다. 그 이유는 L4 로드밸런서부터 포트(Port) 정보를 바탕으로 로드를 분산하는 것이 가능하기 때문이다. 또한, 한 대의 서버에 각기 다른 포트 번호를 부여하여 다수의 서버 프로그램을 운영하는 경우라면 최소 L4 로드밸런서 이상을 사용해야만 한다.

 

L4? L7? -> OSI 7 계층 개념이다. gooweon.tistory.com/86

 

OSI 7계층

OSI 7 계층이란? Open System Interconnetion OSI 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. OSI 7 계층을 나누는 이유는 무엇일까? 계층별의 기능과 통신 과정을 단계별로 나

gooweon.tistory.com

 


로드 밸런싱에도 문제가 일어날 수 있다. 그러면 어떻게 대비할까? 로드 밸런서를 이중화하여 대비한다.

  • Active 상태
  • Passive 상태

 

 

 

출처

nesoy.github.io/articles/2018-06/Load-Balancer

m.post.naver.com/viewer/postView.nhn?volumeNo=27046347&memberNo=2521903

 

'CS > 네트워크' 카테고리의 다른 글

HTTP란?  (0) 2021.05.22
유니캐스트, 멀티캐스트, 브로드캐스트  (0) 2021.04.09
TCP/IP 4계층  (0) 2021.04.07
OSI 7계층  (0) 2021.04.07
UDP란?  (0) 2021.04.06
Comments