클러스터링이란 무엇인가요?
클러스터링은 두 대 이상의 컴퓨터를 서로 연결하여 클라이언트에게 하나의 (가상) 머신처럼 보이게 하는 것을 의미합니다. 일반적으로 클러스터 앞에 로드 밸런서를 배치하여 클라이언트 요청을 받아 클러스터의 구성 노드에 분산하는 방식으로 구현합니다. 클러스터링은 범용 하드웨어를 사용해 웹사이트나 애플리케이션의 성능, 안정성 및 확장성을 향상할 수 있는 비용 효율적인 방법입니다.
로드 밸런서에 대한 일반 정보를 확인하려면 하드웨어 로드 밸런서 대비 80% 비용 절감을 참조하세요.
클러스터링은 수평 확장이라고도 합니다. 수요가 증가하면 클러스터에 서버를 추가하기만 하면 되고, 로드 밸런서가 더 많아진 서버 전체에 요청을 분산합니다. 반면 수직 확장은 서버를 초당 더 많은 요청을 처리할 수 있는 고성능 서버로 교체해야 하므로 일반적으로 비용이 많이 듭니다.
가장 일반적인 구성에서는 클러스터의 모든 서버가 동일한 콘텐츠를 호스팅하고 동일한 애플리케이션을 실행합니다. 이 경우 간단한 부하 분산 알고리즘이면 충분하며, 가장 단순한 방식 중 하나는 라운드 로빈입니다. 이 방식에서는 요청이 클러스터의 노드에 순차적으로 분산됩니다. 서로 다른 유형의 특수 장비를 하나의 클러스터로 구성하고 계층 7 로드 밸런서를 사용하여 요청된 콘텐츠 유형에 따라 트래픽을 적절한 서버로 전달할 수도 있습니다. 예를 들어 로드 밸런서는 동영상 요청을 스트리밍 미디어 서버로 전달하고, 가격 및 재고 정보 요청을 데이터베이스 애플리케이션을 실행하는 서버로 전달할 수 있습니다.
클러스터링의 이점
- 성능 향상 – 필요에 따라 클러스터 노드를 추가하고 노드 간에 부하를 분산하면 웹 및 애플리케이션 데이터에 대한 사용자의 요청에 빠르고 정확하게 응답할 수 있습니다.
- 향상된 안정성 – 클러스터는 본질적으로 단일 장애 지점을 제거합니다. 한 노드에 장애가 발생하면 로드 밸런서는 해당 노드가 다시 온라인 상태가 될 때까지 요청을 다른 노드로 전달합니다.
- 비용 절감 – 클러스터링은 범용 하드웨어만 있으면 되므로 저렴한 비용으로 성능과 확장성을 확보할 수 있는 방법입니다.
- 유지 관리 용이성 – 클러스터의 다른 노드가 계속 요청을 처리할 수 있으므로, 필요한 경우 정규 업무 시간 중에도 노드를 오프라인으로 전환하여 유지 관리하고 업그레이드할 수 있습니다.
NGINX가 어떻게 도움이 될까요?
NGINX Plus와 NGINX는 Dropbox, Netflix, Zynga와 같이 트래픽이 많은 웹사이트에서 사용하는 업계 최고 수준의 부하 분산 솔루션입니다. 전 세계 3억 5천만 개의 웹사이트가 콘텐츠를 빠르고 안정적이며 안전하게 제공하기 위해 NGINX Plus와 NGINX Open Source를 사용합니다.
소프트웨어 로드 밸런서인 NGINX Plus는 유사한 기능을 갖춘 하드웨어 솔루션보다 훨씬 저렴합니다. 정교한 로드 밸런싱 알고리즘, 서버 상태 점검 및 기타 기능을 제공하므로 여러 서버에 트래픽을 분산하는 데 이상적입니다.
NGINX Plus를 사용하여 애플리케이션의 부하를 분산할 때 얻을 수 있는 이점에 대해 자세히 알아보려면 다음 블로그 게시물을 읽어보세요. 소프트웨어 로드 밸런서로 전환해야 하는 5가지 이유.
