메인 콘텐츠로 건너뛰기

클러스터 컴퓨팅이란 무엇인가요?

클러스터 컴퓨팅은 클러스터라고 하는 여러 컴퓨팅 노드를 활용하여 복잡한 문제를 해결하기 위한 처리 성능을 향상시키는 과정입니다. 약물 연구, 단백질 분석, AI 모델 훈련과 같은 복잡한 사용 사례들은 수백만 개의 데이터 포인트를 병렬로 처리하여 정교한 분류 및 예측 작업을 수행해야 합니다. 클러스터 컴퓨팅 기술은 각자 CPU, GPU, 내부 메모리를 가진 여러 컴퓨팅 노드를 조정하여 동일한 데이터 처리 작업을 함께 수행하도록 합니다. 클러스터 컴퓨팅 인프라에서 실행되는 애플리케이션은 마치 단일 컴퓨터에서 동작하는 것처럼 작동하며, 그 이면의 복잡한 시스템 구조를 인식하지 못합니다.

클러스터 컴퓨팅 기술은 어떻게 발전했나요?

컴퓨팅 클러스터는 1960년대에 여러 컴퓨터에 걸쳐 병렬 처리 성능, 메모리, 저장 공간을 제공하기 위해 고안되었습니다. 초기의 클러스터는 개인용 컴퓨터, 워크스테이션, 그리고 서버로 구성되어 있었습니다. 각 컴퓨터는 로컬 영역 네트워크(LAN)에 연결되어, 사용자가 마치 단일 컴퓨터를 사용하는 것처럼 리소스에 접근할 수 있었습니다.

세월이 지르면서 클러스터 컴퓨팅을 가능하게 하는 기술이 발전했고, 그 결과 고성능 컴퓨팅(HPC)과 같은 더욱 다양한 사용 사례가 등장하게 되었습니다. 고성능 컴퓨팅(HPC)은 수백만 개에 달할 수도 있는 다수의 연결된 프로세서를 활용하여 엄청난 병렬 처리 성능을 제공합니다. 조직들은 데이터 분석, 과학 연구, 기계 학습, 시각 처리 등 자원 집약적인 애플리케이션의 워크로드를 지원하기 위해 HPC를 사용합니다.

클라우드에서 데스크톱 컴퓨팅

이전에는 컴퓨터 클러스터를 구축하려면, 각 컴퓨터의 운영체제와 네트워크 기능, 자원 분배 메커니즘 등을 수동으로 설치하고 구성해야 했습니다. 또한 온프레미스 환경에서 구축하는 것은 클러스터를 확장하기 위해 추가적인 서버 하드웨어에 투자해야 하므로 재정적 부담을 초래합니다.

오늘날 수많은 클라우드 제공업체들이 관리형 고성능 컴퓨팅(HPC) 클러스터를 제공하여, 조직은 손쉽게 워크로드를 배포할 수 있습니다. 수천 대의 컴퓨터를 온프레미스 환경에서 직접 구성할 필요 없이, AWS HPC를 통해 사실상 무제한의 클라우드 처리 성능을 활용할 수 있습니다.

AWS HPC는 소프트웨어 팀이 사용 가능한 클러스터 컴퓨팅 서비스를 이용해 연산 집약적인 워크로드를 혁신하고 확장할 수 있도록 지원합니다. 예를 들어 Hypersonix는 AWS 클라우드에서 수백만 개의 셀을 포함하는 고속 유체 역학 시뮬레이션을 수행하기 위해 고성능 컴퓨팅을 활용하고 있습니다.

클러스터 컴퓨팅의 사용 사례는 무엇인가요?

아래에서 클러스터 컴퓨팅 기술의 일반적인 응용 분야를 공유합니다.

빅 데이터 분석

클러스터 컴퓨팅은 분석 작업을 여러 컴퓨터에 병렬로 분산시켜 데이터 분석 속도를 가속화할 수 있습니다. 예를 들어, HPC 워크로드를 지원하도록 설계된 클라우드 컴퓨팅 클러스터를 활용하면 몬테카를로 시뮬레이션, 유전체학, 감성 분석과 같은 복잡한 연산을 수행할 수 있습니다.

인공 지능 및 기계 학습

인공지능 및 기계 학습(AI/ML) 애플리케이션은 데이터 학습과 처리 과정에서 막대한 연산 자원을 소모합니다. 데이터 과학자들은 전용 클러스터 컴퓨팅 인프라를 사용하면 결과 도출에 걸리는 시간을 단축할 수 있습니다. 예를 들어, AI/ML 워크로드를 AWS Trainium 기반 클라우드 AI 클러스터에서 실행할 수 있으며, AWS Trainium은 AI 연구를 가속화하도록 설계된 연산 칩입니다. 

3D 렌더링

클러스터 컴퓨팅은 클러스터 렌더링도 가능하게 합니다. 클러스터 렌더링은 여러 개의 상호 연결된 컴퓨터가 다양한 화면에 걸쳐 이미지나 영상을 동기화하는 과정입니다. 또한 클러스터 렌더링은 컴퓨터 지원 공학, 가상 현실, 그리고 강력한 그래픽 처리 능력을 필요로 하는 다른 애플리케이션을 지원하는 데 사용될 수 있습니다.

시뮬레이션

조직들은 컴퓨팅 클러스터를 활용하여 데이터를 기반으로 가능한 결과를 시뮬레이션하고, 이를 통해 비즈니스 의사 결정을 안내합니다.  여러 대의 컴퓨터를 상호 연결하면, 인간 전문가가 기반 모델의 결과를 추출하고 검토하며 개선할 수 있는 인터랙티브한 워크플로를 구현할 수 있습니다. 예를 들어, 연결된 컴퓨터의 리소스를 활용해 기계 학습 워크로드를 실행함으로써 금융 리스크 분석을 수행할 수 있습니다. 

클러스터 컴퓨팅은 어떻게 작동하나요?

클러스터 컴퓨팅은 두 대 이상의 컴퓨터를 네트워크로 연결하여 하나의 시스템처럼 협력적으로 작동하게 합니다. 일반적으로 클러스터 구성은 컴퓨팅 노드, 리더 노드, 로드 밸런서, 하트비트 메커니즘으로 이루어집니다. 리더 노드가 요청을 받으면, 해당 작업을 컴퓨팅 노드에 전달합니다. 엔지니어가 클러스터를 구성하는 방식에 따라, 각 노드는 작업을 개별적으로 수행하거나 동시에 처리할 수 있습니다. 각 구성 요소에 대해 아래에서 자세히 설명합니다.

 

컴퓨팅 노드

컴퓨팅 노드는 분산 작업을 수행하는 서버(또는 클라우드 인스턴스)입니다. 대부분의 경우, 동일한 CPU, GPU, 메모리, 저장 공간, 운영체제 및 기타 컴퓨팅 사양을 공유합니다. 이를 동종 설정이라고 합니다. 때로는 일부 클러스터 노드가 서로 다른 컴퓨팅 사양을 갖는 이기종 구성이 사용되기도 합니다.

리더 노드

리더 노드는 다른 컴퓨팅 노드들이 함께 작업하도록 조율하는 역할을 맡은 컴퓨터입니다. 리더 노드는 들어오는 요청을 수신하고, 담당 노드들에게 작업을 분배합니다. 리더 노드에 장애가 발생하면 일반적으로 나머지 노드의 합의에 따라 선거 과정을 통해 다른 노드가 자리를 차지합니다.

로드 밸런서

로드 밸런서는 들어오는 트래픽을 적절한 컴퓨팅 노드로 분배하는 네트워크 장치입니다. 네트워크 활동, 리소스 사용 및 클러스터 노드 간의 데이터 교환을 추적합니다. 클러스터 컴퓨팅에서 로드 밸런서는 갑작스러운 요청 급증으로 인해 컴퓨팅 노드가 과부하되는 것을 방지합니다. 리더 노드가 전용 로드 밸런싱 소프트웨어 도구를 통해 로드 밸런서 역할을 하는 경우도 있습니다.

하트비트 메커니즘

하트비트 메커니즘은 클러스터의 모든 컴퓨팅 노드를 모니터링하여 작동 여부를 확인합니다. 노드가 응답하지 않으면 하트비트 메커니즘이 리더 노드에 경고를 보내 작업을 다른 기능 노드로 재분배합니다. 

클러스터 컴퓨팅의 유형은 무엇인가요?

조직은 다양한 비즈니스, 성능, 운영 목표를 지원하기 위해 컴퓨팅 클러스터를 구성할 수 있습니다.

로드 밸런싱 클러스터

로드 밸런싱 클러스터는 리소스 관리를 자동으로 조율하여 운영 안정성을 제공합니다. 클러스터는 요청을 받으면 사용 가능한 모든 노드에 작업을 균등하게 분배합니다. 이를 통해 특정 노드가 과부하되는 것을 방지할 수 있습니다. 예를 들어, 기업들은 계절별 트래픽 급증에 대응하기 위해 로드 밸런싱 클러스터에서 전자상거래 웹사이트를 호스팅합니다. 모든 노드가 협력하여 요청을 처리하기 때문에, 사용자들은 트래픽이 많아도 일관된 성능을 경험할 수 있습니다.

고가용성 클러스터

고가용성(HA) 클러스터는 여분의 노드를 유지하여 서비스 가용성을 보장합니다. 단일 노드가 실패할 경우, 로드 밸런서는 트래픽을 백업 노드로 재분배하여 항상 서비스 연속성을 유지합니다. 단일 장애 지점을 방지하기 위해, 일반적으로 여분의 로드 밸런서도 클러스터 구성에 포함됩니다. 이를 통해, 구성 요소에 장애가 발생하게 되면 전체 클러스터를 신속하게 복구할 수 있습니다.

두 가지 방법으로 고가용성 클러스터를 구성할 수 있습니다.

액티브-액티브 구성

작업 부여 여부에 관계없이 모든 노드가 작동합니다. 하지만 실패하면 로드 밸런서가 작업을 정상 노드에 다시 배포합니다.

액티브-패시브 구성.

일부 노드는 정상 작동 중에 유휴 상태로 남아 있습니다. 노드에 장애가 발생한 경우에만 활성화됩니다.

고성능 클러스터

고성능 클러스터는 여러 대의 컴퓨터 또는 슈퍼컴퓨터를 결합하여 복잡한 계산 작업을 높은 처리 속도로 수행합니다. 고성능 클러스터는 순차적으로 처리하는 대신 데이터를 병렬로 처리하기 때문에 데이터 마이닝과 같은 리소스 집약적인 애플리케이션에 유리합니다. 또한, 컴퓨팅 노드들은 공통 목표를 달성하기 위해 작업하면서 데이터를 상호 교환할 수 있습니다. 

AI에서 클러스터 컴퓨팅의 역할은 무엇인가요?

AI 워크로드는 대규모 컴퓨팅 리소스, 스토리지, 지연 시간이 짧은 네트워크 연결을 필요로 합니다. 이전에는 조직에서 온프레미스 데이터 센터에 배포하곤 했습니다. 그러나 AI 애플리케이션이 점점 더 복잡해지면서 더 많은 연산 성능과 스토리지 스페이스가 요구되고 있습니다. AI 워크로드에 클러스터 컴퓨팅을 적용하면, AI 작업을 실행할 수 있는 초대형 슈퍼컴퓨터 네트워크를 구축할 수 있습니다. 이러한 슈퍼컴퓨터는 CPU 대신 GPU와 TPU로 구동되어 높은 연산 요구를 충족합니다. 이러한 클러스터 아키텍처는 AI 슈퍼클러스터(AI supercluster)라고도 불리며, 조직이 딥 러닝, 자율 시스템, 빅 데이터 분석 등 다양한 AI 애플리케이션을 구축·배포·확장할 수 있도록 지원합니다.

AWS는 클러스터 컴퓨팅 요구 사항을 어떻게 지원할 수 있나요?

AWS Parallel Computing Service(AWS PCS)는 Slurm을 사용하여 AWS에서 고성능 컴퓨팅(HPC) 워크로드를 실행하고 확장하는 관리형 서비스입니다. AWS PCS를 사용하여 다음을 수행할 수 있습니다.

  • 내장된 관리 및 관찰 기능을 사용하여 클러스터 운영을 간소화합니다.
  • AWS 컴퓨팅, 스토리지, 네트워킹 및 시각화를 통합하는 컴퓨팅 클러스터를 구축합니다.
  • 시뮬레이션을 실행하거나 과학 및 엔지니어링 모델을 구축할 수 있습니다.

Elastic Fabric Adapter(EFA)는 Amazon EC2 인스턴스에서 실행되는 컴퓨팅 노드를 위한 네트워크 인터페이스입니다. 사용자 지정 인터페이스는 인스턴스 간 통신 성능을 향상시키며, 이는 클러스터 컴퓨팅 애플리케이션을 확장하는 데 매우 중요합니다.

AWS ParallelCluster는 Amazon EC2 클러스터를 손쉽게 배포하고 관리할 수 있게 해주는 오픈 소스 클러스터 관리 도구입니다. 간단한 그래픽 사용자 인터페이스(GUI)나 텍스트 파일을 사용하여 HPC 애플리케이션에 필요한 리소스를 자동적이고 안전한 방식으로 모델링하고 프로비저닝할 수 있습니다.

지금 무료 계정을 만들어 AWS에서 클러스터 컴퓨팅을 시작하세요.