클라우드 컴퓨팅 기능에 대한 여러가지에 대해서 알아보겠습니다.
베어메탈(Bare Metal)이란 용어는 원래 하드웨어 상에 어떤 소프트웨어도 설치되어 있지 않은 상태를 뜻합니다. 즉, 베어메탈 서버는 가상화를 위한 하이퍼바이저 OS 없이 물리 서버를 그대로 제공하는 것을 말합니다. 따라서 하드웨어에 대한 직접 제어 및 OS 설정까지 가능합니다.
특히 가상화로 인한 불필요한 성능 저하가 없어 고성능을 발휘하는 데에 유리합니다. 이런 특징들을 보면 베어메탈 서비스는 결국 서버호스팅과 같지만, 베어메탈 서버는 직접 물리 서버를 구매하고 설치하는 것이 아니라 클라우드 가상 서버와 동일하게 클라우드 환경에 신속하게 배치하고 사용할 수 있다는 점에서 다릅니다.
가상 머신(Virtual Machine, VM)은 물리적 하드웨어 시스템(오프프레미스 또는 온프레미스에 위치)에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경입니다. 하이퍼바이저라 불리는 소프트웨어는 하드웨어에서 가상 머신의 리소스를 분리하고 적절히 프로비저닝하여 VM에서 사용할 수 있도록 합니다.
커널 기반 가상 머신(KVM)과 같은 하이퍼바이저가 탑재된 물리적 머신을 호스트 머신, 호스트 컴퓨터, 호스트 운영 체제 또는 간단히 호스트라고 부릅니다. 리소스를 사용하는 여러 VM을 게스트 머신, 게스트 컴퓨터, 게스트 운영 체제 또는 간단히 게스트라고 부릅니다. 하이퍼바이저는 CPU, 메모리, 스토리지 등의 컴퓨팅 리소스를 처리하는 리소스의 풀로, 기존 게스트 간 또는 새로운 가상 머신에 쉽게 재배치할 수 있습니다.
VM을 사용하면 macOS 노트북에 Linux® 배포판을 설치한 경우처럼 단일 컴퓨터에서 다른 여러 운영 체제를 동시에 실행할 수 있습니다. 각 운영 체제는 호스트 하드웨어의 운영 체제 및 애플리케이션이 작동하는 것과 동일하게 실행되므로 VM 내에서 에뮬레이트된 최종 사용자 환경은 물리적 머신에서 실행되는 실시간 운영 체제 환경과 거의 동일합니다.
고성능 컴퓨팅(HPC)은 일반적으로 여러 서버에 걸쳐 복잡한 계산을 병렬로 고속 처리하는 것을 가리킵니다. 이러한 서버 그룹을 '클러스터'라고 하며, 하나의 클러스터는 네트워크를 통해 연결된 수백 또는 수천 대의 컴퓨팅 서버로 구성됩니다. HPC 클러스터를 구성하는 각 컴퓨터를 보통 '노드'라고 부릅니다.
HPC 클러스터는 여러 건의 계산을 일괄 실행합니다. 모든 HPC 클러스터의 핵심은 가용 리소스를 추적하는 데 사용되는 스케줄러입니다. 이 스케줄러를 이용하면 빠른 네트워크를 통해 작업 요청을 다양한 컴퓨팅 리소스(CPU 및 GPU)에 효율적으로 할당할 수 있습니다.
빅데이터를 분석하고 복잡한 문제를 해결하는 데 필요한 컴퓨팅 리소스는 일반적으로 HPC와 관련이 있는 데이터센터의 온프레미스 컴퓨팅 클러스터를 넘어 퍼블릭 클라우드 서비스에서 사용할 수 있는 리소스로 확장되고 있습니다.
온프레미스에서만 처리하던 워크로드를 특정한 인프라/위치에 구애받지 않는 위치로 이전하려면 HPC에 클라우드를 도입하는 것이 필수입니다.
클라우드 컴퓨팅에서는 리소스를 온디맨드 방식으로 제공할 수 있기 때문에 경제성이 뛰어날 뿐 아니라 HPC 워크로드를 더 유연하게 실행할 수 있습니다.
또한 컨테이너 기술이 도입되면서 HPC 부문이 탄력을 받게 되었습니다. 컨테이너는 경량화 설계되어 있으며 낮은 수준의 오버헤드로 유연성을 높여 성능을 향상하고 비용을 줄입니다. 컨테이너는 확장성, 신뢰성, 자동화, 보안과 같은 많은 HPC 애플리케이션의 요구 사항을 충족하는 데도 도움이 됩니다.
컨테이너는 애플리케이션 코드와 그 종속성, 심지어 사용자 데이터까지 패키징하고, 과학적 연구 및 결과를 여러 위치에 걸쳐 전 세계 커뮤니티와 공유하는 절차를 간소화하라는 요구를 반영하여, 앞서 언급한 애플리케이션을 퍼블릭 또는 하이브리드 클라우드로 마이그레이션할 수 있으므로, HPC 환경에 매우 적절한 기술입니다.
컨테이너를 사용해 HPC 애플리케이션과 워크로드를 클라우드에 배포하면 특정 HPC 시스템 또는 클라우드 제공업체에 종속되지 않아도 됩니다.