로드 밸런서란 무엇인가요?

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

로드 밸런서는 트래픽 프록시 역할을 하며 여러 서버의 엔드포인트에 네트워크 또는 애플리케이션 트래픽을 분산하는 솔루션입니다. 로드 밸런서는 트래픽이 몰리는 시간대에 처리 용량을 분산하고 애플리케이션의 안정성을 높이는 데 사용됩니다. 개별 서비스나 클라우드의 부담을 줄이고 여러 컴퓨팅 환경에 수요를 분산하여 애플리케이션 및 네트워크 세션이 유지되도록 지원함으로써 애플리케이션의 전반적인 성능을 향상합니다.

최신 애플리케이션은 수백만 개의 세션을 동시에 처리하고, 각 사용자에게 적절한 텍스트, 동영상, 이미지 및 기타 데이터를 빠르고 안정적으로 제공해야 합니다. 이처럼 많은 트래픽을 처리하기 위해 대부분의 애플리케이션은 동일한 데이터가 복제된 여러 리소스 서버를 사용합니다.

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

경우에 따라서는 세션이 유지되는 동안 클라이언트의 모든 요청을 동일한 서버로 보내야 합니다. 예를 들어 클라이언트가 장바구니에 상품을 담은 후 구매를 완료하는 경우가 이에 해당합니다. 이처럼 클라이언트와 서버 간의 연결을 유지하는 것을 세션 지속성이라고 합니다. 세션 지속성이 없으면 서버 간에 정보를 동기화해야 하고 정보를 여러 번 가져와야 할 수도 있어 성능이 저하될 수 있습니다.

로드 밸런싱의 이점

사용자와 고객은 거의 실시간으로 정보를 찾고 거래를 처리할 수 있어야 합니다. 수요와 사용량이 가장 많은 시간대에도 지연이 발생하거나 응답이 불안정하고 일관되지 않으면 고객이 영원히 떠날 수 있습니다. 또한 유입되는 수요, 즉 ‘부하’가 감당하기 어려울 정도로 높으면 컴퓨팅 수요의 급증으로 인해 내부 서버나 서버 시스템에 심각한 문제가 발생할 수 있습니다.

Advantages of using a 로드 밸런서 사용의 장점은 다음과 같습니다:

  • 애플리케이션 가용성: 내부 및 외부 사용자 모두 애플리케이션을 언제든 사용할 수 있어야 합니다. 애플리케이션이나 기능이 중단되거나 지연되거나 멈추면 귀중한 시간이 낭비되며, 고객이 경쟁사로 이탈하게 만드는 잠재적인 불편 요인이 생길 수 있습니다.
  • 애플리케이션 확장성: 인기 공연의 티켓이 특정 날짜와 시간에 판매된다고 공지한 티켓 판매 회사를 운영한다고 가정해 보겠습니다. 티켓을 구매하기 위해 수천 명, 어쩌면 그보다 더 많은 사람이 사이트에 접속하려 할 수 있습니다. 로드 밸런서가 없다면 사이트의 처리 용량은 단일 또는 최초 서버가 감당할 수 있는 수준으로 제한되며, 이처럼 수요가 많을 때는 충분하지 않을 가능성이 큽니다. 반면 로드 밸런서를 사용해 요청과 트래픽을 사용 가능한 다른 컴퓨팅 리소스로 분산하면 이러한 대규모 트래픽 급증에 대비할 수 있습니다. 그 결과 더 많은 고객이 원하는 티켓을 구매할 수 있습니다.
  • 애플리케이션 보안: 부하 분산을 사용하면 조직이 보안 솔루션을 확장할 수도 있습니다. 주요 방법 중 하나는 트래픽을 여러 백엔드 시스템에 분산하는 것입니다. 이를 통해 공격 표면을 최소화하고 리소스 고갈 및 링크 포화를 더욱 어렵게 만들 수 있습니다. 또한 한 시스템에 취약점이 있거나 침해된 경우, 로드 밸런서가 트래픽을 다른 시스템으로 리디렉션할 수 있습니다. 이와 더불어 특정 서버에 취약점이 발생하면 로드 밸런서가 서버 간에 트래픽을 재라우팅하여 DDoS 공격에 대한 추가 보호 계층을 제공할 수 있습니다.
  • 애플리케이션 성능: 로드 밸런서는 위의 모든 기능을 통해 애플리케이션 성능을 향상합니다. 보안을 강화하고 가동 시간을 최적화하며 급격한 수요 증가에도 확장할 수 있도록 지원함으로써, 애플리케이션이 설계된 대로, 그리고 귀사와 고객이 원하는 방식으로 계속 작동하게 합니다.

로드 밸런싱 알고리즘

로드 밸런싱 알고리즘은 작동 방식에 따라 정적 방식과 동적 방식의 두 가지 유형으로 나뉩니다. 정적 로드 밸런싱은 분산 네트워크에 있는 기존 서버의 처리 용량 정보를 활용하는 알고리즘을 통해 서버로 유입되는 부하를 측정합니다. 동적 로드 밸런싱은 런타임 중에 분산해야 할 부하의 양과 해당 부하를 담당할 시스템을 동적으로 파악할 수 있습니다. 이 방식은 유입되는 부하의 변동 폭이 큰 시스템을 위해 설계되었습니다.

다음은 일반적으로 사용되는 로드 밸런싱 알고리즘의 몇 가지 유형입니다.

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

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

로드 밸런싱은 사용자 요청에 정적 또는 동적으로 응답하여 해당 요청을 처리할 수 있는 백엔드 서버 중 하나로 분산하는 방식으로 작동합니다. 서버 중 하나에 장애가 발생하면 로드 밸런서는 트래픽을 정상적으로 운영 중인 나머지 서버로 리디렉션합니다.

로드 밸런서 다이어그램

로드 밸런싱의 예

정적 부하 분산의 예: 한 회사가 대부분 정적인 콘텐츠로 구성된 웹사이트를 호스팅하고 있습니다. 이 경우 트래픽 수요를 예측할 수 있고 일정하므로 정적 부하 분산 장치를 사용하기에 적합합니다. 회사는 동일한 웹 서버를 두 대 이상 사용하고, 정적 부하 분산 장치를 통해 이들 서버에 트래픽을 분산할 수 있습니다.

동적 부하 분산의 예: 한 기업에서 트래픽이 급증하거나 일시적으로 폭증 또는 감소합니다. 일부는 예측할 수 있지만 그렇지 않은 경우도 있습니다. 이러한 조직에는 동적 부하 분산이 유용합니다. 예를 들어 블랙 프라이데이 운영 시간과 날짜를 공지하는 전자상거래 업체, 계절성 백신의 온라인 접수 예약을 시작한다고 발표한 의료 기관, 실업 보험 수급자가 매주 특정 요일에 청구서를 제출하도록 요구하는 정부 실업 지원 기관, 자연재해 발생 시 온라인으로 신속하게 대응해야 하는 구호 단체 등이 있습니다. 이러한 트래픽과 수요의 급증 및 폭증 중 일부는 미리 대비할 수 있지만, 그렇지 않은 경우도 있습니다. 이런 상황에서 동적 부하 분산 알고리즘은 고객과 사용자가 가장 필요로 할 때 앱과 리소스에 액세스할 수 있도록 지원합니다.

로드 밸런서의 다양한 유형

서로 다른 기능을 갖춘 다양한 유형의 로드 밸런서는 개방형 시스템 간 상호 연결(OSI) 모델이라는 아키텍처에 속합니다. 이 모델은 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 헤더, 쿠키, URI(Uniform Resource Identifier), SSL 세션 ID, HTML 양식 데이터 등이 있습니다. 또한 다음과 같은 데이터를 기반으로 라우팅을 결정할 수 있습니다. 애플리케이션 메시지 자체에 포함된 특정 매개변수의 값 등이 이에 해당합니다. 계층 7은 로드 밸런싱에 콘텐츠 스위칭 기능을 추가합니다.

클라우드 기반 로드 밸런서

클라우드 기반 로드 밸런서는 트래픽 급증에 대응하고 서버 사용을 최적화하는 단순한 트래픽 제어 도구가 아닙니다. 클라우드 네이티브 로드 밸런서는 예측 분석 기능도 제공하여 트래픽 병목 현상이 발생하기 전에 이를 시각적으로 파악할 수 있도록 지원합니다. 이를 통해 기업은 IT 솔루션을 최적화하는 데 활용할 수 있는 실질적인 인사이트를 얻을 수 있습니다.

애플리케이션 부하 분산: 기업이 애플리케이션의 성능과 가용성에 점점 더 의존함에 따라, 애플리케이션 부하 분산은 기업의 확장과 운영 간소화, 비용 절감에 도움이 될 수 있습니다.

글로벌 서버 부하 분산: 전 세계에 사용자와 고객을 둔 기업은 글로벌 서버 부하 분산을 통해 부하 가용성을 높이고 사용자를 가장 가까운 엔드포인트로 연결할 수 있습니다.

DNS 부하 분산: 도메인에 대한 사용자 요청이 여러 서버 시스템에 분산되도록 DNS(Domain Name System)에서 도메인을 구성하는 방식을 DNS 부하 분산이라고 합니다.

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

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

내부 부하 분산: An 내부 로드 밸런서는 프라이빗 서브넷에 할당되며 퍼블릭 IP가 없습니다. 일반적으로 서버 팜 내에서 작동합니다.

Diameter: Diameter 로드 밸런서는 네트워크의 여러 서버에 시그널링 트래픽을 분산합니다. 이를 구현하는 가장 비용 효율적인 방법 중 하나는 데이터 전송 계층이 아닌 Diameter 제어 평면을 확장하는 것입니다. (Diameter 로드 밸런싱은 정적 또는 동적 방식으로도 구성할 수 있습니다.)

로드 밸런서 기술

단독으로 사용하거나 클라우드 네이티브 로드 밸런서와 함께 네트워크에서 사용할 수 있는 다른 유형의 로드 밸런서 솔루션도 있습니다. 대표적인 유형은 다음과 같습니다.

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

소프트웨어 로드 밸런서: 소프트웨어 로드 밸런서는 물리적 로드 밸런서와 유사하게 작동하지만, 소프트웨어 프로그램에서 실행됩니다. 이 소프트웨어는 정적 및 동적 로드 밸런싱을 모두 활용해 단일 장애 지점을 제거함으로써 다양한 트래픽 수요에도 앱의 가용성을 유지합니다.

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

F5가 제공하는 지원

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