[네트워크] 로드 밸런싱 (Load Balancing)

2025. 5. 27. 16:35·⚙️ CS/네트워크
반응형

✅  로드 밸런싱

 : 클라이언트의 요청을 여러 서버에 분산시켜 서버의 부하를 줄이는 기술

수 많은 트래픽이 하나의 서버에 집중된다고 가정해보자.
이 경우, 우리가 선택할 수 았는 방법은 다음과 같이 두 가지이다. 

 


 

📍 Scale-Up (수직적 확장)

: 서버의 하드웨어 성능을 올리는 방법
 

  • 기존 서버 자체의 성능을 향상
  • CPU나 메모리의 성능을 업그레이드
  • 하지만, 현실적으로 비용이 많이 들 수 있음

 

📍 Scale-Out (수평적 확장)

: 서버의 개수를 늘려서 여러 대의 서버가 일을 나누어 처리하는 방법
 

  • 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 운영
  • 트래픽을 여러 서버에 균등하게 분상해주는 로드밸런싱 기술이 필요

 


 

✅  로드 밸런서

: 로드 밸런싱 역할을 수행하는 장치
 
로드밸런싱에는 두 가지 계층 로드밸런서가 사용된다.

 



 

📍 L4 로드 밸런서

  • 4계층인 전송 계층에서 동작한다.
  • IP, 포트 등을 기준으로 트래픽을 분산한다.
  • 패킷 수준에서 작동하여 속도가 빠르고, 설정도 비교적 간단하다.
  • ex) TCP 연결 단위를 분산

 
 


 

📍 L7 로드 밸런서

: 애플리케이션 레벨에서 트래픽을 분산시키는 장치
 

  • 7계층인 애플리케이션 계층에서 동작한다.
  • HTTP/HTTPS 요청의 내용을 분석하고 URL, 쿠키, HTTP 헤더 등을 기준으로 트래픽을 분산한다.
  • 요청의 내용에 따라 다양한 기준으로 트래픽을 분배한다.
  • L4에 비해 정교한 로드밸런싱이 가능하다.
  • 하지만, 비용이 크고 속도와 효율성이 감소한다.
  • ex) 특정 URL은 A서버, 다른 URL은 B서버로 분산

 


✅  로드 밸런서 알고리즘

 

📍 정적 부하분산 (Static Load Balancing)

: 서버의 현재 상태를 고려하지 않고 미리 정해진 규칙에 따라 분산

  • Round Robin: 서버들에 요청을 순차적으로 고르게 분산
  • IP Hash: 클라이언트의 IP를 해싱하여 항상 같은 서버로 요청 분산
    • 세션 유지가 필요한 서비스에 유리

 


  

📍 동적 부하분산 (Dynamic Load Balancing)

 : 서버의 현재 상태(부하, 연결 수 등)를 실시간 반영하여 분산
 

  • Weighted Round Robin: 서버마다 가중치를 부여하여 분산
    • 가중치가 가장 높은 서버에 트래픽을 우선 배정
  • Least Connections: 현재 연결된 요청이 가장 적은 서버로 요청 전달
  • Least Response Time: 응답 시간이 가장 빠른 서버로 우선 분산

 

 


✨ 추가 질문

[ 로드밸런싱 대상이 되는 장치중 일부 장치가 문제가 생겨 접속이 불가능하다고 가정해 봅시다. 이 경우, 로드밸런서가 해당 장비로 요청을 보내지 않도록 하려면 어떻게 해야 할까요? ]

로드밸런서는 헬스 체크(Health Check) 기능을 통해 서버 상태를 주기적으로 검사한다.

서버가 응답하지 않으면 자동으로 대상 목록에서 제외시켜 해당 서버로 요청을 보내지 않도록 할 수 있댜.

 

[ 로드밸런서 장치를 사용하지 않고, DNS를 활용해서 유사하게 로드밸런싱을 하는 방법에 대해 설명해 주세요. ]

DNS 라운드 로빈(DNS Round Robin) 방식을 사용하면 된다.
하나의 도메인에 대해 여러 IP 주소를 등록해두면 DNS 서버가 요청마다 순서대로 다른 IP를 응답하여 로드밸런싱 효과를 준다.
단, DNS는 클라이언트 단 캐싱이 있어 실시간 서버 상태 반영이 어렵다.
반응형

'⚙️ CS > 네트워크' 카테고리의 다른 글

[네트워크] 다중화(Multiplexing)와 역다중화(Demultiplexing)  (1) 2025.05.28
[네트워크] 포워딩과 라우팅  (1) 2025.05.27
[네트워크] DHCP  (1) 2025.05.20
[네트워크] SOP와 CORS & REST  (3) 2025.05.20
'⚙️ CS/네트워크' 카테고리의 다른 글
  • [네트워크] 다중화(Multiplexing)와 역다중화(Demultiplexing)
  • [네트워크] 포워딩과 라우팅
  • [네트워크] DHCP
  • [네트워크] SOP와 CORS & REST
dev-heyjin
dev-heyjin
  • dev-heyjin
    개발 기록
    dev-heyjin
  • 전체
    오늘
    어제
    • 분류 전체보기 (56)
      • 🎯 Programming (8)
      • 💪 Algorithm (16)
      • ⚙️ CS (31)
        • 네트워크 (15)
        • 운영체제 (15)
        • 데이터베이스 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DB
    데이터베이스
    RDS
    해킹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev-heyjin
[네트워크] 로드 밸런싱 (Load Balancing)
상단으로

티스토리툴바