로드밸런싱 알고리즘 성능 비교 연구[1]

Chu Sang Yoon·2025년 6월 29일

lab

목록 보기
1/11

연구 제안서

연구 주제

머신러닝 기반 지능형 로드밸런싱 시스템 개발 및 다중 알고리즘 성능 비교 분석


1. 연구 배경 및 목적

문제 인식

최근 웹 서비스들은 많은 사용자들의 동시 접속과 다양한 트래픽 패턴에 대응하기 위해 여러 서버를 함께 운영하는 방식을 채택하고 있습니다. 이런 환경에서 사용자 요청을 여러 서버에 적절히 분산시키는 로드밸런싱은 서비스의 성능과 안정성에 중요한 영향을 미치게 됩니다.

현재 사용되고 있는 주요 로드밸런싱 알고리즘들(Round Robin, Weighted Round Robin, Least Connections, Consistent Hashing, IP Hash, Least Response Time)을 살펴보면, 각각이 서로 다른 상황에 특화되어 있다는 것을 알 수 있습니다.

실제 서비스를 운영하다 보면 시간대에 따른 트래픽 변화, 예상치 못한 접속량 증가, 서버 장애 등 예측하기 어려운 다양한 상황들이 계속해서 발생합니다. 기존의 고정된 규칙으로 동작하는 알고리즘들만으로는 이렇게 변화하는 환경에 유연하게 대응하기가 쉽지 않아, "우리 상황에는 어떤 알고리즘이 가장 적합할까?"라는 질문에 명확한 답을 찾기 어려운 것이 현실입니다.

연구 목적

  • 로드밸런싱 알고리즘의 체계적 이해
    • 6가지 주요 알고리즘의 동작 원리와 특성 분석
    • 각 알고리즘이 최적화된 환경과 한계점 파악
  • 다양한 시나리오별 성능 특성 분석
    • 정상 트래픽, 과부하, 서버 장애 상황에서의 알고리즘별 성능 비교
    • 실제 측정 가능한 지표(응답시간, 처리량, 에러율)를 통한 객관적 평가
  • 상황별 최적 알고리즘 선택 가이드라인 구축
    • 트래픽 패턴과 서버 환경에 따른 알고리즘 추천 기준 마련
    • 실무진이 활용할 수 있는 구체적인 의사결정 도구 제공
  • 머신러닝 기반 지능형 로드밸런싱 가능성 탐구
    • 실시간 서버 성능 데이터를 활용한 예측 모델 개발
    • 상황에 따라 자동으로 최적 알고리즘을 선택하거나 동적 가중치를 조정하는 시스템 구현

2. 연구 내용 및 방법

2.1 시스템 아키텍처

Phase 1: 로컬 개발 환경

  • Spring Boot - 메인 로드밸런서 및 HTTP 프록시 (포트 8080)
  • Docker Compose - 4개 웹서버 컨테이너 (포트 5001-5004)
  • Python Flask - ML 예측 API 서버 (포트 9000)
  • 실시간 모니터링 - Spring Boot Actuator + 커스텀 메트릭(예정)

Phase 2: 클라우드 확장 환경

  • AWS EC2 - Spring Boot 로드밸런서 배포
  • AWS Docker - 웹서버 클러스터 운영
  • AWS Lambda - Python ML 모델 서버리스 호스팅(선택적)
  • AWS CloudWatch - 성능 모니터링 및 로그 수집(선택적)

기술 스택:

  • Backend: Spring Boot (Java 17+), Docker, Flask (Python)
  • ML Libraries: scikit-learn, pandas, numpy
  • Cloud: AWS (EC2, Lambda, CloudWatch)
  • Load Testing: JMeter, Apache Bench, 커스텀 트래픽 생성기
  • Monitoring: Spring Actuator

2.2 비교 대상 알고리즘

기존 알고리즘 6종:

1. Round Robin

  • 순차적 서버 선택
  • 구현 단순, 균등 분산

2. Weighted Round Robin

  • 서버 성능에 따른 가중치 적용
  • 서버 스펙 차이 반영

3. Least Connections

  • 현재 연결 수가 가장 적은 서버 선택
  • 장시간 연결에 효과적

4. Consistent Hashing

  • 사용자 ID/IP 해시 기반 서버 매핑
  • 세션 지속성 보장

5. IP Hash

  • 클라이언트 IP 기반 서버 선택
  • 캐시 효율성 향상

6. Least Response Time

  • 실시간 응답시간 기반 선택
  • 동적 성능 반영

제안 알고리즘:

7. ML-Based Predictive Load Balancing

  • 실시간 성능 지표 수집 (응답시간, CPU, 메모리, 네트워크)
  • 머신러닝 예측 모델 (시계열 분석 + 회귀 모델)
  • 동적 가중치 조정 및 선제적 트래픽 분산

2.3 테스트 시나리오

시나리오 1: 정상 트래픽

  • 일정한 요청량 (초당 10-20 요청)
  • 모든 서버 정상 동작

시나리오 2: 과부하 상황

  • 급격한 트래픽 증가 (초당 100+ 요청)
  • 서버 성능 한계 테스트

시나리오 3: 서버 장애 상황

  • 테스트 중간에 1개 서버 다운
  • 장애 복구 및 트래픽 재분산 테스트

최종 테스트 규모:

  • 4개 서버 × 7개 알고리즘 × 3개 시나리오 = 21회 테스트

3. 평가 지표

3.1 성능 지표

  • 응답 시간: 평균, 95th percentile, 최대값
  • 처리량: 초당 요청 처리 수 (RPS)
  • 에러율: 타임아웃, 5xx 에러 비율
  • 부하 분산 균등성: 서버간 요청 분배 비율

3.2 특수 지표

  • 세션 지속성: 같은 사용자의 서버 일관성 (Consistent Hashing 평가)
  • 예측 정확도: ML 모델의 부하 예측 정확성 (예측값 vs 실제값)

4. 예상 연구 성과

4.1 정량적 성과

  • 알고리즘별 성능 비교표 구축
    • 7개 알고리즘 × 3개 시나리오 = 21가지 성능 데이터
    • 각 조합별 응답시간, RPS, 에러율 측정 결과
    • 시나리오별 최적 알고리즘 순위표 작성
  • ML 기반 알고리즘 성능 검증
    • 기존 최적 알고리즘 대비 성능 향상률 측정
    • 예측 정확도 및 적응 속도 정량화
    • 트래픽 패턴별 학습 효과 분석
  • 실험 데이터셋 구축
    • 4개 서버 × 7개 알고리즘 × 3개 시나리오 실험 결과
    • 총 21회 테스트 케이스 성능 데이터
    • 다양한 부하 조건별 응답 패턴 데이터베이스

4.2 정성적 성과

  • 시나리오별 알고리즘 선택 가이드라인
    • 트래픽 특성에 따른 최적 알고리즘 추천 기준
    • 서버 환경별 적용 우선순위 제시
  • 하이브리드 아키텍처 설계 방법론
    • Spring Boot + Python Flask ML 연동 기술 검증
    • 로컬 환경에서 AWS 클라우드 확장 방안 제시
  • 실무 적용 가능성 검증
    • Docker 기반 마이크로서비스 환경에서의 활용성
    • 기존 시스템 대비 구현 복잡도 및 비용 효율성 분석

5. 연구 계획

Phase 1: 계획 및 이론

  • 📋 1편: 목적 및 계획 - 연구 동기와 전체 로드맵
  • 🔍 2편: 로드밸런싱 정복 - 개념, 필요성, 종류

Phase 2: 환경 구축 및 설계

  • 🐳 3편: Docker 실습 - 4개 서버 환경 구축하기
  • ⚙️ 4편: 6가지 알고리즘 탐구 - 각각의 원리와 특징

Phase 3: 구현 및 테스트

  • 💻 5편: Spring Boot로 구현하기 - 실제 코딩 과정
  • 📊 6편: 성능 테스트 & 결과 분석 - 21회 테스트 데이터

Phase 4: ML 확장 및 마무리

  • 🧠 7편: ML로 똑똑하게 만들기 - Flask + 머신러닝
  • 🎯 8편: 최종 결과 및 후기 - 성과와 아쉬운 점

0개의 댓글