로드 밸런싱은 애플리케이션 가용성을 최적화하고 긍정적인 최종 사용자 경험을 제공하기 위해 여러 서버에 네트워크 트래픽을 효율적으로 분산하는 프로세스입니다.
트래픽이 많은 웹사이트와 클라우드 컴퓨팅 애플리케이션은 매일 수백만 명의 사용자 요청을 수신하기 때문에 로드 밸런싱은 최신 애플리케이션 제공에 꼭 필요한 기능입니다. 예를 들어, 전자 상거래 사이트는 웹 애플리케이션이 웹 서버에서 소비자에게 지연이나 다운타임 없이 데이터, 이미지, 비디오 및 가격을 제공할 수 있도록 로드 밸런싱을 사용합니다.
IBM Instana Observability는 신속한 문제 예방 및 해결에 필요한 컨텍스트를 제공하며, 기업 내 모든 사용자가 간편한 방식으로 데이터에 액세스할 수 있도록 지원합니다.
IBM 뉴스레터 구독하기
로드 밸런싱은 몇 가지 방법으로 구현할 수 있습니다. 하드웨어 로드 밸런서는 온프레미스에 설치하는 물리적 기기입니다. 소프트웨어 로드 밸런서는 개인 소유 서버에 설치하거나 관리형 클라우드 서비스(클라우드 로드 밸런싱)로 이용할 수 있는 애플리케이션입니다.
두 경우 모두 로드 밸런서는 들어오는 클라이언트 요청을 실시간으로 중재하고 어떤 백엔드 서버가 이러한 요청을 가장 잘 처리할 수 있는지 결정하는 방식으로 작동합니다. 로드 밸런서는 한 개의 서버에 과부하가 걸리지 않도록 온프레미스 또는 서버 팜이나 클라우드 데이터 센터에 호스팅된 사용할 수 있는 서버 수에 따라 요청을 라우팅합니다.
할당된 서버는 요청을 받으면 로드 밸런서를 통해 클라이언트에 응답합니다. 그런 다음 로드 밸런서가 클라이언트의 IP 주소를 선택한 서버의 IP 주소와 일치시켜 서버-클라이언트 연결을 완료합니다. 클라이언트와 서버는 세션이 완료될 때까지 통신하고 요청된 작업을 수행할 수 있습니다.
네트워크 트래픽이 급증하는 경우, 수요를 따라잡기 위해 로드 밸런서가 더 많은 서버를 온라인 상태로 전환할 수 있습니다. 또는 네트워크 활동이 잠잠해지면 로드 밸런서가 사용할 수 있는 서버 풀을 줄일 수 있습니다. 또한 이전 사용자 요청이 임시로 저장되는 캐시 서버로 트래픽을 라우팅하여 네트워크 캐싱을 지원할 수도 있습니다.
로드 밸런서는 요청을 서버로 라우팅하기 전에 서버의 상태를 확인합니다. 어느 서버가 장애를 일으키려고 하거나 유지보수 또는 업그레이드를 위해 오프라인 상태인 경우, 로드 밸런서는 작동 중인 서버로 워크로드를 자동으로 재라우팅하여 서비스 중단을 방지하고 고가용성을 유지합니다.
로드 밸런싱을 통해 네트워크 트래픽 부하가 가장 많거나 적은 경우에도 처리할 수 있는 온디맨드 고성능 인프라를 구현할 수 있습니다. 필요에 따라 물리적 서버 또는 가상 서버를 추가하거나 제거할 수 있으므로 확장성을 자동화하고 단순하게 만들 수 있습니다.
로드 밸런서에는 SSL 암호화, 웹 애플리케이션 방화벽(WAF), 멀티팩터 인증(MFA)과 같은 보안 기능이 포함될 수 있습니다. 또한 애플리케이션 보안을 개선하기 위해 ADC(Application Delivery Controller)에 통합할 수도 있습니다. 로드 밸런싱은 네트워크 트래픽을 안전하게 라우팅하거나 오프로드함으로써 DDoS(분산 서비스 거부) 공격과 같은 보안 위험을 방어하는 데 도움이 될 수 있습니다.
특정 서버로 요청을 라우팅하는 방법은 로드 밸런싱 알고리즘에 의해 정의됩니다. 로드 밸런싱 알고리즘은 다양한 사용 사례를 만족시킬 수 있는 다양한 기능과 이점을 제공합니다.
라운드 로빈
이 알고리즘은 DNS(Domain Name System)를 사용하여 연속적인 순환으로 각 서버에 순차적으로 요청을 할당합니다. 다음에 들어오는 요청을 받을 서버를 각 서버의 이름만 사용하여 결정하므로 가장 기본적인 로드 밸런싱 방법입니다.
가중 라운드 로빈
이 알고리즘은 각 서버에는 DNS 이름 외에도 '가중치'를 할당합니다. 가중치는 들어오는 요청을 처리하기 위해 어떤 서버가 다른 서버보다 우선순위를 가져야 하는지 결정합니다. 관리자는 서버의 용량과 네트워크의 필요에 따라 각 서버에 가중치를 부여하는 방법을 결정합니다.
IP 해시
이 알고리즘에서는 들어오는 요청의 IP 주소를 해시 키라는 더 작은 값으로 계산(또는 해시)합니다. 이 고유 해시 키(사용자의 IP 주소를 나타냄)를 기준으로 사용하여 요청을 특정 서버로 라우팅하는 방법을 결정합니다.
최소 연결
이름에서 알 수 있듯이 이 알고리즘은 새 클라이언트 요청이 수신될 때 활성 연결 수가 가장 적은 서버에 우선순위를 부여합니다. 이 방법을 사용하면 서버가 연결에 과부하가 걸리는 것을 방지하고 서버 전반의 부하를 항상 일관적으로 유지할 수 있습니다.
최소 응답 시간
이 알고리즘은 최소 연결 방법과 가장 짧은 평균 서버 응답 시간을 결합한 알고리즘입니다. 서버가 요청을 수행하고 응답을 전송하는 데 걸리는 시간과 연결 수를 모두 평가합니다. 활성 연결 수가 가장 적고 가장 빠른 서버에 들어오는 요청이 할당됩니다.
로드 밸런서의 기본 목적은 트래픽을 분산하는 것이지만, 특정 기능을 제공하는 여러 유형의 로드 밸런서도 있습니다.
네트워크 로드 밸런서
네트워크 로드 밸런서는 로컬 및 광역 네트워크에서 트래픽을 최적화하고 지연 시간을 줄입니다. IP 주소 및 대상 포트와 같은 네트워크 정보와 TCP 및 UDP 프로토콜을 사용하여 네트워크 트래픽을 라우팅하고 사용자 수요를 충족할 수 있는 충분한 처리량을 제공합니다.
애플리케이션 로드 밸런서
이러한 로드 밸런서는 URL, SSL 세션, HTTP 헤더와 같은 애플리케이션 콘텐츠를 사용하여 API 요청 트래픽을 라우팅합니다. 여러 애플리케이션 서버에 중복된 기능이 존재하므로 애플리케이션 수준 콘텐츠를 검토하면 특정 요청을 빠르고 안정적으로 처리할 수 있는 서버를 파악하는 데 도움이 됩니다.
가상 로드 밸런서
가상화 및 VMware 기술이 부상하면서 가상 로드 밸런서는 이제 서버, 가상 머신, 컨테이너 전반의 트래픽을 최적화하는 데 사용되고 있습니다. Kubernetes와 같은 오픈 소스 컨테이너 오케스트레이션 툴은 클러스터의 컨테이너에서 노드 간에 요청을 라우팅하는 가상 로드 밸런싱 기능을 제공합니다.
글로벌 서버 로드 밸런서
이 유형의 로드 밸런서는 여러 지리적 위치의 서버로 트래픽을 라우팅하여 애플리케이션 가용성을 확보합니다. 사용자의 요청은 가장 가까운 위치에서 사용할 수 있는 서버에 할당되거나, 서버 장애가 있는 경우에는 사용할 수 있는 다른 위치의 서버에 할당됩니다. 이러한 장애 조치 기능을 덕분에 전역 서버 로드 밸런싱이 재해 복구의 중요한 구성 요소가 됩니다.
IBM Cloud Load Balancer를 사용하면 서버 간에 트래픽의 균형을 유지하여 가동 시간과 성능을 개선할 수 있습니다.
하이브리드 클라우드를 위한 선도적인 엔터프라이즈 관측 가능성 플랫폼에 대해 알아보세요. 애플리케이션이 상주하는 위치와 관계없이 애플리케이션 성능 관리를 개선하고 CI/CD 파이프라인을 촉진합니다.
애플리케이션 수요과 클라우드 자원을 실시간으로 정확하게 지속적으로 일치시키고 비용 할당에 대한 확신을 가질 수 있습니다.