개발 공부/서버

[서버 성능 최적화] 로드밸런싱 다시 보기, 서버가 많아지면 꼭 필요한 분산 전략

악마의 개발자 2025. 5. 23. 20:00
반응형

서버 성능 최적화


💡 “트래픽 많아지면 서버를 늘리면 된다던데… 그럼 어떻게 나눠주지?”

트래픽이 늘어나서 서버를 2대, 3대, 10대로 늘렸어요.
그런데…

"어떤 서버로 요청이 가야 하죠?"
"접속자가 갑자기 몰리면 일부 서버만 터지는 거 아니에요?"

→ 이걸 해결하는 핵심 기술이 바로 로드밸런서(Load Balancer)입니다. 🚦


🚦 로드밸런서란?

로드밸런서(Load Balancer)

클라이언트 요청을 여러 서버에 자동으로 분산해주는 중간 관리자입니다.

[사용자] → [로드밸런서] → [서버1 / 서버2 / 서버3]

 

✅ 트래픽 균형 유지
✅ 서버 과부하 방지
✅ 확장성과 안정성 확보


🧠 로드밸런싱이 필요한 이유

이유 설명
트래픽 증가 대응 서버가 여러 대라도 균등하게 처리
장애 대응 한 서버 다운되면 자동으로 우회
확장성 확보 서버를 추가하기만 하면 자동 분산
사용자 응답속도 유지 특정 서버 과부하로 인한 지연 방지
 

🎯 로드밸런싱 전략 종류

방식 설명 사용 상황
Round Robin 순서대로 서버에 요청 분배 단순 구조, 요청 비슷할 때
Least Connection 현재 연결이 가장 적은 서버로 요청 처리 시간 차이 날 때
IP Hash 같은 IP는 같은 서버로 연결 세션 유지가 필요할 때
Weighted Round Robin 성능이 더 좋은 서버에 더 많은 요청 서버 사양이 다른 경우
 

🧱 실무에서 많이 쓰는 로드밸런서

도구 설명
Nginx 설정 유연한 오픈소스, 소규모에 적합
AWS ELB AWS 클라우드에서 자동 로드밸런싱
Cloudflare CDN + 글로벌 로드밸런싱
HAProxy 고성능 트래픽 분산기, 대규모에 적합
 

🔧 Nginx 로드밸런서 설정 예시

http {
  upstream backend {
    server backend1.example.com;
    server backend2.example.com;
  }

  server {
    listen 80;
    location / {
      proxy_pass http://backend;
    }
  }
}

✅ 설정 한 번으로 트래픽 자동 분산!
✅ 서버 다운 시 자동으로 제거하는 health_check도 설정 가능


🧩 AWS ELB 구조 이해

구성 요소 설명
ALB (Application Load Balancer) HTTP/HTTPS 기반 요청 분산
NLB (Network Load Balancer) TCP 레벨 분산, 속도 우선
CLB (Classic Load Balancer) 이전 세대, ALB/NLB로 대체 권장
 

✅ AWS ELB 특징

  • 트래픽 자동 분산
  • 오토스케일링과 연동
  • 헬스체크로 비정상 서버 제거

🚨 로드밸런싱 실무 주의점

항목 이유
세션 유지 방식 서버 분산 시 로그인 유지 깨질 수 있음 (세션 스토리지 공유 or JWT 필요)
헬스 체크 설정 다운된 서버에도 트래픽이 가면 장애 발생
TLS 종료 위치 로드밸런서에서 종료할지, 서버에서 처리할지 결정 필요
 

🧠 정리 한마디!

“로드밸런서는 많아진 서버를 똑똑하게 활용하게 해주는 기술입니다.”

 

✔️ 핵심:

  • 요청을 여러 서버에 자동 분산
  • 서버 과부하 방지 + 장애 대응
  • 전략은 서비스 구조와 트래픽 패턴에 따라 선택
반응형