네트워크 부하

정원준·2023년 6월 12일

Network

목록 보기
2/6

load balancing

부하분산은 네트워크 기술로 작업을 나누어 자원들에게 할당하는 것을 의미한다.
서버가 확장되고 클라이언트 수가 증가시 증가된 트래픽에 대처하는 방법 :

  • scale up : 서버자체를 증강 전형적으로 프로세서를 추가하거나 프로세서 자체를 고성능모델로 옮기는것을 말한다.
  • scale out : 접속 서버의 대수를 늘려 가상적으로 복수 서버를 구축하거나 추가하는 것이다.=> 분산처리 시스템으로 설계해야함

Scale-out방식시 트래픽을 분산처리해주는 로드밸런싱이 필요함

알고리즘

  • 라운드 로빈
    서버에 들어온 요청을 순서대로 배정 => 서버와의 연결이 오래 지속되지 않는 경우 적합
  • 가중 라운드로빈 방식
    각 서버에 가중치를 매기고 가중치순 우선배정으로 서버 트래픽처리 능력이 다른경우 사용
  • 최소 연결 방식
    요청이 들어온 시점에 가장 여유로운 서버에 트래픽을 배정=> 서버 분배된 트래픽이 일정하지 않은경우 적합
  • IP 해시 방식
    클라이언트의 IP주소를 특정 서버로 매핑해 요청처리

L4 로드 밸런싱

  • transport 계층에서 로드 분산 => TCP, UDP 포트정보 바탕
  • 데이터 내부까지 해석하지 않고 패킷수준에서만 분산하기에 빠름 => 섬세한 라우팅 불가능 but! L7로드 밸런서보다 저렴
  • 로드밸런싱의 기준점이 IP와 Port이기 때문에 TCP/UDP의 header를 분석해 밸런싱에 활용하진 않음

L7 로드 밸런싱

  • application 계층에서 로드 분산
  • HTTP 헤더,쿠기 등과 같은 사용자 요청 기준 특정 서버에 트래픽 분산 가능
  • 섬세한 라우팅 가능하며 비정상 트래픽 필터링 가능 but! 패킷내용 복호화 필요하기에 더 많은 cost 필요!
  • IP와 Port로 로드밸런싱을 하지만 Layer7 프로토콜을 통해 사용자 정의 로드밸런싱 실시하거나 Layer 7프로토콜 헤더를 조작/활용한다는 특징이 있다.

L7 스위치가 cost가 가장 높으며 모든 계층 대체 가능하지만 자원 낭비... L4도 L2스위치로 대체 가능하지만 낭비다!!
=> 단순 TCP/UDP 로드밸런싱 서버 부하분산만 필요하면 L4, 그 이상의 해석하는 리소스는 낭비

L7 로드밸런싱은 L4 프로토콜과 Profile을 활용할 수 있으며 L7 프로토콜 헤더를 읽고 활용도 가능함

profile
만리전정

2개의 댓글

comment-user-thumbnail
2023년 6월 14일

좋은 글 감사합니다.

1개의 답글