분산 컴퓨팅이란 무엇인가요?

분산 컴퓨팅은 다수의 컴퓨터가 공통 문제를 해결하기 위해 협업하도록 만드는 방법입니다. 이를 통해 컴퓨터 네트워크는 복잡한 과제를 처리하기 위해 대량의 리소스를 제공하는 하나의 강력한 컴퓨터가 됩니다.

예를 들면 분산 컴퓨팅은 대량 데이터 암호화, 변수가 많은 물리 및 화학 방정식 처리, 고품질 3차원 동영상 애니메이션 렌더링 등을 수행할 수 있습니다. 분산 시스템, 분산 프로그래밍, 분산 알고리즘은 모두 분산 컴퓨팅을 뜻하는 다른 용어입니다. 

분산 컴퓨팅의 이점은 무엇인가요?

분산 시스템은 단일 시스템 컴퓨팅보다 많은 이점을 제공합니다. 그러한 이점을 몇 가지 소개하면 다음과 같습니다.

확장성

분산 시스템은 워크로드 및 요구 사항에 따라 확장할 수 있습니다. 필요에 따라 분산 컴퓨팅 네트워크에 새 노드, 즉 더 많은 컴퓨팅 디바이스를 추가할 수 있습니다.

가용성

컴퓨터 중 하나가 작동하지 않더라도 분산 컴퓨팅 시스템은 정상적으로 작동합니다. 개별 컴퓨터에 장애가 발생하더라도 계속 작동할 수 있으므로, 설계부터 내결함성이 보장됩니다.

일관성

분산 시스템의 여러 컴퓨터는 정보와 중복 데이터를 공유하지만, 이 시스템은 모든 컴퓨터에 걸쳐 자동으로 데이터 일관성을 관리합니다. 따라서 데이터 일관성을 유지하면서 내결함성의 이점을 누릴 수 있습니다.

투명성

분산 컴퓨팅 시스템은 사용자와 물리적 디바이스를 논리적으로 분리합니다. 개별 시스템의 설정 및 구성에 대한 걱정 없이 마치 단일 컴퓨터인 것처럼 시스템과 상호 작용할 수 있습니다. 여러 하드웨어, 미들웨어, 소프트웨어 및 운영 체제를 함께 사용하더라도 시스템이 원활하게 작동할 수 있습니다.

효율성

분산 시스템은 기반 하드웨어의 리소스 사용을 최적화화여 더 빠른 성능을 제공합니다. 따라서 볼륨 급증으로 인한 시스템 장애나 고가의 하드웨어의 낮은 활용도에 대한 걱정 없이 모든 워크로드를 관리할 수 있습니다.

분산 컴퓨팅의 사용 사례는 무엇인가요?

오늘날 분산 컴퓨팅은 곳곳에 사용되고 있습니다. 애플리케이션에서 사용자에게 올바른 정보를 제공하기 위해, 백엔드에서 여러 시스템이 함께 작동한다는 점에서 모바일 및 웹 애플리케이션은 분산 컴퓨팅의 예라고 할 수 있습니다. 하지만 분산 시스템을 스케일 업하면 더 복잡한 문제를 해결할 수 있습니다. 고성능 분산 애플리케이션을 사용하는 여러 업계의 몇 가지 사례를 살펴보겠습니다.

의료 및 생명 과학

의료 및 생명 과학 분야에서는 복잡한 생명 과학 데이터를 모델링하고 시뮬레이션하는 데 분산 컴퓨팅을 사용합니다. 이미지 분석, 약물 연구 및 유전자 구조 분석은 모두 분산 시스템을 통해 더 빠르게 수행할 수 있습니다. 다음은 몇 가지 예입니다.

  • 분자 모델을 3차원으로 시각화하여 구조 기반 약물 설계를 가속화합니다.
  • 게놈 데이터 처리 시간을 줄여 암, 낭포성 섬유증, 알츠하이머에 대한 초기 인사이트를 얻을 수 있습니다.
  • 의사들이 MRI, X-레이, CT 촬영 등 대량의 복잡한 이미지를 처리하여 환자를 진단할 수 있는 인공 지능 시스템을 개발합니다.

 

엔지니어링 연구

엔지니어는 분산 시스템에서 복잡한 물리 및 역학 개념을 시뮬레이션할 수 있습니다. 이 같은 연구 결과는 제품 디자인을 개선하고, 복잡한 구조를 만들고, 더 빠른 차량을 설계하는 데 활용합니다. 다음은 몇 가지 예입니다.

  • 계산 유체 역학 연구에서는 액체의 움직임을 연구하여, 항공기 설계와 자동차 경주에서 그러한 개념을 구현합니다.
  • Computer-Aided Engineering(CAE)에서는 새로운 플랜트 엔지니어링, 전자 및 소비재를 테스트할 컴퓨팅 집약적인 시뮬레이션 도구가 필요합니다. 

금융 서비스 

금융 서비스 기업은 분산 시스템을 사용하여 포트폴리오 리스크를 평가하고, 시장 동향을 예측하고, 재무 의사 결정을 지원하는 고속 경제 시뮬레이션을 수행합니다. 이들 기업은 분산 시스템을 활용하여 다음을 수행하는 웹 애플리케이션을 만들 수 있습니다.

  • 저렴한 개인별 보험료 제공
  • 분산 데이터베이스를 사용하여 대량의 금융 거래를 안전하게 지원할 수 있습니다.
  • 사용자를 인증하고 부정 행위로부터 고객을 보호 

에너지 및 환경 

에너지 회사는 운영을 개선하고, 지속 가능하며 기후 변화에 영향을 미치지 않는 솔루션으로 전환하기 위해 대량의 데이터를 분석해야 합니다. 이들은 분산 시스템을 사용하여 센서 및 기타 지능형 디바이스의 방대한 네트워크에서 대량의 데이터 스트림을 분석합니다. 이러한 회사가 수행하는 작업은 다음과 같습니다.

  • 발전소 구조 설계를 위한 지진 데이터 스트리밍 및 통합
  • 사전 예방적 위험 관리를 위한 실시간 유정 모니터링

분산 컴퓨팅 아키텍처의 유형은 어떤 것들이 있나요?

분산 컴퓨팅에서는 한 대의 컴퓨터가 아니라 여러 대의 컴퓨터에서 실행할 수 있는 애플리케이션을 설계합니다. 이를 위해서는 여러 컴퓨터가 서로 다른 기능을 수행하고 통신하여 최종 솔루션을 개발하도록 소프트웨어를 설계해야 합니다. 분산 아키텍처에는 네 가지 주요 유형이 있습니다.

클라이언트-서버 아키텍처

클라이언트-서버는 분산 시스템의 가장 일반적인 소프트웨어 구성 방법입니다. 클라이언트와 서버의 두 가지 범주로 기능이 구분됩니다.

클라이언트

클라이언트는 정보와 처리 능력이 제한되어 있습니다. 대신 서버에 요청을 보내며, 서버는 대부분의 데이터 및 기타 리소스를 관리합니다. 클라이언트로도 요청을 보낼 수 있으며, 클라이언트는 사용자를 대신하여 서버와 통신합니다.

서버

서버 컴퓨터는 리소스에 대한 액세스를 동기화하고 관리합니다. 데이터 또는 상태 정보를 사용하여 클라이언트 요청에 응답합니다. 일반적으로 한 서버가 여러 컴퓨터의 요청을 처리할 수 있습니다.

이점과 한계

클라이언트-서버 아키텍처는 보안과 지속적인 관리의 용이성이라는 이점을 제공합니다. 고객은 서버 컴퓨터의 보안에만 집중하면 됩니다. 마찬가지로, 데이터베이스 시스템을 변경하려면 서버만 변경하면 됩니다.

클라이언트-서버 아키텍처의 한계는 특히 여러 대의 컴퓨터가 동시에 요청을 할 때 서버에서 통신 병목 현상이 발생할 수 있다는 것입니다.

3계층 아키텍처

3계층 분산 시스템에서도 클라이언트 시스템은 사용자가 액세스하는 첫 번째 계층이 됩니다. 반면 서버 시스템은 두 가지 범주로 다시 나뉩니다.

애플리케이션 서버

애플리케이션 서버는 통신을 위한 중간 계층 역할을 합니다. 여기에는 분산 시스템을 설계하는 데 사용되는 애플리케이션 로직 또는 핵심 기능이 포함됩니다.

데이터베이스 서버

데이터베이스 서버는 데이터를 저장하고 관리하는 세 번째 계층 역할을 하며, 데이터 검색과 데이터 일관성 유지를 담당합니다.

3계층 분산 시스템은 서버 역할을 분담함으로써 통신 병목 현상을 줄이고 분산 컴퓨팅 성능을 높입니다.

N계층 아키텍처

N계층 모델에는 동일한 문제를 해결하기 위해 서로 통신하는 여러 대의 클라이언트-서버 시스템이 포함됩니다. 대부분의 현대적 분산 시스템은 여러 엔터프라이즈 애플리케이션이 백그라운드에서 하나의 시스템으로 연동되어 작동하는 N계층 아키텍처를 사용합니다.

P2P 아키텍처

P2P 분산 시스템은 네트워크로 연결된 모든 컴퓨터에 동일한 작업을 할당합니다. 클라이언트 컴퓨터와 서버 컴퓨터 사이에는 구분이 없으며, 모든 컴퓨터가 모든 작업을 수행할 수 있습니다. P2P 아키텍처는 콘텐츠 공유, 파일 스트리밍 및 블록체인 네트워크에 널리 사용되고 있습니다.

분산 컴퓨팅은 어떻게 작동하나요?

분산 컴퓨팅은 분산 시스템 아키텍처 내에서 컴퓨터가 서로 메시지를 전달하는 방식으로 작동합니다. 통신 프로토콜 또는 규칙으로 인해 분산 시스템의 구성 요소 간에는 종속성이 나타납니다. 이러한 상호 의존성을 결합이라고 하며, 결합에는 두 가지 주요 유형이 있습니다.

느슨한 결합

느슨한 결합에서는 특정 구성 요소를 변경할 경우 다른 구성 요소에 영향을 미치지 않도록 구성 요소가 서로 약하게 연결됩니다.  예를 들어 클라이언트 컴퓨터와 서버 컴퓨터는 시간을 기준으로 느슨하게 결합될 수 있습니다. 클라이언트의 메시지가 서버 대기열에 추가되면, 서버가 메시지에 응답할 때까지 클라이언트는 다른 기능을 계속 수행할 수 있습니다.

밀결합

고성능 분산 시스템에는 밀결합이 많이 사용됩니다. 고속 로컬 영역 네트워크에서는 일반적으로 여러 대의 컴퓨터를 연결하여 클러스터를 구축합니다. 클러스터 컴퓨팅에서 각 컴퓨터는 동일한 작업을 수행하도록 설정됩니다. 클러스터링 미들웨어라고 하는 중앙 제어 시스템은 작업을 제어 및 예약하고 여러 컴퓨터 간의 통신을 조율합니다.

병렬 컴퓨팅이란 무엇인가요?

병렬 컴퓨팅은 하나의 컴퓨터 또는 네트워크 내의 여러 컴퓨터가 동시에 많은 수의 계산 또는 프로세스를 수행하는 컴퓨팅의 한 유형입니다. 병렬 컴퓨팅분산 컴퓨팅이라는 용어는 혼용되기도 하지만 몇 가지 차이점이 있습니다.

병렬 컴퓨팅 vs. 분산 컴퓨팅

병렬 컴퓨팅은 특히 긴밀하게 결합된 분산 컴퓨팅의 한 형태입니다. 병렬 처리에서는 모든 프로세서가 공유 메모리에 액세스하여 정보를 교환할 수 있습니다. 반면, 분산 처리에서는 각 프로세서마다 프라이빗 메모리(분산 메모리)가 사용됩니다. 프로세서는 메시지 전달을 통해 정보를 교환합니다.

그리드 컴퓨팅이란 무엇인가요?

그리드 컴퓨팅에서는 지리적으로 분산된 여러 컴퓨터 네트워크가 함께 작동하면서 공통의 작업을 수행합니다. 분산 그리드의 특징 중 하나는 여러 개인 또는 조직이 소유한 컴퓨팅 리소스를 기반으로 그리드를 구성할 수 있다는 것입니다.

그리드 컴퓨팅 vs. 분산 컴퓨팅

그리드 컴퓨팅은 여러 네트워크 간의 성능과 조율을 강조하는 고도로 확장된 분산 컴퓨팅 방식입니다. 내부적으로 각 그리드는 긴밀하게 결합된 컴퓨팅 시스템처럼 작동합니다. 하지만 외부적으로는 그리드가 좀 더 느슨하게 결합됩니다. 각 그리드 네트워크는 개별 기능을 수행하고 결과를 다른 그리드에 전달합니다.

AWS 고성능 컴퓨팅이란 무엇인가요?

AWS 고성능 컴퓨팅(HPC)을 사용하면 빠른 네트워킹과 사실상 무제한의 분산 컴퓨팅 인프라를 활용하여 혁신을 가속화할 수 있습니다. 예를 들어 다음 서비스를 사용할 수 있습니다.

  • Amazon Elastic Cloud Compute(EC2): 안전하고 크기 조정이 가능한 컴퓨팅 용량으로 거의 모든 워크로드를 지원할 수 있습니다.
  • AWS Batch: AWS 컴퓨팅 서비스 전반에서 수십만 개의 컴퓨팅 작업을 지원하도록 확장할 수 있습니다.
  • AWS ParallelCluster: HPC 컴퓨팅 환경과 HPC 클러스터를 신속하게 구축할 수 있습니다.

지금 무료 계정을 만들어 AWS에서 분산 컴퓨팅을 시작하세요.

AWS 분산 컴퓨팅의 다음 단계

제품 관련 추가 리소스 확인
하이브리드 서비스에 대해 자세히 알아보기 
무료 계정에 가입

AWS 프리 티어에 즉시 액세스할 수 있습니다. 

가입 
콘솔에서 구축 시작하기

AWS 관리 콘솔에서 구축을 시작하세요.

로그인