Network - Load Balancing

김준영·2023년 3월 1일
1

CS공부

목록 보기
19/20

로드 밸런싱이란?


애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법이다.

웹 사이트에 접속하는 인원이 급격히 늘어남과 동시에 이 사람들에 대해 모든 트래픽을 감당하기엔 1대의 서버로는 부족하다.

대응 방안으로 하드웨어(서버)의 성능을 올리거나(Scale-up) 여러대의 서버를 나눠서 일하도록 만드는것(Scale-out)이 있다.

여러 서버에게 균등하게 트래픽을 분산시켜주는 것이 바로 로드 밸런싱이다.

로드 밸런싱의 이점?


로드 밸런싱은 애플리케이션 서버와 방문자 또는 클라이언트 간의 인터넷 트래픽을 지시하고 제어한다. 결과적으로 애플리케이션의 가용성, 확장성, 보안, 및 성능이 향상된다.

가용성

서버 장애 또는 유지 관리로 인해 애플리케이션 가동 중지 시간이 늘어 방문자가 애플리케이션을 사용할 수 없게 될 수 있습니다. 로드 밸런서는 서버 문제를 자동으로 감지하고 클라이언트 트래픽을 사용 가능한 서버로 리디렉션하여 시스템의 내결함성을 높입니다. 로드 밸런싱을 사용하여 다음 태스크를 더 쉽게 수행할 수 있습니다.

  • 애플리케이션 가동 중지 없이 애플리케이션 서버 유지 관리 또는 업그레이드 실행
  • 백업 사이트에 자동 재해 복구 제공
  • 상태 확인을 수행하고 가동 중지를 유발할 수 있는 문제 방지

확장성

로드 밸런서를 사용하여 여러 서버 간에 네트워크 트래픽을 지능적으로 전달할 수 있습니다. 로드 밸런싱이 다음을 수행하므로 애플리케이션에서 수천 개의 클라이언트 요청을 처리할 수 있습니다.

  • 한 서버에서 트래픽 병목 현상 방지
  • 필요한 경우 다른 서버를 추가하거나 제거할 수 있도록 애플리케이션 트래픽을 예측합니다.
  • 안심하고 조정할 수 있도록 시스템에 중복성을 추가합니다.

보안

로드 밸런서에는 인터넷 애플리케이션에 또 다른 보안 계층을 추가할 수 있는 보안 기능이 내장되어 있습니다. 이는 공격자가 서버 장애를 일으키는 수백만 개의 동시 요청으로 애플리케이션 서버를 가득 채우는 분산 서비스 거부 공격을 처리하는 데 유용한 도구입니다. 로드 밸런서는 다음을 수행할 수도 있습니다.

  • 트래픽 모니터링 및 악성 콘텐츠 차단
  • 공격 트래픽을 여러 백엔드 서버로 자동으로 리디렉션하여 영향 최소화
  • 추가 보안을 위해 네트워크 방화벽 그룹을 통해 트래픽 라우팅

성능

로드 밸런서는 응답 시간을 늘리고 네트워크 지연 시간을 줄여 애플리케이션 성능을 향상시킵니다. 다음과 같은 몇 가지 중요한 태스크를 수행합니다.

  • 서버 간에 로드를 균등하게 배포하여 애플리케이션 성능 향상
  • 클라이언트 요청을 지리적으로 더 가까운 서버로 리디렉션하여 지연 시간 단축
  • 물리적 및 가상 컴퓨팅 리소스의 신뢰성 및 성능 보장

로드 밸런싱 알고리즘


로드 밸런서가 서로 다른 클라이언트 요청 각각에 가장 적합한 서버를 결정하기 위해 따르는 규칙 세트.

정적 로드 밸런싱

  • 라운드 로빈 방식
  • 가중 기반 라운드 로빈 방식
  • IP 해시 방식

동적 로드 밸런싱

  • 최소 연결 방법
  • 가중치 기반 최소 연결 방법
  • 최소 응답 시간 방법
  • 리소스 기반 방법

알고리즘에 대한 자세한 설명은 : https://aws.amazon.com/ko/what-is/load-balancing/


참조 : https://aws.amazon.com/ko/what-is/load-balancing/, https://gyoogle.dev/blog/computer-science/network/Load%20Balancing.html

profile
ㅎㅎ

0개의 댓글