Round-robin, Least-connection, Hash, Persist 알고리즘

agnusdei·2025년 1월 8일
0

Network

목록 보기
189/419

문제: Round-robin, Least-connection, Hash, Persist 알고리즘에 대해 설명하고 각각의 특징 및 장단점을 기술하시오.


1. Round-Robin Algorithm

1-1. 개념

Round-Robin은 가장 기본적인 로드 밸런싱(load balancing) 알고리즘으로, 요청을 각 서버에 순서대로 분배합니다.
이 방식은 특정 서버에 과도한 부하가 집중되지 않도록 요청을 고르게 배분하는 데 초점이 맞춰져 있습니다.

1-2. 등장배경 & 목적

  • 등장배경: 복수의 서버로 트래픽을 분산하여 서비스 성능과 가용성을 높이기 위해 고안됨.
  • 목적: 간단하고 빠른 분산 로직 구현.

1-3. 역할

  • 모든 서버에 요청을 균등하게 배분하여 자원 활용률을 높임.

1-4. 활용 계층 또는 범위

  • 네트워크 계층 (L4) 또는 애플리케이션 계층 (L7).
  • 간단한 로드 밸런싱 구조에서 사용.

1-5. 구성요소

  • 서버 리스트: 요청을 분배할 서버 목록.
  • 순차 카운터: 다음 요청을 받을 서버를 결정하기 위한 카운터.

1-6. 시간순 작동 순서

  1. 첫 번째 요청은 첫 번째 서버로 전달.
  2. 두 번째 요청은 두 번째 서버로 전달.
  3. 모든 서버가 한 번씩 선택되면 처음으로 돌아가 반복.

1-7. 종류

  • 기본 Round-Robin
  • Weighted Round-Robin (가중치 적용)

1-8. 장단점

장점

  • 구현이 간단하고 빠름.
  • 특별한 조건 없이 균등한 분배 가능.

단점

  • 각 서버의 처리 능력을 고려하지 않음.
  • 부하가 서버별로 고르게 분산되지 않을 수 있음.

2. Least-Connection Algorithm

2-1. 개념

Least-Connection은 현재 연결 수(connection count)가 가장 적은 서버로 요청을 분배하는 알고리즘입니다.

2-2. 등장배경 & 목적

  • 등장배경: 서버의 부하 상태를 실시간으로 반영하여 효율적으로 자원을 분배하기 위해 개발됨.
  • 목적: 각 서버의 부하를 최소화하고 성능을 최적화.

2-3. 역할

  • 서버의 실시간 상태를 고려하여 트래픽을 분배.

2-4. 활용 계층 또는 범위

  • 네트워크 계층 (L4) 또는 애플리케이션 계층 (L7).
  • 비균등한 요청 부하 환경에서 적합.

2-5. 구성요소

  • 서버 리스트: 요청을 처리할 서버 목록.
  • 연결 수 모니터링: 각 서버의 현재 연결 상태.

2-6. 시간순 작동 순서

  1. 각 서버의 현재 연결 수 확인.
  2. 연결 수가 가장 적은 서버 선택.
  3. 요청을 선택된 서버로 전달.

2-7. 종류

  • 기본 Least-Connection
  • Weighted Least-Connection (가중치 적용)

2-8. 장단점

장점

  • 부하가 적은 서버로 요청이 전달되므로 자원 효율성이 높음.
  • 동적인 부하 분배 가능.

단점

  • 실시간 연결 수 추적이 필요하여 오버헤드 발생 가능.
  • 요청이 단기적으로 집중될 경우 부하 불균형이 생길 수 있음.

3. Hash Algorithm

3-1. 개념

Hash 알고리즘은 요청의 특정 속성(예: 클라이언트 IP, 요청 URL 등)을 해시(Hash) 값으로 변환하여, 이 값을 기준으로 서버를 선택합니다.

3-2. 등장배경 & 목적

  • 등장배경: 동일한 클라이언트가 동일한 서버로 연결되도록 보장하기 위해 개발됨.
  • 목적: 클라이언트와 서버 간 세션 일관성(Session Affinity) 유지.

3-3. 역할

  • 요청의 고유 특성을 기반으로 분배하여 세션 유지 가능.

3-4. 활용 계층 또는 범위

  • 애플리케이션 계층 (L7).
  • 세션 기반 애플리케이션 (예: 로그인 상태 유지).

3-5. 구성요소

  • 해시 함수: 요청 속성을 해시 값으로 변환.
  • 서버 매핑: 해시 값을 서버에 매핑.

3-6. 시간순 작동 순서

  1. 요청 속성(예: 클라이언트 IP) 확인.
  2. 속성을 해시 값으로 변환.
  3. 해시 값을 기준으로 서버 선택.

3-7. 종류

  • Consistent Hashing (서버 추가/삭제 시 재분배 최소화)

3-8. 장단점

장점

  • 세션 일관성 유지 가능.
  • 특정 클라이언트의 요청이 항상 동일한 서버로 전달됨.

단점

  • 서버 장애 시 복구가 복잡.
  • 해시 충돌 가능성.

4. Persist Algorithm

4-1. 개념

Persist는 클라이언트의 특정 속성을 기반으로 동일한 서버로 지속적으로 연결하는 방식입니다.
일반적으로 Session Persistence 또는 Sticky Session이라고도 불립니다.

4-2. 등장배경 & 목적

  • 등장배경: 세션 정보를 유지해야 하는 애플리케이션에서 사용.
  • 목적: 세션 상태를 보존하여 일관된 사용자 경험 제공.

4-3. 역할

  • 동일한 클라이언트가 동일한 서버로 지속적으로 연결되도록 보장.

4-4. 활용 계층 또는 범위

  • 애플리케이션 계층 (L7).
  • 상태 기반 애플리케이션 (예: 쇼핑 카트, 게임 서버).

4-5. 구성요소

  • 세션 식별자: 클라이언트를 구분하기 위한 고유 값.
  • 서버 매핑 테이블: 세션 식별자와 서버 매핑.

4-6. 시간순 작동 순서

  1. 클라이언트 요청 시 세션 식별자 확인.
  2. 기존에 매핑된 서버로 요청 전달.
  3. 새로운 세션인 경우, 적절한 서버를 선택하고 매핑.

4-7. 종류

  • Cookie 기반 Persist
  • Source IP 기반 Persist

4-8. 장단점

장점

  • 세션 유지가 필요할 때 적합.
  • 사용자 경험 개선.

단점

  • 특정 서버에 트래픽이 집중될 가능성.
  • 서버 장애 시 세션 정보 손실 위험.

5. 비교 요약

알고리즘특징장점단점
Round-Robin순차적으로 요청 분배간단, 균등 분배부하 상태 고려하지 않음
Least-Connection연결 수가 적은 서버로 요청 분배자원 효율성, 동적 분배 가능추적 오버헤드, 단기 부하 가능성
Hash요청 속성 기반 서버 선택세션 일관성 유지서버 장애 시 복잡성 증가
Persist특정 클라이언트가 동일 서버로 연결세션 상태 유지특정 서버 트래픽 집중 위험

10. 쉽게 요약

  • Round-Robin: "한 번씩 돌아가며!"
  • Least-Connection: "가장 여유 있는 서버로!"
  • Hash: "특성에 따라 배정!"
  • Persist: "같은 사용자, 같은 서버!"

0개의 댓글