로드밸런싱

moon.kick·2025년 4월 16일

괜찮아! 로드밸런싱은 진짜 중요하지만 살짝 헷갈릴 수 있어. 딱 정리해줄게!
쉽게 말하면 ‘트래픽을 나눠주는 교통 정리’ 역할이야 🚦


🌐 로드밸런싱 (Load Balancing)이란?

여러 서버(또는 서비스 인스턴스)로 사용자 요청을 분산해서
하나의 서버에 과부하가 걸리지 않도록 트래픽을 나눠주는 기술이야.


🧭 왜 필요할까?

이유설명
✅ 성능 향상한 서버가 모든 요청을 처리하면 느려져. 여러 대가 나눠 처리하면 쾌적해져
✅ 장애 대응한 서버가 죽어도 다른 서버가 대신 처리 가능 (가용성 확보)
✅ 확장성트래픽이 많아지면 서버를 더 추가해서 처리 가능 (수평 확장)

⚙️ 어떻게 작동하나?

  1. 사용자가 www.example.com으로 요청을 보냄
  2. 로드밸런서가 중간에서 대기
  3. 서버 A, B, C 중 하나로 요청을 분산시킴
  4. 응답을 사용자에게 전달

📊 로드밸런싱 방식 (알고리즘)

방식설명
🔁 Round Robin순서대로 분산 (A → B → C → A...)
⚖️ Least Connections연결 수가 가장 적은 서버로 전달
🧠 IP HashIP 주소 기반으로 고정 서버에 연결 (세션 유지에 유리)
🧪 Random무작위 선택

🧰 어디서 사용되나?

위치예시
하드웨어 LBCisco, F5 등 고가 장비
소프트웨어 LBNginx, HAProxy
클라우드 LBAWS ELB, GCP Load Balancer, Azure Load Balancer
애플리케이션 레벨스프링 클라우드에서 Eureka + Ribbon, Spring Cloud Gateway

🧱 예: Spring Cloud 환경에서의 로드밸런싱

[사용자] → [Spring Cloud Gateway] → [Eureka에서 인스턴스 목록 조회] → [적절한 서비스로 전달]
  • Gateway는 로드밸런서 역할
  • Eureka는 서비스 등록/탐색
  • 내부적으로 Ribbon이나 Spring LoadBalancer가 분산 처리함

☁️ 로드밸런싱 + 클라우드

  • Kubernetes에서는 Service + Ingress Controller가 로드밸런싱 역할
  • AWS에서는 ALB (Application Load Balancer) 사용

🎯 핵심 요약

핵심개념내용
역할요청 분산, 서버 부하 줄이기
장점성능 향상, 장애 대응, 확장성
알고리즘라운드로빈, 최소 연결, IP 해시 등
적용 위치하드웨어, 소프트웨어, 클라우드, 애플리케이션

필요하다면 도식으로 그림 하나 그려줄게!
그리고 스프링에서 직접 로드밸런싱 설정 예시도 보여줄 수 있어.
Spring Cloud LoadBalancer, Ribbon, Gateway 등 중 어떤 게 궁금해? 😊

profile
@mgkick

0개의 댓글