CS 준비

[네트워크]로드밸런서가 무엇인가요?

해로몬 2025. 2. 10. 09:19

📌 로드 밸런서 (Load Balancer)란?

로드 밸런서는 여러 개의 서버로 들어오는 트래픽을 효율적으로 분배하는 역할을 하는 장치 또는 소프트웨어다.

즉, 특정 서버에 과부하가 걸리는 것을 방지하고, 성능을 최적화하면서 서비스의 가용성을 높이는 기술이다.


📌 필요한 이유

트래픽 분산: 사용자가 많아지면 한 서버가 감당하기 어렵기 때문에, 여러 서버로 요청을 나눠서 처리해야 한다.

고가용성(HA, High Availability): 특정 서버가 다운되더라도 다른 서버가 요청을 처리할 수 있어 장애에 강하다.

성능 최적화: 부하를 적절히 분산하면 응답 속도를 빠르게 유지할 수 있다.

스케일링 가능: 서버를 추가하면서 성능을 확장(Scale-out)할 수 있다.


📌 로드 밸런서의 동작 방식

1️⃣ 사용자의 요청이 로드 밸런서로 전달된다.

2️⃣ 로드 밸런서는 특정 알고리즘을 사용하여 요청을 적절한 서버로 보낸다.

3️⃣ 서버가 요청을 처리한 후 응답을 사용자에게 전달한다.


📌 로드 밸런싱 알고리즘 종류

로드 밸런서는 여러 방법으로 트래픽을 분배할 수 있다.

알고리즘  설명
Round Robin 순차적으로 요청을 각 서버에 분배
Least Connections 현재 연결 수가 가장 적은 서버에 요청을 전달
IP Hash 클라이언트 IP를 기반으로 특정 서버에 고정 연결
Weighted Round Robin 가중치를 설정하여 성능이 좋은 서버에 더 많은 요청을 분배
Least Response Time 응답 시간이 가장 짧은 서버를 선택

📌 로드 밸런서의 종류

로드 밸런서는 트래픽을 처리하는 OSI 7계층 모델을 기준으로 크게 L4, L7 로드 밸런서로 나뉜다.

✅ L4 (Layer 4) 로드 밸런서

  • 전송 계층(TCP/UDP) 에서 트래픽을 분산함.
  • IP 주소 및 포트 번호를 기준으로 요청을 나눔.
  • 속도가 빠르지만, HTTP 헤더나 쿠키 같은 정보를 활용한 분산은 불가능.
  • 예: AWS NLB (Network Load Balancer), LVS

✅ L7 (Layer 7) 로드 밸런서

  • 애플리케이션 계층(HTTP/HTTPS) 에서 트래픽을 분산함.
  • URL, 쿠키, 헤더 값을 분석하여 요청을 특정 서버로 전달할 수 있음.
  • 더 정교한 트래픽 제어 가능.
  • 예: AWS ALB (Application Load Balancer), Nginx, HAProxy


📌 로드 밸런서 사용 예시

💡 예제: 웹 서비스에 로드 밸런서를 적용한 구조

사용자 → 로드 밸런서 → 여러 대의 웹 서버 → 데이터베이스 서버

📌 예를 들어, www.example.com에 접속하는 사용자가 많아지면

로드 밸런서가 요청을 3개의 웹 서버(Server A, Server B, Server C)로 나눠준다.

장점:

  • 한 서버가 과부하로 다운되더라도 다른 서버가 서비스를 제공 가능 (장애 대응)
  • 트래픽이 분산되어 응답 속도 향상
  • 서버를 추가하면서 확장 가능

📌 로드 밸런서가 적용된 실제 서비스 예시

1️⃣ 네이버, 카카오 같은 대형 웹 서비스

  • 수백만 명의 사용자가 동시에 접속하므로 트래픽을 여러 서버로 분산해야 함.2️⃣ 유튜브, 넷플릭스 같은 동영상 스트리밍 서비스
  • 많은 사용자가 동시에 영상을 시청하므로 트래픽을 최적화할 필요가 있음.3️⃣ 게임 서버
  • 대규모 온라인 게임에서 한 서버에 접속자가 몰리지 않도록 요청을 나눠야 함.

📌 정리: 로드 밸런서는 이런 역할을 한다!

✅ 서버 여러 대에 트래픽을 균등하게 분산한다.

성능을 최적화하고 서비스 장애를 방지한다.

✅ 여러 가지 알고리즘(Round Robin, Least Connections 등)을 사용해 트래픽을 나눈다.

L4는 TCP/UDP 단위로, L7은 HTTP/HTTPS 단위로 로드 밸런싱을 수행한다.

 

 

 

참고

https://velog.io/@ragnarok_code/Network-로드밸런서Load-Balancer란