로드 밸런서는 애플리케이션을 지원하기 위해 네트워크 트래픽을 리소스(온프레미스 또는 클라우드) 전반에 걸쳐 동적으로 분산할 수 있습니다.
로드 밸런서는 트래픽 프록시 역할을 하고 네트워크 또는 애플리케이션 트래픽을 여러 서버의 엔드포인트에 분산하는 솔루션입니다. 로드 밸런서는 트래픽이 가장 많은 시간대에 용량을 분산하고, 애플리케이션의 안정성을 높이는 데 사용됩니다. 개별 서비스나 클라우드의 부담을 줄여 애플리케이션의 전반적인 성능을 개선하고, 다양한 컴퓨팅 표면에 수요를 분산시켜 애플리케이션과 네트워크 세션을 유지하는 데 도움이 됩니다.
최신 애플리케이션은 수백만 개의 세션을 동시에 처리하고 각 사용자에게 정확한 텍스트, 비디오, 이미지 및 기타 데이터를 빠르고 안정적으로 반환해야 합니다. 이렇게 많은 양의 트래픽을 처리하기 위해 대부분의 애플리케이션은 중복된 데이터를 보유한 많은 리소스 서버를 갖고 있습니다.
부하 분산은 애플리케이션을 지원하는 리소스 네트워크 에 네트워크 트래픽을 동적으로 분산합니다. 로드 밸런서는 사용자와 서버 그룹 사이에 위치하여 보이지 않는 촉진제 역할을 하며 모든 리소스 서버가 동등하게 사용되도록 보장하는 장치 또는 서비스입니다. 로드 밸런서는 사용량과 수요가 많은 시기에도 안정성과 가용성을 높이고, 가동 시간을 늘리고 더 나은 사용자 경험을 보장합니다.
어떤 경우에는 세션 동안 클라이언트의 모든 요청이 동일한 서버로 전송되는 것이 필수적입니다. 예를 들어, 클라이언트가 장바구니에 품목을 넣은 다음 구매를 완료하는 경우가 그렇습니다. 클라이언트와 서버 간의 연결을 유지하는 것을 세션 지속성 이라고 합니다. 세션 지속성이 없으면 정보를 여러 서버 간에 동기화해야 하며 잠재적으로 여러 번 가져와야 하므로 성능에 비효율성이 발생합니다.
사용자와 고객은 거의 실시간으로 정보를 찾고 거래를 수행할 수 있어야 합니다. 최대 수요와 사용 시간대에도 지연 시간이나 신뢰할 수 없고 일관되지 않은 응답은 고객을 영원히 잃게 할 수 있습니다. 컴퓨팅 요구 사항이 급증하면 유입 수요 또는 "부하"가 너무 높아 쉽게 수용할 수 없을 경우 내부 서버나 서버 시스템에 혼란이 발생할 수 있습니다.
로드 밸런서를 사용하는 장점은 다음과 같습니다.
부하 분산 알고리즘에는 작동 방식에 따라 정적 부하 분산과 동적 부하 분산의 두 가지 유형이 있습니다. 정적 부하 분산은 분산 네트워크에 있는 기존 서버의 성능 용량 정보를 포함하는 알고리즘을 사용하여 서버에 들어오는 부하를 측정합니다. 동적 부하 분산은 런타임 중에 분산해야 할 부하의 양을 동적으로 식별하고 어떤 시스템이 부하를 감당해야 하는지 알려줍니다. 이 제품은 유입 부하 변동이 심한 시스템을 위해 설계되었습니다.
다음은 몇 가지 일반적인 부하 분산 알고리즘 유형입니다.
정적 부하 분산의 예: 어떤 회사는 대부분 정적인 콘텐츠가 담긴 웹사이트를 호스팅합니다. 이 시나리오는 트래픽 요구 사항이 예측 가능하고 일관적이기 때문에 정적 로드 밸런서에 이상적입니다. 회사는 두 개(또는 그 이상)의 동일한 웹 서버를 사용하여 정적 로드 밸런서가 트래픽을 분산할 수 있습니다.
동적 부하 분산의 예: 회사는 트래픽의 급증, 급증, 감소를 경험합니다. 예측 가능한 것도 있고, 예측 불가능한 것도 있습니다. 이러한 조직은 동적 부하 분산을 통해 이점을 얻을 수 있습니다. 이러한 회사로는 블랙 프라이데이 영업 시간과 날짜를 알리는 전자 상거래 소매업체, 계절별 백신에 대한 온라인 예약을 할 수 있다고 발표한 의료 회사, 실업 수당 수급자에게 주중 특정 요일에 주간 청구서를 제출하도록 요구하는 정부 실업 기관, 자연 재해에 신속하게 온라인으로 대응해야 하는 구호 기관 등이 있습니다. 교통량과 수요의 급증은 계획할 수 있는 경우도 있지만, 계획할 수 없는 경우도 있습니다. 이러한 시나리오에서 동적 부하 분산 알고리즘은 고객과 사용자에게 가장 필요할 때 앱과 리소스에 대한 액세스를 보장하는 데 도움이 됩니다.
다양한 기능을 갖춘 여러 유형의 로드 밸런서는 OSI(Open System Interconnection) 모델이라는 아키텍처에 속합니다. 이 모델에는 7개의 층이 있습니다. 네트워크 방화벽은 1~3단계(L1-물리적 배선, L2-데이터 링크, L3-네트워크)로 구분됩니다. 한편, 로드 밸런싱은 4~7 계층(L4-전송, L5-세션, L6-프레젠테이션, L7-애플리케이션)에서 이루어집니다. 로드 밸런서는 일반적으로 4계층과 7계층에서 사용됩니다 .
클라우드 기반 로드 밸런서는 단순히 트래픽 급증에 대한 트래픽 컨트롤러이거나 서버 사용을 최적화하는 트래픽 컨트롤러가 아닙니다. 클라우드 기반 로드 밸런서는 트래픽 병목 현상이 발생하기 전에 이를 시각화하는 데 도움이 되는 예측 분석도 제공합니다. 이를 통해 모든 회사가 IT 솔루션을 최적화하는 데 도움이 되는 실행 가능한 통찰력을 얻을 수 있습니다.
애플리케이션 로드 밸런싱: 기업이 애플리케이션 성능과 가용성에 점점 더 의존하게 됨에 따라 애플리케이션 로드 밸런싱은 확장, 운영 간소화, 비용 절감에 도움이 될 수 있습니다.
글로벌 서버 부하 분산: 전 세계에 사용자와 고객이 있는 기업은 글로벌 서버 부하 분산을 통해 부하 가용성을 향상할 수 있으며, 이를 통해 사용자를 가장 가까운 엔드포인트로 보낼 수 있습니다.
DNS 부하 분산: 도메인 이름 시스템(DNS)에서 도메인에 대한 사용자 요청이 서버 머신 그룹에 분산되도록 도메인을 구성하는 관행을 DNS 부하 분산 이라고 합니다.
네트워크 부하 분산: 애플리케이션 전송 컨트롤러(ADC)는 물리적 서버의 프록시 역할을 하는 물리적 또는 가상 어플라이언스로, 애플리케이션이나 네트워크 기능을 관리하고, 이를 지원하기 위해 네트워크 로드 밸런싱 솔루션을 사용합니다. ADC는 캐싱, 압축 , SSL 처리 오프로드 등의 다른 기술도 사용하여 웹 애플리케이션의 성능을 향상시킵니다. 일반적인 구성에서 ADC는 웹 서버와 애플리케이션 서버 그룹 앞에 위치하여 해당 서버와 클라이언트 간의 요청과 응답을 중재하여 최종 사용자에게 그룹이 단일 가상 서버처럼 보이도록 만듭니다.
HTTP(S) 부하 분산: 리소스 활용을 최적화하기 위해 여러 웹 또는 애플리케이션 서버 그룹에 트래픽을 분산하는 기술을 HTTP(S) 부하 분산 이라고 합니다.
내부 부하 분산: 내부 로드 밸런서는 개인 서브넷에 할당되며 공용 IP가 없습니다. 일반적으로 서버 팜 내에서 작동합니다.
지름: 직경 로드 밸런서는 네트워크 내 여러 서버에 신호 트래픽을 분산합니다. 이를 위한 가장 비용 효율적인 방법 중 하나는 데이터 전송 계층이 아닌 직경 제어 평면을 확장하는 것입니다. (직경 부하 분산은 정적이거나 동적일 수 있습니다.)
단독으로 사용하거나 클라우드 기반 로드 밸런서와 네트워크에서 함께 사용할 수 있는 다른 유형의 로드 밸런서 솔루션도 있습니다. 몇 가지 주목할 만한 유형은 다음과 같습니다.
하드웨어 로드 밸런서: 하드웨어 로드 밸런서는 특수 운영 체제가 탑재된 물리적 장치로, 일반적으로 온프레미스에 있는 여러 애플리케이션 서버에 웹 트래픽을 분산하도록 프로그래밍할 수 있습니다.
소프트웨어 로드 밸런서: 소프트웨어 로드 밸런서는 물리적 로드 밸런서처럼 작동하지만 소프트웨어 프로그램 에서 실행됩니다. 이 소프트웨어는 정적 및 동적 로드 밸런싱을 모두 사용하여 단일 장애 지점을 제거함으로써 모든 종류의 트래픽 수요에 맞게 앱을 사용 가능한 상태로 유지합니다.
가상 로드 밸런서: 하드웨어 로드 밸런서와 소프트웨어 로드 밸런서를 결합한 로드 밸런서 유형은 가상 로드 밸런서입니다. 하드웨어 백엔드 서버 간에 네트워크 트래픽 부하를 분산하는 데 도움이 되는 애플리케이션 전송 컨트롤러 소프트웨어를 사용합니다.