개발 공부/서버
[서버 성능 최적화] 로드밸런싱 다시 보기, 서버가 많아지면 꼭 필요한 분산 전략
악마의 개발자
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 종료 위치 | 로드밸런서에서 종료할지, 서버에서 처리할지 결정 필요 |
🧠 정리 한마디!
“로드밸런서는 많아진 서버를 똑똑하게 활용하게 해주는 기술입니다.”
✔️ 핵심:
- 요청을 여러 서버에 자동 분산
- 서버 과부하 방지 + 장애 대응
- 전략은 서비스 구조와 트래픽 패턴에 따라 선택
반응형