로드 밸런싱(Load balancing)

sun1·2023년 10월 8일
0

CS

목록 보기
4/17

📢 로드 밸런싱을 구축하기 전에 로드 밸런싱에 대해 알아보자!


🤔 로드 밸런싱이란?

로드 밸런싱은 많은 사용자가 동시에 접속하는 애플리케이션에서 트래픽을 골고루 분산시켜 서버의 부하를 줄여주는 기술을 뜻한다. 이를 통해 애플리케이션의 성능과 안정성을 높일 수 있다.


🤔 로드 밸런싱의 이점은?

  1. 애플리케이션 가용성:
    서버 문제 발생 시, 로드 밸런서가 다른 정상적인 서버로 트래픽을 자동으로 리디렉션하여 서비스 중단 없이 운영할 수 있다. 이러한 이점 때문에 이번 프로젝트에서 꼭 사용하고자 하였다.

  2. 애플리케이션 확장성:
    필요에 따라 새로운 서버를 추가하거나 기존의 서버를 제거하는 등 유연하게 시스템 규모를 조정할 수 있다.

  3. 애플리케이션 보안:
    해킹 공격 등으로부터 시스템을 보호하는 역할을 수행한다.

  4. 애플리케이션 성능 개선:
    공정한 트래픽 분배를 통해 전체적인 응답 속도와 성능을 개선한다.


🤔 로드 밸런싱 알고리즘이란?

로드 밸런싱 알고리즘은 로드 밸런서가 서로 다른 클라이언트 요청 각각에 가장 적합한 서버를 결정하기 위해 따르는 규칙이다. 로드 밸런싱 알고리즘은 크게 2가지 범주로 나눈다.

📌 정적 로드 밸런싱

정적 로드 밸런싱 알고리즘은 고정된 규칙을 따르며 현재 서버 상태와 무관합니다. 다음은 정적 로드 밸런싱의 예제들이다.

  • 라운드 로빈 방식 :
    이 방식은 이름 그대로 차례대로 요청을 서버에 분배하는 방법이다. 예를 들어, 서버 A, B, C가 있다면 첫 번째 요청은 A에, 두 번째 요청은 B에, 세 번째 요청은 C에 보내지고 다시 네 번째 요청은 A로 돌아가는 식이다.

  • 가중 기반 라운드 로빈 방식 :
    가중치 기반 라운드 로빈 로드 밸런싱에서는 우선순위 또는 용량에 따라 각 서버에 서로 다른 가중치를 할당할 수 있다. 가중치가 높은 서버는 이름 서버에서 들어오는 애플리케이션 트래픽을 더 많이 수신한다.

  • IP 해시 방식 :
    이는 사용자의 IP 주소를 기준으로 어느 서버에 연결할지 결정하는 방법이다. 같은 IP 주소에서 오는 요청이 항상 같은 서버로 연결되기 때문에 특정 사용자의 세션 정보 등을 유지하기 좋다.

📌 동적 로드 밸런싱

동적 로드 밸런싱 알고리즘은 트래픽을 배포하기 전에 서버의 현재 상태를 검사한다. 다음은 동적 로드 밸런싱 알고리즘의 몇 가지 예제이다.

  • 최소 연결 방법 :
    최소 연결 방법에서 로드 밸런서는 활성 연결이 가장 적은 서버를 확인하고 해당 서버로 트래픽을 전송한다. 이 방법에서는 모든 연결에 모든 서버에 대해 동일한 처리 능력이 필요하다고 가정한다.

  • 가중치 기반 최소 연결 방법 :
    이는 최소 연결 방법과 비슷하지만, 각 서버의 능력을 고려한다. 예를 들어, 어떤 서버가 더 높은 성능을 가지고 있다면 그 서버에 더 많은 요청이 가도록 조절할 수 있다.

  • 최소 응답 시간 방법 :
    응답 시간은 서버가 들어오는 요청을 처리하고 응답을 전송하는 데 걸리는 총 시간를 뜻한다. 로드 밸런서는 각각의 서버 응답 시간을 확인한 후, 가장 짧은 응답 시간을 보여주는 서버로 트래픽을 보낸다.

  • 리소스 기반 방법
    리소스 기반 방법에서 로드 밸런서는 현재 서버 부하를 분석하여 트래픽을 배포한다. 이는 각각의 서버가 얼마나 바쁜지 (즉, 얼마나 많은 리소스를 사용 중인지) 확인한 후, 가장 여유 있는 상태인 서버로 트래픽을 분배하는 방식이다.

0개의 댓글