TIL#141 로드밸런싱

Dasom·2021년 3월 24일
1

database

목록 보기
8/15

로드 밸런싱(Load Balancing)

하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 특정 서버에만 부하가 발생하지 않도록 적절히 분산처리하여 해결해주는 서비스이다.

트래픽이 많을 때 해결 방법

  • Scale-up : 하드웨어 성능을 올리는 방법
  • Scale-out : 서버를 늘리는 방법

Scale-out 장점

  • 하드웨어 성능을 올리는 비용보다 서버를 하나 추가하는 비용이 더 적음
  • 여러 대의 서버가 있으면 무중단 서비스 제공 가능
  • 사용량이 많아져 서버 확장이 되어도 서비스 중단 없이 서버 증설이 가능

종류

  • L2
    • MAC 주소 기반
    • 동일 네트워크간 연결만 가능
  • L3
    • IP 주소 기반
    • 서로 다른 네트워크 간의 연결만 가능
  • L4
    • TCP/UDP 기반
    • Transport Layer(IP, Port) Level
    • 사용자들의 요구를 서버의 부하가 적은 곳에 배분
    • 데이터 안을 보지 않고 패킷 레벨에서만 로드를 분산하기 때문에 속도가 빠르고 효율이 높음
    • 섬세한 라우팅이 불가능하지만 L7로드 밸런서보다 저렴
  • L7
    • 애플리케이션 계층에서 로드를 분산
    • IP주소, TCP/UDP 포트 정보에 패킷 내용까지 참조하여 세밀하게 로드밸런싱
    • 더 섬세한 라우팅이 가능하고, 비정상적인 트래픽을 필터링 할 수 있음

알고리즘

모든 서버로 균등하게 분산하면 스펙이 다른 서버가 존재할 경우 트래픽이 치우칠 수 있다. 상황에 맞는 알고리즘을 선택하여 사용을 해야 한다.

  • 라운드로빈 방식(RR; Round-Robin)
    • 모든 서버로 균등하게 분산
    • 서버에 들어온 요청을 순서대로 돌아가며 배정
    • 서버와의 연결이 오래 지속되지 않는 경우 적합
  • 가중 라운드로빈 방식(WRR; Weighted Round-Robin)
    • 라운드로빈과 같지만 가중치를 둬서 분산 비율을 변경
    • 처리 능력이 높은 서버는 가중치를 높게 설정
    • 서버의 트래픽 처리 능력이 다른 경우 사용
  • 최소 연결 방식(LC; Least-Connection)
    • 접속 수가 가장 작은 서버를 선택
    • 서버에 분배된 트래픽들이 일정하지 않은 경우 적합
    • 트래픽으로 인해 세션이 길어지는 경우에도 권장
  • 가중 최소 연결 방식(WLC; Weighted Least-Connection)
    • 최소 연결 방식과 같지만 가중치를 둠
    • (접속수+1)/가중치 가 최소가 되는 서버를 선택
    • 고성능 서버는 가중치를 크게 설정
  • IP 해시 방식(IP Hash)
    • 클라이언트의 IP주소를 특정 서버로 매핑하여 요청을 처리하는 방식
    • 사용자는 항상 동일한 서버로 연결
  • 최소 응답 시간 방식(Least Response Time)
    • 서버의 현재 연결 상태와 응답시간을 모두 고려하여 트래픽 분배
    • 가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 배분
profile
개발자꿈나무🌲

0개의 댓글