클라우드 컴퓨팅 & NoSQL/IaaS 클라우드

클라우드 서비스의 개념과 분류

Terry Cho 2010. 11. 9. 15:01

클라우드 컴퓨팅의 최소 요구 조건

       Self Service : 클라우드에 배포된 리소스에 대한 사용과 설정 등을 서비스 제공자가 제공하는 인터페이스를 이용하여 사용자가 직접 조작

       Scalable /Elastic : 클라우드 내의 공유 자원 등을 이용하여 사용량(트렌젝션 증가)에 따라서 탄력적으로 리소스를 재 배분할 수 있어야 한다.

       Multi-tenant/Shared : 클라우드 내의 공유 리소스는 여러 조직이나 업무에 배분 되어 사용되며, 각각 배분된 리소스는 보안 적인 측면과 사용량 적인 측면등에 있어서 철저하게 분리된 형태로 제공되어야 한다.

       Usage based : 클라우드 서비스에 대한 사용 요금은, 사용량을 기준으로 제공되어야 한다.

클라우드 컴퓨팅의 배포 모델에 따른 분류

클라우드 컴퓨팅 플랫폼은 배포 장소와 서비스 사용 제공/사용 주체에 따라서 크게 아래와 같이 3가지 형태로 분리할 수 있다. 아래 Y 축은 배포 장소를 의미하고 아래 X축은 서비스 사용/제공 주체를 의미한다.


Private Cloud

서비스 사용자가 기업 내부의 비즈니스 시스템을 위해서 자체적으로 클라우드 플랫폼을 구축 하는 모델 (:on-premise)

§   클라우드 플랫폼이 회사 내부 또는 3’rd party 데이터 센터에 독립적으로 구축됨

§   Example

o    Rackspace Managed Private Cloud

o    데이터 센터에 Hosting Service + 가상화를 이용하는 경우

o    Hosting.com – Cloud Dedicated offering

o    Microsoft Data Center based implementation

Public Cloud

서비스 제공자가 클라우드 서비스를 제공하기 위한 플랫폼

§   전문 클라우드 사업자 (MS,Amazon)에 의해서 서비스가 제공되는 클라우드 플랫폼

§   클라우드 플랫폼은 서비스 사용자의 회사 외부에 (서비스 제공자)에 배포됨

§   모든 리소스는 다른 사용자와 공유됨

§   리소스 사용량에 따라 과금되는 형태

§   Example

o    Salesforce.com

o    Amazon EC2

o    Windows Azure, Microsoft Dynamics Online, Office365

o    Google App Engine

“Hosted Private Cloud”

서비스 사용자가 기업 내부의 비즈니스 시스템을 서비스 제공자의 Public 클라우드 플랫폼을 인프라로 사용하여 구축하는 모델

클라우드 컴퓨팅의 서비스 단계에 따른 분류

Infrastructure as a Service (Iaas)

IT 서비스를 제공하기 위한 주요 인프라 자원 (CPU 자원, 메모리, 디스크, 네트워크 환경)을 공유 자원 형태로 관리하고 이를 나눠서 제공하는 형태의 서비스로, 서비스 사용자는 이러한 인프라 위에 리소스를 할당 받아 OS와 미들웨어 (데이터 베이스, 웹서버)를 설치하여 서비스를 이용하는 형태이다.
주로 Microsoft Hyper-V, Citrix XenServer등과 같은 가상화를 이용하여 하드웨어 자원을 가상화하고, 이 가상화 기술을 통해서 자원을 배분한다
.
대표적인 Public Cloud 서비스로는 Amazon EC2,FastHosts,Rackspace,Go Daddy등이 있다.

Platform as a Service (Paas)

Iaas OS를 인스톨 하기 위한 하드웨어 가상화 환경을 제공하는 것이라면, Paas Iaas에 한 계층을 올려서 소프트웨어를 개발 할 수 있는 플랫폼을 제공하는 환경을 의미한다.

특정 컴퓨터 언어(Java,.NET,Rails,PHP etc) 가 구동할 수 있는 미들웨어 및 데이터 베이스는 물론이고, OPEN API 형태로 미리 구현된 서비스 라이브러리를 제공함으로써 애플리케이션을 개발할 수 있도록 지원한다.

대표적인 예로는 Java Python 언어 기반의 서비스를 제공할 수 있는 Google AppEngine 서비스,, .NET 기반의 웹 애플리케이션이나 서버 사이드 애플리케이션을 개발 및 서비스할 수 있는 Windows Azure등이 대표적인 Paas 서비스로 볼 수 있다.

또한 Amazon PayPal을 이용한 OPEN API기반의 빌링 서비스,Google Map 서비스와 같은 OPEN API  플랫폼 역시 Paas의 일부로 분류할 수 있다.

Software as a Service (Saas)

클라우드 서비스의 추상화중 가장 상위 계층을 차지하는 분류로 소프트웨어 서비스를 제공하는 형태의 클라우드 서비스이다. 예전의 ASP (Application Service Provider-KT의 비즈메카, Cafe24의 쇼핑몰 호스팅)과 유사한 서비스 모델로, 이메일,CRM 등의 완성된 형태의 애플리케이션을 서비스 받는 형식으로, 사용자는 애플리케이션의 사용량에 따라서만 비용을 지불하고 그외의 부분 (아래 인프라나 하드웨어 사양, 플랫폼 사양)에 대해서는 관리를 하지도 비용을 지불하지도 않는다.

구글의 GMAIL,Apps 서비스, SalesForce.com CRM서비스 MS Office365 서비스들이 대표적인 예이다.

기타

근래에 들어 위의 3개 주요 분류 이외에도 특화된 서비스 모델을 중심으로 새로운 클라우드 서비스 분류가 나타나고 있는데, 대표적인 분류 내용을 꼽아보자면 다음과 같다.

o    Test platform as a service

대규모 부하 테스트 등은, 소프트웨어 개발 프로젝트의 중후반에 발생하며 많은 수의 하드웨어 장비와 대규모의 트래픽을 지원하는 네트워크망이 필요하다. 이러한 인프라를 비 연속적인 개발 프로젝트를 위해서 사내에 구매 및 구축이 어렵기 때문에 근래에 들어서는 이러한 대규모 부하 테스트를 위한 서비스를 클라우드를 통해서 제공되는 서비스가 있으며, Selenium in Amazon EC2등이 대표적인 사례이다.

o    Develop platform as a service

테스트 플랫폼과 마찬가지로, 소프트웨어 개발 프로젝트 과정에서는 개발 계와 이행을 위한 Staging 계 등의 다양한 개발 환경이 필요하며, 이러한 개발 환경에 대한 관리 와 하드웨어 및 소프트웨어 구매는 기업에 있어서 또 다른 부담으로 다가온다. 이러한 문제를 해결하기 위해서 소프트웨어 개발환경을 클라우드 형태로 구성해놓고, 프로젝트 기간에만 임대해서 사용하는 형태의 서비스가 있다.

대표적인 예로는 Microsoft SDC (Solution Development Center)의 개발 환경 모델이 있다.

그리드형