로드 밸런싱은 어플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 분배하는 방법이다. 최신 어플리케이션은 수백만 명의 사용자를 동시에 처리하고 정확한 텍스트, 비디오, 이미지 및 기타 데이터를 빠르고 안정적인 방식으로 각 사용자에게 반환해야 한다. 이렇게 많은 양의 트래픽을 처리하기 위해 대부분의 어플리케이션에는 데이터가 중복되는 리소스 서버가 많이 있다. 로드 밸런서는 사용자와 서버 그룹 사이에 위치하며 보이지 않는 촉진자 역할을 하여 모든 리소스 서버가 동일하게 사용되도록 하는 디바이스이다.
로드 밸런싱의 장점
로드 밸런싱은 어플리케이션 서버와 방문자 또는 클라이언트 간의 인터넷 트래픽을 지시하고 제어한다. 결과적으로 어플리케이션의 가용성, 확장성, 보안 및 성능이 향상된다.
- 서버에 트래픽이 과집중되면 서버 장애 또는 유지 관리로 인해 어플리케이션 가동 중지 시간이 늘어 방문자가 어플리케이션을 사용할 수 없게 될 수 있다. 로드 밸런서는 서버 문제를 자동으로 감지하고 클라이언트 트래픽을 사용 간으한 서버로 리디렉션하여 시스템의 내결함성을 높인다.
- 로드 밸런서를 사용하여 여러 서버 간에 네트워크 트래픽을 지능적으로 전달할 수 있다. 로드 밸런싱 덕분에 어플리케이션에서 수천 개의 클라이언트 요청을 처리할 수 있다.
- 로드 밸런서에는 인터넷 어플리케이션에 또 다른 보안 계층을 추가할 수 있는 보안 기능이 내장되어 있다. 이는 공격자가 서버 장애를 일으키는 수백만 개의 동시 요청으로 어플리케이션 서버를 가득 채우는 분산 서비스 거부 공격(DDOS)을 처리하는데 유용한 도구이다.
- 로드 밸런서는 응답 시간을 늘리고 네트워크 지연 시간을 줄여 어플리케이션 성능을 향상시킨다.
로드 밸런싱 알고리즘
로드 밸런싱 알고리즘은 로드 밸런서가 서로 다른 클라이언트 요청 각각에 가장 적합한 서버를 결정하기 위해 따르는 규칙이다. 로드 밸런싱 알고리즘은 크게 두가지 범주로 나뉜다.
정적 로드 밸런싱
정적 로드 밸런싱 알고리즘은 고정된 규칙을 따르며 현재 서버 상태와 무관하다.
- 라운드 로빈 방식
- 가중치 기반 라운드 로빈 방식
- IP해시 방식
동적 로드 밸런싱
동적 로드 밸런싱 알고리즘은 트래픽을 배포하기 전에 서버의 현재 상태를 검사한다.
- 최소 연결 방법
- 가중치 기반 최소 연결 방법
- 최소 응답 시간 방법
- 리소스 기반 방법
로드 밸런싱 예시
회사는 일반적으로 여러 서버에서 어플리케이션을 실행한다. 이러한 서버 배열을 서버 팜이라고 한다. 어플리케이션에 대한 사용자 요청은 먼저 로드 밸런서로 이동한다. 그런 다음 로드 밸런서는 요청을 처리하는 데 가장 적합한 서버 팜의 단일 서버로 각 요청을 라우팅한다.
로드 밸런싱은 레스토랑에서 관리자가 수행하는 작업과 같다. 5명의 웨이터가 있는 식당을 생각해보면, 고객이 웨이터를 선택할 수 있는 경우 한두 명의 웨이터는 업무에 과부하가 걸리고 나머지는 유휴 상태일 수 있다. 이러한 경우가 발생하지 않도록 레스토랑 관리자는 고객에게 가장 적합한 특정 웨이터에게 고객을 할당한다.
로드 밸런싱 유형
로드 밸런서가 트래픽을 리디렉션하기 위해 클라이언트 요청에서 확인하는 컨텐츠에 따라 로드 밸런싱을 3가지 주요 범주로 분류할 수 있다.
어플리케이션 로드 밸런싱
복잡한 최신 어플리케이션에는 단일 어플리케이션 기능을 전담하는 여러 서버를 포함하는 여러 서버 팜이 있다. 어플리케이션 로드 밸런서는 HTTP헤더 또는 SSL세션 ID와 같은 요청 컨텐츠를 확인하여 트래픽을 리디렉션한다.
예를 들어, 전사 상거래 어플리케이션에는 제품 디렉터리, 장바구니 및 결제 기능이 있다. 어플리케이션 로드 밸런서는 이미지와 비디오를 포함하지만 열린 연결을 유지할 필요가 없는 서버에 제품 검색 요청을 전송한다. 이에 비해 많은 클라이언트 연결을 유지하고 장바구니 데이터를 오랫동안 저장할 수 있는 서버로 장바구니 요청을 전송한다.
네트워크 로드 밸런싱
네트워크 로드 밸런서는 IP주소 및 기타 네트워크 정보를 검사하여 트래픽을 최적으로 리디렉션한다. 어플리케이션 트래픽의 소스를 추적하고 여러 서버에 고정 IP주소를 할당할 수 있다. 네트워크 로드 밸런서는 앞에서 설명한 고정 및 동적 로드 밸런싱 알고리즘을 사용하여 서버 로드를 배포한다.
글로벌 서버 로드 밸런싱
글로벌 서버 로드 밸런싱은 지리적으로 분산된 여러 서버에서 발생한다. 예를 들어, 회사는 여러 데이터 센터, 여러 국가 및 전 세계의 타사 클라우드 제공업체에 서버를 둘 수 있다. 이 경우 로드 밸런서는 리전 또는 영역 내에서 어플리케이션 로드를 관리한다. 그리고 클라이언트와 지리적으로 더 가까운 서버 대상으로 트래픽을 리디렉션하려고 한다. 서버 장애가 발생한 경우에만 클라이언트의 지리적 영역 외부의 서버로 트래픽을 리디렉션할 수 있다.
DNS 로드 밸런싱
DNS로드 밸런싱에서는 도메인의 리소스 풀에서 네트워크 요청을 라우팅하도록 도메인을 구성한다. 도메인은 웹 사이트, 메일 시스템, 인쇄 서버 또는 인터넷을 통해 엑세스 할 수 있는 다른 서비스에 해당할 수 있다. DNS 로드 밸런싱은 어플리케이션 가용성을 유지하고 전역적으로 분산된 리소스 풀에서 네트워크 트래픽을 분산하는 데 유용하다.
'일기' 카테고리의 다른 글
CPU (0) | 2025.01.15 |
---|---|
삼각함수 (0) | 2025.01.14 |
대칭키 암호화와 공개키 암호화 (0) | 2025.01.14 |
protobufjs (0) | 2025.01.08 |
Protocol Buffers (0) | 2025.01.07 |