로드 밸런서는 애플리케이션을 지원하기 위해 네트워크 트래픽을 리소스(온프레미스 또는 클라우드) 전반에 걸쳐 동적으로 분산할 수 있습니다.

로드 밸런서는 트래픽 프록시 역할을 하고 네트워크 또는 애플리케이션 트래픽을 여러 서버의 엔드포인트에 분산하는 솔루션입니다. 로드 밸런서는 트래픽이 가장 많은 시간대에 용량을 분산하고, 애플리케이션의 안정성을 높이는 데 사용됩니다. 개별 서비스나 클라우드의 부담을 줄여 애플리케이션의 전반적인 성능을 개선하고, 다양한 컴퓨팅 표면에 수요를 분산시켜 애플리케이션과 네트워크 세션을 유지하는 데 도움이 됩니다. 

최신 애플리케이션은 수백만 개의 세션을 동시에 처리하고 각 사용자에게 정확한 텍스트, 비디오, 이미지 및 기타 데이터를 빠르고 안정적으로 반환해야 합니다. 이렇게 많은 양의 트래픽을 처리하기 위해 대부분의 애플리케이션은 중복된 데이터를 보유한 많은 리소스 서버를 갖고 있습니다.

부하 분산은 애플리케이션을 지원하는 리소스 네트워크 에 네트워크 트래픽을 동적으로 분산합니다. 로드 밸런서는 사용자와 서버 그룹 사이에 위치하여 보이지 않는 촉진제 역할을 하며 모든 리소스 서버가 동등하게 사용되도록 보장하는 장치 또는 서비스입니다. 로드 밸런서는 사용량과 수요가 많은 시기에도 안정성과 가용성을 높이고, 가동 시간을 늘리고 더 나은 사용자 경험을 보장합니다.

어떤 경우에는 세션 동안 클라이언트의 모든 요청이 동일한 서버로 전송되는 것이 필수적입니다. 예를 들어, 클라이언트가 장바구니에 품목을 넣은 다음 구매를 완료하는 경우가 그렇습니다. 클라이언트와 서버 간의 연결을 유지하는 것을 세션 지속성 이라고 합니다. 세션 지속성이 없으면 정보를 여러 서버 간에 동기화해야 하며 잠재적으로 여러 번 가져와야 하므로 성능에 비효율성이 발생합니다.

로드 밸런싱의 이점

사용자와 고객은 거의 실시간으로 정보를 찾고 거래를 수행할 수 있어야 합니다. 최대 수요와 사용 시간대에도 지연 시간이나 신뢰할 수 없고 일관되지 않은 응답은 고객을 영원히 잃게 할 수 있습니다. 컴퓨팅 요구 사항이 급증하면 유입 수요 또는 "부하"가 너무 높아 쉽게 수용할 수 없을 경우 내부 서버나 서버 시스템에 혼란이 발생할 수 있습니다. 

로드 밸런서를 사용하는 장점은 다음과 같습니다.

  • 신청 가능 여부: 내부 및 외부 사용자는 모두 애플리케이션 가용성을 신뢰할 수 있어야 합니다. 애플리케이션이나 기능이 다운되거나 지연되거나 정지되면 귀중한 시간이 낭비되고, 고객을 경쟁사로 몰아가는 잠재적인 마찰 원인이 발생합니다.
  • 애플리케이션 확장성: 여러분이 티켓 판매 회사를 운영하고 있다고 상상해보세요. 인기 있는 공연 티켓이 특정 날짜와 시간에 판매된다고 공지되는데요. 티켓을 구매하기 위해 귀하의 사이트에 접속하려는 사람이 수천 명 이상일 수 있습니다. 로드 밸런서가 없다면 귀하의 사이트는 귀하의 단일/첫 번째 서버가 수용할 수 있는 것으로 제한될 것입니다. 이는 수요가 많을 때 그다지 많지 않을 가능성이 큽니다. 대신, 로드 밸런서를 사용하여 요청과 트래픽을 다른 사용 가능한 컴퓨팅 표면으로 전달함으로써 트래픽 급증에 대비할 수 있습니다. 즉, 더 많은 고객이 원하는 티켓을 구매할 수 있다는 의미입니다.
  • 애플리케이션 보안: 부하 분산을 통해 조직은 보안 솔루션을 확장할 수도 있습니다. 가장 기본적인 방법 중 하나는 트래픽을 여러 백엔드 시스템에 분산시키는 것입니다. 이를 통해 공격 표면을 최소화하고 리소스가 고갈되거나 링크가 포화되는 것을 어렵게 만듭니다. 로드 밸런서는 한 시스템이 취약하거나 손상된 경우 트래픽을 다른 시스템으로 리디렉션할 수도 있습니다. 또한, 로드 밸런서는 특정 서버가 취약해질 경우 서버 간 트래픽을 다른 서버로 라우팅하여 DDoS 공격에 대한 추가적인 보호 계층을 제공할 수 있습니다.
  • 애플리케이션 성능: 위의 모든 것을 수행하면 로드 밸런서는 애플리케이션 성능을 향상시킵니다. 로드 밸런서는 보안을 강화하고 가동 시간을 최적화하며 수요 급증에 따른 확장성을 지원함으로써 애플리케이션이 설계된 대로 작동하도록 유지하며, 사용자와 고객이 원하는 방식대로 작동하도록 합니다.

부하 분산 알고리즘

부하 분산 알고리즘에는 작동 방식에 따라 정적 부하 분산과 동적 부하 분산의 두 가지 유형이 있습니다. 정적 부하 분산은 분산 네트워크에 있는 기존 서버의 성능 용량 정보를 포함하는 알고리즘을 사용하여 서버에 들어오는 부하를 측정합니다. 동적 부하 분산은 런타임 중에 분산해야 할 부하의 양을 동적으로 식별하고 어떤 시스템이 부하를 감당해야 하는지 알려줍니다.  이 제품은 유입 부하 변동이 심한 시스템을 위해 설계되었습니다. 

다음은 몇 가지 일반적인 부하 분산 알고리즘 유형입니다.

  • 라운드 로빈: 이 알고리즘은 도메인 이름 시스템(DNS)을 사용하여 순환적으로 서버 목록에 트래픽을 전송합니다. (메모: DNS 부하 분산도 동적 솔루션이 될 수 있습니다.)
  • 한계점: 이 알고리즘은 관리자가 설정한 임계값에 따라 작업을 분배합니다.
  • 두 가지 선택이 가능한 무작위: "2의 거듭제곱" 알고리즘은 임의로 두 서버를 선택한 후 최소 연결 알고리즘이나 최소 시간 알고리즘(구성된 경우)을 적용하여 선택된 서버에 요청을 보냅니다.
  • 최소 연결: 현재 클라이언트와의 연결이 가장 적은 서버로 새로운 요청이 전송됩니다. 각 서버의 상대적인 컴퓨팅 용량은 어느 서버가 가장 적은 연결을 가지고 있는지, 어느 서버가 가장 적은 양의 대역폭이나 리소스를 사용하는지를 결정하는 데 고려됩니다.
  • 최소 시간: 이 알고리즘에서 요청은 가장 빠른 응답 시간 과 가장 적은 활성 연결을 결합한 공식에 의해 선택된 서버로 전송됩니다. 
  • URL 해시: 이 알고리즘은 클라이언트 요청에 존재하는 URL을 기반으로 해시 값을 생성합니다. 요청은 해시 값을 기준으로 서버로 전달됩니다. 부하 분산 장치는 URL의 해시된 값을 캐시하므로, 동일한 URL을 사용하는 후속 요청은 캐시 적중으로 이어지고 동일한 서버로 전달됩니다.
  • 소스 IP 해시: 이 알고리즘은 클라이언트의 소스 및 대상 IP 주소를 사용하여 클라이언트를 특정 서버에 연결하는 고유한 해시 키를 생성합니다. 세션이 끊어지면 키가 다시 생성될 수 있으므로 이전에 사용한 동일한 서버로 재연결 요청이 리디렉션될 수 있습니다.
  • 일관된 해싱: 이 알고리즘은 클라이언트와 서버를 링 구조에 매핑하며, 각 서버는 용량에 따라 링의 여러 지점에 할당됩니다. 클라이언트 요청이 들어오면 링의 한 지점으로 해시된 다음 시계 방향으로 다음으로 사용 가능한 서버로 동적으로 라우팅됩니다.

로드 밸런싱은 어떻게 작동하나요?

부하 분산은 사용자 요청에 정적 또는 동적으로 응답하고, 요청을 처리할 수 있는 백엔드 서버 중 하나에 요청을 분산하는 방식으로 작동합니다. 서버 중 하나가 다운되면 로드 밸런서는 트래픽을 나머지 온라인 서버로 리디렉션합니다.

부하 분산의 예

정적 부하 분산의 예: 어떤 회사는 대부분 정적인 콘텐츠가 담긴 웹사이트를 호스팅합니다. 이 시나리오는 트래픽 요구 사항이 예측 가능하고 일관적이기 때문에 정적 로드 밸런서에 이상적입니다. 회사는 두 개(또는 그 이상)의 동일한 웹 서버를 사용하여 정적 로드 밸런서가 트래픽을 분산할 수 있습니다.

동적 부하 분산의 예: 회사는 트래픽의 급증, 급증, 감소를 경험합니다. 예측 가능한 것도 있고, 예측 불가능한 것도 있습니다. 이러한 조직은 동적 부하 분산을 통해 이점을 얻을 수 있습니다. 이러한 회사로는 블랙 프라이데이 영업 시간과 날짜를 알리는 전자 상거래 소매업체, 계절별 백신에 대한 온라인 예약을 할 수 있다고 발표한 의료 회사, 실업 수당 수급자에게 주중 특정 요일에 주간 청구서를 제출하도록 요구하는 정부 실업 기관, 자연 재해에 신속하게 온라인으로 대응해야 하는 구호 기관 등이 있습니다. 교통량과 수요의 급증은 계획할 수 있는 경우도 있지만, 계획할 수 없는 경우도 있습니다. 이러한 시나리오에서 동적 부하 분산 알고리즘은 고객과 사용자에게 가장 필요할 때 앱과 리소스에 대한 액세스를 보장하는 데 도움이 됩니다.

다양한 유형의 로드 밸런서

다양한 기능을 갖춘 여러 유형의 로드 밸런서는 OSI(Open System Interconnection) 모델이라는 아키텍처에 속합니다. 이 모델에는 7개의 층이 있습니다. 네트워크 방화벽은 1~3단계(L1-물리적 배선, L2-데이터 링크, L3-네트워크)로 구분됩니다. 한편, 로드 밸런싱은 4~7 계층(L4-전송, L5-세션, L6-프레젠테이션, L7-애플리케이션)에서 이루어집니다. 로드 밸런서는 일반적으로 4계층과 7계층에서 사용됩니다

  • 4계층 로드 밸런서는 네트워크 및 전송 계층 프로토콜(IP, TCP, FTP, UDP)의 데이터를 기반으로 트래픽을 지시합니다. IP 계층에서의 부하 분산은 부하 분산 장치의 IP 주소가 웹사이트의 클라이언트에 광고된 주소이고, 따라서 대상 주소로 기록되는 배포를 말합니다. 로드 밸런서가 요청을 받으면 기록된 대상 IP 주소를 선택한 콘텐츠 서버의 IP 주소로 변경합니다.
  • 7계층 로드 밸런서는 HTTP 헤더, 쿠키, 통일 자원 식별자, SSL 세션 ID, HTML 양식 데이터와 같은 애플리케이션 계층 프로토콜에서 찾은 데이터를 기반으로 요청을 분산시킵니다 . 또한 애플리케이션 메시지 자체 내의 데이터(예: 특정 매개변수의 값)를 기반으로 라우팅 결정을 내릴 수도 있습니다. 7계층은 로드 밸런싱에 콘텐츠 전환 기능을 추가합니다.

클라우드 기반 로드 밸런서

클라우드 기반 로드 밸런서는 단순히 트래픽 급증에 대한 트래픽 컨트롤러이거나 서버 사용을 최적화하는 트래픽 컨트롤러가 아닙니다. 클라우드 기반 로드 밸런서는 트래픽 병목 현상이 발생하기 전에 이를 시각화하는 데 도움이 되는 예측 분석도 제공합니다. 이를 통해 모든 회사가 IT 솔루션을 최적화하는 데 도움이 되는 실행 가능한 통찰력을 얻을 수 있습니다.

애플리케이션 로드 밸런싱: 기업이 애플리케이션 성능과 가용성에 점점 더 의존하게 됨에 따라 애플리케이션 로드 밸런싱은 확장, 운영 간소화, 비용 절감에 도움이 될 수 있습니다.

글로벌 서버 부하 분산: 전 세계에 사용자와 고객이 있는 기업은 글로벌 서버 부하 분산을 통해 부하 가용성을 향상할 수 있으며, 이를 통해 사용자를 가장 가까운 엔드포인트로 보낼 수 있습니다. 

DNS 부하 분산: 도메인 이름 시스템(DNS)에서 도메인에 대한 사용자 요청이 서버 머신 그룹에 분산되도록 도메인을 구성하는 관행을 DNS 부하 분산 이라고 합니다.

네트워크 부하 분산: 애플리케이션 전송 컨트롤러(ADC)는 물리적 서버의 프록시 역할을 하는 물리적 또는 가상 어플라이언스로, 애플리케이션이나 네트워크 기능을 관리하고, 이를 지원하기 위해 네트워크 로드 밸런싱 솔루션을 사용합니다. ADC는 캐싱, 압축 , SSL 처리 오프로드 등의 다른 기술도 사용하여 웹 애플리케이션의 성능을 향상시킵니다. 일반적인 구성에서 ADC는 웹 서버와 애플리케이션 서버 그룹 앞에 위치하여 해당 서버와 클라이언트 간의 요청과 응답을 중재하여 최종 사용자에게 그룹이 단일 가상 서버처럼 보이도록 만듭니다.

HTTP(S) 부하 분산: 리소스 활용을 최적화하기 위해 여러 웹 또는 애플리케이션 서버 그룹에 트래픽을 분산하는 기술을 HTTP(S) 부하 분산 이라고 합니다. 

내부 부하 분산: 내부 로드 밸런서는 개인 서브넷에 할당되며 공용 IP가 없습니다. 일반적으로 서버 팜 내에서 작동합니다.

지름: 직경 로드 밸런서는 네트워크 내 여러 서버에 신호 트래픽을 분산합니다. 이를 위한 가장 비용 효율적인 방법 중 하나는 데이터 전송 계층이 아닌 직경 제어 평면을 확장하는 것입니다. (직경 부하 분산은 정적이거나 동적일 수 있습니다.)

로드 밸런서 기술

단독으로 사용하거나 클라우드 기반 로드 밸런서와 네트워크에서 함께 사용할 수 있는 다른 유형의 로드 밸런서 솔루션도 있습니다. 몇 가지 주목할 만한 유형은 다음과 같습니다.

하드웨어 로드 밸런서: 하드웨어 로드 밸런서는 특수 운영 체제가 탑재된 물리적 장치로, 일반적으로 온프레미스에 있는 여러 애플리케이션 서버에 웹 트래픽을 분산하도록 프로그래밍할 수 있습니다. 

소프트웨어 로드 밸런서: 소프트웨어 로드 밸런서는 물리적 로드 밸런서처럼 작동하지만 소프트웨어 프로그램 에서 실행됩니다. 이 소프트웨어는 정적 및 동적 로드 밸런싱을 모두 사용하여 단일 장애 지점을 제거함으로써 모든 종류의 트래픽 수요에 맞게 앱을 사용 가능한 상태로 유지합니다.

가상 로드 밸런서: 하드웨어 로드 밸런서와 소프트웨어 로드 밸런서를 결합한 로드 밸런서 유형은 가상 로드 밸런서입니다. 하드웨어 백엔드 서버 간에 네트워크 트래픽 부하를 분산하는 데 도움이 되는 애플리케이션 전송 컨트롤러 소프트웨어를 사용합니다.

F5가 어떻게 도울 수 있는지

  • 조직의 요구 사항에 맞는 올바른 로드 밸런서를 찾는 것은 시스템을 사용 가능하고 최적화하고, 데이터에 액세스 가능하게 유지하고, 사용자와 고객을 만족시키는 데 매우 중요합니다.
  • F5는 하드웨어, 소프트웨어 및 클라우드 기반 로드 밸런서의 장점을 결합한 통합 글로벌 솔루션부터 정적 솔루션에 이르기까지 귀사의 조직의 특정 로드 밸런서 요구 사항을 충족할 수 있습니다. F5는 귀사의 고유한 비즈니스 요구에 맞는 로드 밸런싱 알고리즘이나 솔루션을 제공합니다.
  • F5 NGINX PlusNGINX는 Dropbox, Netflix, Zynga 등 트래픽이 많은 웹사이트에서 사용하는 동급 최고의 로드 밸런싱 솔루션입니다. 전 세계적으로 3억 5천만 개가 넘는 웹사이트가 NGINX Plus와 NGINX 오픈 소스를 통해 콘텐츠를 빠르고 안정적이며 안전하게 전송합니다. 소프트웨어 기반 애플리케이션 전송 컨트롤러이자 로드 밸런서인 NGINX Plus는 비슷한 기능을 갖춘 하드웨어 솔루션보다 훨씬 저렴합니다. 웹 서비스, 로드 밸런싱, 캐싱, 미디어 전송 등의 기능을 결합해 애플리케이션 전송을 제어하는 데 이상적인 선택입니다.
  • BIG-IP 애플리케이션 서비스는 디지털 애플리케이션 서비스를 관리, 확장 및 최적화하기 위한 통합 솔루션을 제공합니다. BIG-IP 로컬 트래픽 관리자 (LTM)에는 단일 장애 지점을 제거하기 위한 정적 및 동적 로드 밸런싱 기능이 포함되어 있습니다. F5 BIG-IP DNS는 애플리케이션 전반의 부하 분산을 수행하고 이를 전역적으로 적용하여 애플리케이션이 계속 작동하고 고객의 요구 사항에 응답할 수 있도록 보장합니다. 
  • F5 분산 클라우드 DNS 로드 밸런서는 안정적인 재해 복구 기능을 갖춘 간단한 로드 밸런싱 솔루션을 제공하므로 개발팀은 비즈니스 혁신에 집중할 수 있습니다.
  • F5 Distributed Cloud App Connect는 에지를 포함한 모든 유형의 환경에서 앱과 서비스를 안전하게 연결하여 부하 분산을 지원하는 데 도움이 됩니다.
  • F5는 앱, 트래픽, 데이터 및 컴퓨팅 표면을 최적화하기 위한 포괄적인 로드 밸런싱 솔루션 제품군을 제공합니다.