학습(공부)하는 블로그 :: 'paas' 태그의 글 목록
 

 

Notice»

Recent Post»

Recent Comment»

Recent Trackback»

04-20 00:00

 

'paas'에 해당되는 글 2

  1. 2012.07.09 [6강] 클라우드 컴퓨팅 PaaS
  2. 2012.07.06 [3강] 클라우드 컴퓨팅 서비스 -1
 
반응형

1. PaaS의 선택 이유


  ○ PaaS란(Platform as a Service)
    ▷ SW가 아닌 표준화된 플랫폼을 서비스로 제공하는 형태입니다.
    ▷ SaaS를 사용하다 보면 다른 어플리케이션들과 통합의 한계에 부딪치게
        됩니다. 그래서 SaaS를 제공하는데서 OpenAPI 형태로 통합할 수 있는
        플랫폼을 제공합니다.
    ▷ 예를 들어 구글은 구글앱스라는 SaaS 를 제공하고, 더 확장하여 앱스엔진
        이라는 PaaS 를 제공합니다.
    ▷ 구글 앱 엔진(Google App Engine) 등을 살펴 PaaS가 무엇인지에 대한
        아이디어를 얻는다.

  ○ PaaS가 불러오는 도전
    ▷ PaaS가 사용자에게 도전이 되는 이유는 무엇인가?
    ▷ 이들 플랫폼의 의심할 바 없는 역량과 생산성이 기업들에게는 많은 애플리
        케이션을 배치하고 나기까지는 구현할 수 없을지 모를 새로운 이슈들을
        불러올 것이기 때문이다.


 

  ○ PaaS의 선택이유
    ▷ PaaS는 서비스 제공업체가 자체 하드웨어 인프라에서 호스트하는 소프트
        웨어와 제품 개발 도구를 제공하는 클라우드 서비스 유형이다.
    ▷ PaaS라는 용어는 사용자 정의 애플리케이션을 빌드하고 실행하는 데

        활용할 수 있는 클라우드 기반 플랫폼에서 일반적으로 사용된다.
    ▷ PaaS 애플리케이션은 인터넷에 연결된 어느 곳에서나 액세스할 수 있는
        서비스와 웹 애플리케이션을 빌드하고 전개하는 데 필요한 모든 것을

        제공한다. 일반 사용자는 이러한 이러한 시스템을 다운로드하거나 설치,

        유지할 필요가 없다.
    ▷ PaaS 오퍼링에는 가상 서버 및 스토리지, 데이터베이스와 같은 일련의

        기본 서비스가 포함되어 있다. 사용자는 이러한 서비스를 통해 PaaS 플랫폼
        에서 이용할 수 있는 API나 도구를 사용하여 PaaS 플랫폼에서 애플리

        케이션을 빌드할 수 있다.

 

  다음은 가장 일반적으로 사용되는 PaaS 플랫폼이다.


  ○ Google App Engine
    ▷ Google의 인프라에서 웹 애플리케이션을 실행해 보도록 하자. Python이나

        Java™ 기술을 사용하여 웹 애플리케이션을 작성할 수 있다.


  ○ Microsoft® Windows® Azure
    ▷ 클라우드 애플리케이션과 서비스를 작성할 수 있는 Windows 기반 환경
        이다. Microsoft Visual Studio®를 사용하여 Azure 플랫폼에서 애플리

        케이션을 개발하고 전개할 수 있다. Azure는 CTP(Community Technology
        Preview)에서 사용 가능하며 2010년 1월까지 무료로 평가할 수 있다.


  ○ Force.com
    ▷ Force.com은 Salesforce.com에서 최근에 추진하는 플랫폼이다. 이 플랫폼은

        확장 가능한 애플리케이션을 신속하게 빌드할 수 있는 개발 플랫폼을
        제공한다. Eclipse 기반의 IDE를 사용하여 Force.com 구성요소와 애플리
        케이션을 이 플랫폼에서 빌드하고 버전화하고 전개할 수 있다.


  ○ Morph
    ▷ 이 플랫폼은 클라우드 컴퓨팅 인프라를 기반으로 다수의 웹 애플리케이션을
        호스트할 수 있는 MAP(Morph Application Platform)이라고 하는 완벽한
        환경을 제공한다.


  ○ Bungee Connect
    ▷ 클라우드용 웹 애플리케이션을 빌드할 수 있는 완전한 애플리케이션 개발
        및 전개 환경이다.


 

  ○ 일반적으로 사용되는 PaaS 플랫폼
    ▷ PaaS 플랫폼에서는 Google App Engine이나 Microsoft Azure와 같은
        인프라로 연결되는 인터페이스를 사용하여 확장 가능한 추상화를 제공한다.
    ▷ PaaS 제공업체에서 제공하는 애플리케이션 SDK(Software Development Kit)
        사용하여 애플리케이션을 작성하고 디버그할 수 있다.

 


2. PaaS의 기본 구조 분석

 

  ○ Google App Engine은
    ▷ 클라우드 기반 플랫폼으로 이 플랫폼을 이용하면 Google의 인프라에서
        웹 애플리케이션을 실행할 수 있다.
    ▷ App Engine에서 실행하는 애플리케이션은 Python이나 Java 프로그래밍
        언어로 작성할 수 있다.
    ▷ JVM(Java Virtual Machine) 기반의 애플리케이션을 실행하는 기능 덕택에
        가능성이 무궁무진하다고 할 수 있다.
    ▷ 사용자는 Java가 아닌 다음과 같은 여러 가지 언어로도 JVM에서 실행할
        수 있는 애플리케이션을 작성할 수 있다.
         - JRuby
         - Scala
         - Clojure
         - Groovy
         - Jython
         - Beanshell
    ▷ 사용자는 트래픽의 증가에 맞춰 애플리케이션의 규모를 쉽게 조정할
        수 있다. App Engine 개발자는 두 가지 가격 정책 중 하나를 선택할 수
        있다.
      · 무료 계정 스토리지 500MB와 월간 500만 페이지 뷰를 사용하는 애플리
        케이션을 작성하는 데 사용할 수 있다.
      · 유료 계정 무료 계정보다 더 많은 자원을 사용하는 애플리케이션을
        위한 계정이다. 사용자가 필요에 따라 예산을 할당할 수 있다. 사용자는
        애플리케이션에서 사용할 수 있는 최대 자원량을 언제든지 제어하여
        자원 소비량의 한계를 설정할 수 있다.


 

  ○ App Engine에서는 명확하게 정의된 API로 구성된 확장 가능한 추상화를
      이용하여 고유한 Google 애플리케이션을 구현할 수 있다. 이러한 API는
      API/SDK를 사용하는 Java 기반 프로그램이나 Python에서 사용할 수 있다.


  ○ 아래의 표는 Google App Engine을 활용한 서비스 내역이다.

서비스

제공업체

데이터 저장소

 대용량 데이터를 반구조화된 방식으로 저장할 수 있는 고성능 사설 데이터베이스 시스템인 Google의 Biglabel

캐싱

 고성능 분산 메모리 오브젝트 캐싱 시스템인 Memcache

인증

 사용자를 관리하고 인증하는 데 필요한 Google 계정

메일

 이메일을 전송하는 데 필요한 Google Mail(Gmail)


  ○Google App Engine 서비스의 구현 형태

 

 


  ○ App Engine 환경에서 애플리케이션에 적용되는 몇 가지 추가 제한사항은
      다음과 같다.
    ▷ 사용자는 Python이나 Java 기술을 이용하여 사용할 수 있는 표준 라이

        브러리의 서브세트만을 사용할 수 있다.
    ▷ CPU 요청량, 메모리, 파일의 크기 등에 대한 할당량이 정해진다.
    ▷ 애플리케이션에 전달되는 모든 요청은 30초 내에 리턴되어야 한다.
    ▷ 사용자는 해당 파일 시스템에 대한 액세스 권한을 갖고 있지 않으며 애플리
        케이션의 일부로 업로드 된 정적 파일만을 읽을 수 있다.
    ▷ App Engine 환경에서는 사용자가 스레드나 프로세스를 생성할 수 없다.
    ▷ App Engine에서 사용된 스토리지 백엔드는 스키마리스 키 값 데이터

        저장소인 BigTable이다.
    ▷ App Engine은 HTTP 요청에서 트리거 되는 코드만 실행할 수 있다.


  ○ 이러한 제한사항은 사용자의 애플리케이션에 국한되거나 그렇지 않을 수도
      있다.

 

  ○ App Engine은 확장 가능한 웹 애플리케이션을 빌드할 수 있는 가장 좋은

      방법이며 AppScale은 Google App Engine 환경을 에뮬레이트하는 프레임

      워크를 제공한다.

 

  ○ AppScale을 이용하면 App Engine 애플리케이션을 로컬에서 Amazon EC2
      및 Eucalyptus와 같은 클라우드 기반 인프라를 기반으로 투명하게 실행하고
      디버그할 수 있다.

 

  ○ AppScale은
    ▷ 캘리포니아 산타바바라 대학에서 Google App Engine API를 오픈 소스로
        구현한 것이다.
    ▷ AppScale은 Eucalyptus나 Amazon의 EC2(Elastic Compute Cloud)와
        같은 IaaS 클라우드에서 Google App Engine 애플리케이션을 쉽게 실행
        할 수 있게 하는 클라우드 컴퓨팅 플랫폼이다.
    ▷ 사용자는 AppScale을 이용하여 App Engine의 다양한 기능을 활용할 수
        있으며 자체 클러스터에서 App Engine 애플리케이션을 실행할 수도 있다.
    ▷ 또한, AppScale은 IaaS 플랫폼에서 투명하게 실행할 수 있다. RACELab
        팀은 다음과 같이 언급했다.

          "AppScale에 대한 우리의 목표는 사용자가 GAE 애플리케이션을
          Google의 사설 자원에서 전개하기 전에 미리 전개하여 테스트하고

          디버그하고 측정하고 모니터할 수 있고 하위 레벨 클라우드 패브릭과의
          상호 운영 및 런타임, 서비스 등과 같은 PaaS 구현물을 쉽게 확장하고
          조사할 수 있는 PaaS(Platform-As-A-Service) 클라우드 인프라를

          제공하는 데 있다."
  

○ AppScale 서비스 구현

 

3. PaaS의 서비스의 사례 이해

 

  ○ AppScale Architecture
    ▷ AppScale 환경은 네 개의 기본 구성요소로 이루어진다.
    ▷ AppScale은 Google App Engine에서 제공하는 기능을 보완하여 Google
        App Engine의 SDK를 강화하고 확장할 뿐만 아니라 SDK를 통해 공개된
        오픈 API를 구현한다.
    ▷ AppScale에 있는 다수의 구성요소를 통해 App Engine 애플리케이션을
        실행하는 데 필요한 시스템의 결함 허용치와 스케일링, 관리 및 전개를

        자동화할 수 있다.
    ▷ 애플리케이션을 수정하지 않아도 AppScale에서 Google App Engine

        애플리케이션을 전개하고 실행할 수 있다.
    ▷ AppScale이 Google App Engine과 경쟁하거나 이를 대체하는 것은 아니다.
    ▷ AppScale은 클라우드 인프라를 사용하는 실험용 프레임워크이며
        Google에서 내세우는 인프라만큼 규모가 크지는 않다.


 

  ○ AppScale의 네 가지 구성요소는 다음과 같다.
    ▷ AppServer
      ·  App Engine 애플리케이션을 실행하는 데 필요한 기본 구성요소이다.
      ·  AppServer는 로컬에서 App Engine 애플리케이션을 실행하는 데 필요한
         Google App Engine SDK를 확장한 것이다.
      ·  각 AppServer는 한 번에 하나의 애플리케이션만을 실행할 수 있다.
      ·  다수의 애플리케이션을 호스트하려면 여러 개의 AppServer를 추가해야 한다.


    ▷ AppLoadBalancer
      ·  이 구성요소는 사용자의 최초 요청을 분배하는 기능을 담당한다.
      ·  사용자가 정상적으로 로그인하면 로드 밸런서는 이 요청을 해당 AppServer로
         라우트하여 해당 애플리케이션에 대한 요청을 실제로 처리한다.
      ·  그 후에는 로드 밸런서가 더 이상 관여하지 않으며 사용자는 적절한
         AppServer로 라우트된다. 이런 점에서 이 로드 밸런서는 기존의 로드 밸런서와
         다소 차별된다.
      ·  이 로드 밸런서는 Ruby on Rails 애플리케이션이며 로드 밸런싱 기능은 오픈
         소스 웹 프록시인 nginx를 사용하여 제공된다.


    ▷ Database Master
      ·  데이터 저장소의 기본 인터페이스이다.
      ·  이 인터페이스를 통해 MySQL, Cassandra, Voldemort, MongoDB, HBase
         및 HyperTable용으로 구현된 사용 가능한 다양한 데이터 저장소에 액세스할
         수 있다.
      ·  CouchDB와 같은 기타 데이터베이스는 차후에 지원될 예정이다.


    ▷ Database slaves
      ·  하나 이상의 데이터베이스 슬레이브를 통해 분산된 확장 가능한 결함 허용

         데이터 관리 기능을 제공한다.

 

  ○ AppScale 구성요소
      ·  이 구성요소는 전개 환경에 있는 모든 AppScale 인스턴스를 설정, 초기화하고
         분해하는 과정을 제어하는 AppController를 사용하여 서로 통신한다.
      ·  또한, AppController는 App Engine 애플리케이션을 전개하는 기능과 App
         Engine에 대한 인증을 담당한다.


  ○ App Engine 애플리케이션 사용자는 SSL을 사용하여 AppServer와 상호 작용한다.

 

  ○ AppScale 환경에 대한 첫 번째 로그인 요청은 언제나 로드 밸런서로 전달되며

      그러면 사용자가 정상적으로 로그인할 때 로드 밸런서가 이 요청을 해당 애플리케이션에
      라우트한다.

 

  ○ 사용자가 액세스할 애플리케이션을 작성하는 개발자는 AppScale Tools 도구 세트를
      사용하여 AppScale과 상호 작용한다.

 

  ○ 이 도구 세트는 사용자가 AppScale 인스턴스를 설정하여 App Engine 애플리케이션을
      AppScale로 전개할 수 있는 기능을 제공한다.

 

  ○ 이 도구 세트는 Amazon EC2 도구와 개념이 비슷하다. 이 도구 세트에 있는 스크립트
      중 일부를 아래에 요약해 놓았다.

 스크립트

조치

appscale-run-instances

App Engine 애플리케이션과 함께 AppScale 인스턴스를 전개

appscale-upload-app

App Engine 애플리케이션을 실행 중인 AppScale 인스턴스를 업로드

appscale-describa-instances 

App Controller와 App Servers에서 활용도 통계를 가져옴

appscale-reset-pwd

루트 사용자와 개발자의 아호를 다시 설정함

appscale-terminate-instances 

모든 AppScale 인스턴스를 정리하고 삭제함

 

 

  ○ AppScale 아키텍처

 


 


  ○ AppScale에서는 노드라는 개념을 사용한다.
    ▷ 노드는 AppScale 이미지 인스턴스로 구성된 인스턴스이다.
    ▷ AppScale 전개는 하나 이상의 노드로 구성되며 일반적으로는 일곱 개의 노드로
        구성된다.
    ▷ 노드에는 다른 노드와 통신을 하는 데 필요한 AppController와 하나 이상의
        AppScale 구성요소가 포함되어 있다.
    ▷ AppLoadBalancer를 구현하는 노드를 헤드 노드라고 한다.
    ▷ AppScale 전개에는 헤드 노드 인스턴스가 하나만 있다.

 

  ○ 헤드 노드에 있는 AppController는 기본 제어기로서 다음과 같은 몇 가지 추가
      기능을 담당한다.
      ·  AppScale 전개를 모니터하여 장애 노드를 확인한다.
      ·  시스템 요구와 개발자의 선호도에 따라 AppScale 전개를 확장하거나 축소한다.
      ·  다른 노드에서 자원 사용량과 애플리케이션 정보를 주기적으로 수집한다.
      ·  장애 구성요소를 다시 시작하고 필요한 경우에는 노드를 다시 생성하는 기능을
         담당한다.
      · 아래 그림에는 AppScale 노드의 사용에 대한 사례이다.

 



  ○ AppScale 이미지 인스턴스를 GVM(Guest Virtual Machine)이라고도 한다.

 

  ○ 이 인스턴스는 오픈 소스 IaaS 클라우드인 Eucalyptus상에서 실행하거나
      Amazon 웹 서비스인 EC2 환경에서 실행할 수 있다.


  ○ 또한, 최신 Ubuntu 배포판을 사용하는 비가상화 시스템에서도 사용할 수 있다.

 

  ○ Eucalyptus에서는 Xen이나 KVM, VMware를 기본 가상화 계층으로 사용할 수 있다.


 

  ○ 아래 그림에는 Eucalyptus에서 전개된 AppScale 환경이 표시되어 있다.

 

  ○ Amazon EC2에서는 Xen을 기본 가상화 프레임워크로 사용한다. 아래의 그림은

      EC2에서 전개된 AppScale 환경이다.

 


  ○ AppScale의 장점
      AppScale은 Google App Engine 애플리케이션을 로컬에서 테스트하고 디버그할
      수 있는 유용한 방식이다. AppScale과 Eucalyptus는 클라우드 컴퓨팅을 조사하고
      연구하는 데 필요한 유용한 플랫폼을 함께 제공한다.
    ▷ 오픈 소스
       AppScale은 클라우드 컴퓨팅 플랫폼을 연구하기 위해 개발되었다. 소스 형태로

       자유롭게 사용할 수 있어서 내부를 살펴보거나 필요에 따라 클라우드 서비스 플랫폼을
       쉽게 확장할 수 있다. 이러한 플랫폼의 개발 속도는 매우 빠르다. 다양한 기능과
       개선사항들이 빠른 속도로 추가되고 있다.
    ▷ 실험용으로 유용
       AppScale은 클라우드 패브릭과 개념을 실험할 수 있는 유용한 플랫폼이다.
       AppScale 환경에서는 클라우드 기반 애플리케이션을 새로운 방식으로 실행하기가
       수월하다. 또한, 이 플랫폼은 사용하기 편리하며 확장이 수월하다.
    ▷ 사설 클라우드
       AppScale은 자체 인프라에서 실행하는 사설 테스트 클라우드로서 자체 방화벽 뒤의
       데이터센터에 Eucalyptus와 함께 설치할 수 있다. 보안과 환경을 완전히 통제할
       수 있다는 장점이 있다.
    ▷ App Engine 호환성
       일단, 테스트가 완료되면 AppScale 프레임워크에서 작성하고 실행하는 App
       Engine 애플리케이션을 실제 Google App Engine 환경에 쉽게 전개할 수 있다. 

반응형
:
반응형

1. 클라우드 컴퓨팅 서비스 형식

 

  ○ 클라우드 컴퓨팅 서비스는 크게 아래와 같이 3가지로 구성된다

      - IaaS (Infrastructure as a Service)

      - PaaS (Platform as a Service)

      - SaaS (Software as a Service)

    ▷ 이들 3가지의 서비스 상에 공통 요소가 있기 때문에 완전하게 구분할 수는 없다.

    ▷ 그러나, 서비스의 특징을 고려하여 구분한다. (아래의 그림 참조)


  ○ 예를들어,

    ▷ Iaas는 기업 업무 처리에 필요한 서버, 저장 장치 등과 같은 IT 하드웨어자원을 클라우드

        서비스로 빌려 쓰는 형태다.

    ▷ PasS는 기업이 각각의 업무에 필요한 소프트웨어를 개발 할 수 있는 환경을 클라우드에서

        제공받는다.

    ▷ SaaS는 기업이 사용하는 소프트웨어 자체를 클라우드 서비스 사업자에게 빌려 쓰는 개념


  ○ 다양한 클라우드 컴퓨팅 서비스 모델

    ▷ 더 깊게 살펴보면, 많은 기업은 자신의 클라우드 컴퓨팅 서비스를 차별화하기 위하여

        다양한 형태의 서비스 모델을 요구하고 있다.

    ▷ 특히, 클라우드 컴퓨팅이 부상하면서, 컴퓨팅 모델로서의 클라우드 컴퓨팅 서비스 정의

        방법에 대해 많은 논의가 이루어지고 있다.

    ▷ 기업의 요구에 따른 특화된 서비스 모델에 대한 정의가 발표되어 논의되고 있으며, 공급

        업체들도 자사 제품에 대한 정의를 내놓고 있다.

    ▷ 클라우드 컴퓨팅에 대한 좀 더 나은 정의를 위해, 나름대로 논리적으로 타당하다고 판단

        되는 클라우드 컴퓨팅 서비스 모델들을 설명한다.

    ▷ 이러한 클라우드 컴퓨팅 서비스 분류는 클라우드 컴퓨팅의 개개 구성요소와 상호작용을

        고려한 것이다. 이보다 훨씬 더 복잡할 수도 있었겠지만, 그럴 필요는 없다고 판단된다.

    ▷ 개개 구성요소 대한 독자들의 갑론을박이 있을 수도 있으나, 클라우드 컴퓨팅 서비스

        기술에는 앞에서 언급한 3가지의 기본적인 서비스 모델을 포함하여 기업의 요구 사항에

        따라 제시되고 있는 주요 서비스 유형이다.


2. 클라우드 컴퓨팅 서비스 모델의 다양성

 

  ○ 기본적인 클라우드 컴퓨팅 서비스 모델

    ▷ SaaS(Software as a Service)

    ▷ PaaS(Platform as a Service)

    ▷ IaaS(Infrastructure as a Service)

 

  ○ 특화된 클라우드 컴퓨팅 서비스 모델 (모두 XaaS 형식임)

    ▷ CaaS(Communication as a Service)

    ▷ DaaS(Database as a Service)

    ▷ DaaS(Datacenter as a Service)

    ▷ DaaS(Desktop as a Service)

    ▷ IaaS(Integration as a Service)

    ▷ MaaS/GaaS(Management-/Governance as a Service)

    ▷ PaaS(Process as a Service)

    ▷ SaaS(Security as a Service)

    ▷ SaaS(Storage as a Service)

    ▷ TaaS(Testing as a Service)

 

  ○ 위와 같이 다양한 형태의 서비스 모델이 있고, 이들 모델은 기업의 요구 조건을 고려하여

      지속적으로 탄생하고 있다. 지속적인 서비스 모텔의 탄생으로 클라우드 컴퓨팅 서비스

      모델은 XaaS (X as a Service) 형태로 새로운 비즈니스 모델을 만들어 가고 있다.


  ○ CaaS(Communication as a Service)

    ▷ 가트너에서 정의한 용어로, 기업용 인터넷 전화 서비스를 의미한다.

    ▷ 클라우드를 기반으로 인터넷 전화 음성 전화 서비스를 지원하는 모델이다.

    ▷ 기존 통신망 대신 클라우드 기반의 인터넷 망으로 음성을 실어 보내는 서비스이다.

 

  ○ DaaS(Database-as-a-Service)

    ▷ 클라우드를 통하여 데이터베이스의 서비스 지원 모델이다.

    ▷ 즉, 원격지에 호스팅된 데이터베이스를 사용하고 다른 사용자들과 공유할 수 있게

        해주어서 마치 데이터베이스가 로컬에 있는 것처럼 기능하도록 만들어준다.

    ▷ 서비스 업체마다 각자의 모델을 가지고 있으나, 하드웨어와 소프트웨어 라이선스 비용이

        일반적으로 수천 달러에 이르는 데이터베이스 기술을 사용할 수 있게 해주는 기능은 같다.

 

  ○ DaaS(Datacenter as a Service)

    ▷ 데이터 센터를 구축하는 비용이 늘면서 클라우드를 통한 데이터 센터 서비스에 대한

        기업의 요청이 늘어나고 있고, 이를 위하여 DaaS(Datacenter as a Service) 모델이

        탄생되었다.

    ▷ 본 서비스를 통하여 기업은 네트워크 사용, 전력사용, 공간 효율성이 크게 높아질 수 있다.

    ▷ DaaS(Datacenter as a Service)는 기존의 데이터 센터들에서 제공하는 단순한 협력

        서비스가 아니라, 기업의 사업 모델에 따라 필요한 컴퓨팅 자원과 서비스를 유연하게

        제공할 수 있는 새로운 개념의 데이터 센터를 의미한다.


  ○ DaaS(Desktop as a Service)

    ▷ DaaS(Desktop as a Service) 는 클라우드에 자신의 데스크톱 환경을 저장해 두고 언제

        어디서나 어떤 디바이스를 통해서도 접속할 수 있는 서비스이다.

    ▷ 윈도7과 같은 운영체제나 MS 오피스와 같은 다양한 응용 프로그램을 월 단위로 결제할

        수 있어 초기 투자비용을 절약할 수 있다. 구매한 가상 데스크톱은 회사, 가정, PC방의

        데스크톱 PC뿐만 아니라, 아이패드, 갤럭시탭과 같은 모바일 기기에서도 이용할 수 있다.

    ▷ 회사측은 사내 업무 시스템을 클라우드 환경으로 제공하게 돼 언제 어디서나 다양한

        단말기를 이용해 업무 연속성을 유지할 수 있고, PC 관리비용을 절감할 수 있으며,

        기업 데이터 유출 차단 등 보안성도 강화할 수 있다.


  ○ IaaS(Infrastructure-as-a-Service)

    ▷ DaaS(Datacenter-as-a-Service) 서비스 형태의 원조라고도 부를 수 있으며, 컴퓨팅

        자원을 원격지에서 액세스할 수 있는 기능이다.

    ▷ 사용자는 자신의 것인 양 마음대로 사용할 수 있으며, 실제로는 사용자의 데이터센터

        혹은 데이터센터의 일부인 물리적인 서버를 임대한다.

    ▷ 이 접근방식과 주류 클라우드 컴퓨팅과의 차이점은 인터페이스와 과금(Metering)

        서비스를 이용하는 대신, 사용자는 서버 전체와 해당 서버상의 소프트웨어에 대한

        액세스를 갖는다. 한마디로, 덜 패키지화되어 있으며 호스팅에 가깝다.

 

  ○ IaaS(Information-as-a-Service)

    ▷ API처럼 잘 정의된 인터페이스를 통해서 원격지에 호스팅 된 어떤 유형의 정보도 처리해

        주는 기능을 말한다.

    ▷ 예를 들면, 주가 가격 정보, 주소 검증, 신용평가 보고서 작성 등이 있다


  ○ IaaS(Integration-as-a-Service)

    ▷ 애플리케이션, 시맨틱 미디에이션(Semantic Mediation), 플로우 컨트(FlowControl),

        그리고 통합 설계 등과의 인터페이스 방법을 포함한 완벽한 통합스택을 제공해 준다.

    ▷ 실제로 IaaS에는 기존의 EAI(Enterprise Application Integration) 기술에 있던 대부분의

        기능이 포함되어 있으나 서비스 형태로 제공된다.

 

  ○ MaaS/GaaS(Management-/Governance-as-a-Service)

    ▷ 한 개 이상의 클라우드 서비스를 관리할 수 있는 기능을 제공해 주는 서비스이다.

    ▷ 대개는 토폴로지, 자원 활용도, 가상화 가동시간 관리처럼 간단한 것들이다.

    ▷ 데이터나 서비스에 대해서 사전에 수립한 정책들을 집행하는 것 같은 거버넌스 시스템도

        제공되고 있다.

 

  ○ PaaS(Process-as-a-Service)

    ▷ 업무 프로세스를 생성하기 위해 서비스와 데이터처럼 여러 가지 자원을 함께 묶어주는

        원격지 지원을 가리키며, 원격지 또는 동일한 클라우드 컴퓨팅 자원에 호스팅된다.

    ▷ 업무 프로세스는 여러 시스템에 흩어져있는 핵심 서비스와 정보를 활용하며, 이런

        서비스와 정보를 차례차례 결합하여 프로세스를 형성해주는 메타 애플리케이션이라고

        생각하면 된다.

    ▷ 이런 프로세스들은 대개의 경우 애플리케이션보다 변경이 쉬워서 온디맨드 방식으로

        제공되는 프로세스 엔진을 사용하는 고객들에게 민첩성(Agility)을 제공한다.

 

  ○ PaaS(Platform-as-a-Service)

    ▷ 가입자들이게 원격 호스팅된 플랫폼을 통해서 전달되는 그 자체가 완벽한 플랫폼으로,

        애플리케이션 개발, 인터페이스 개발, 데이터베이스 개발, 스토리지, 테스팅 등이 포함됨.

    ▷ 기존의 시분할(Time-sharing) 모델을 기반으로 하는 최신의 PaaS 공급업체들은 로컬

        또는 무료 혹은 적은 가입비만으로도 온디맨드 방식으로 원격지에서 사용할 수 있는 대형

        애플리케이션을 개발할 수 있는 기능을 제공한다.


  ○ SaaS(Security as a Service)

    ▷ 핵심 보안 서비스를 인터넷을 통해서 원격지에서 제공해준다.

    ▷ 일반적으로 제공되는 보안 서비스는 아직 초보적인 수준이지만, ID 관리 같은 좀 더 세련된

        서비스들이 제공되는 추세이다.

 

  ○ SaaS(Software as a Service) (혹은 AaaS: Application as a Service 라고도 부름)

    ▷ 웹 플랫폼을 통해 사용자에게 전달되는 애플리케이션으로, 대개는 브라우저를 통해

        애플리케이션에 액세스한다.

    ▷ 많은 사람들이 AssS를 세일즈포스 SFA 같은 기업용 애플리케이션과 연관지어 생각

        하지만, 구글 독스, 지메일과 같은 사무 자동화 애플리케이션도 실제로는 AssS이다.


  ○ SaaS(Storage as a Service) (요구형 디스크 공간이라고도 부름)

    ▷ 물리적으로는 원격지 사이트에 있지만 스토리지를 필요로 하는 모든 애플리케이션들이

        원격지 스토리지를 로컬 스토리지처럼 이용할 수 있게 해주는 기능이다.

    ▷ 이는 클라우드 컴퓨팅의 가장 원초적인 구성요소이며, 다른 클라우드 컴퓨팅 구성요소

        대부분이 사용하는 서비스이다.

 

  ○ TaaS(Testing as a Service)

    ▷ 원격지에 호스팅된 테스팅 소프트웨어와 서비스를 이용하여 로컬이나 클라우드를 통해

        전달된 시스템을 테스트할 수 있는 기능이다.

    ▷ 클라우드 서비스 자체에 대한 테스트는 물론이고, TaaS 시스템은 다른 클라우드

        애플리케이션, 웹 사이트, 그리고 기업 내부 시스템을 테스트할 수 있으며, 기업 내부에

        어떤 하드웨어나 소프트웨어도 필요로 하지 않는다.



3. 클라우드 컴퓨팅 서비스의 활용


  ○ Iaas (Infrastructure as a Service)

    ▷ IT 인프라 자원을 제공하는 서비스이다.

    ▷ 기본적으로 저장장치, 컴퓨팅 능력을 표준화된 서비스 형태로 제공하는 수단이다.

    ▷ 사용자에게 서버, 저장장치 등의 장비를 판매하는 것이 아니라, 연산 능력이나 저장능력

        등 ‘컴퓨팅 파워’ 만을 서비스한다.

    ▷대표적인 사례는

      -  아마존의 컴퓨팅 노드 서비스인 EC2 (Elastic Compute Cloud)

      -  아마존의 스토리지 서비스 S3 (Simple Storage Serivce)

    ▷ IaaS는 기존의 인터넷 데이터 센터를 활용하는 DaaS (Datacenter as a Service)와

        다르다. 데이터 센터는 기업이 서버, 저장장치 같은 하드웨어 자원을 운영하는 공간만을

        빌리는 경우가 대부분이다. 일부 하드웨어까지 함께 제공 받더라도 기업이 서버의 기종을

        선택하고, 서버가 지원하는 용량도 미리 선택하여 확보하는 형태였다.

    ▷ Iaas에서는 이러한 절차가 없이, 클라우드 속에 어떠한 서버, 어떠한 저장장치 시스템이

        있는지는 전혀 몰라도 된다.

    ▷ 단지, 클라우드에 접속하여 필요한 컴퓨팅 파워를 사용하고, 이에 대한 사용료를 지불하면

        된다.


  ○ Paas (Platform as a Service)

    ▷ 사용자가 소프트웨어를 개발할 수 있는 토대를 제공해 주는 서비스다.

    ▷ 클라우드 컴퓨팅 서비스 계층의 중간 부분에 위치하여 제품을 제조 할 수 있는 능력

        (플렛폼)을 빌려 주는 서비스라고 할 수 있다.

    ▷ 사용자는 클라우드 서비스 사업자가 마련한 플렛폼에서 필요한 소프트웨어를 개발하면

        된다. 소프트웨어 개발에 필요한 모든 요소들을 클라우드 서비스 사업자가 제공한다.

    ▷ 개발자들이 자유롭게 자신이 원하는 소프트웨어를 구현 할 수 있도록 지원한다. 이를

        위하여 응용 소프트웨어를 제작하기 위한 도구인 프로그래밍 언어를 제공하는 수준을

        넘어 데이타베이스관리시스템, 응용 소프트웨어 서버, 파일 시스템 등의 시스템 소프트

        웨어에서 미드웨어까지 포괄하는 소프트웨어의 개발에 필요한 모든 요소들을 플랫폼을

        제공한다.

    ▷ 대표적인 사례는

      -  구글의 앱 엔진

      -  세일즈포스닷컴의 포스닷컴


  ○ Saas (Software as a Service)

    ▷ 클라우드 컴퓨팅 서비스 사업자가 소프트웨어를 제공하고, 사용자가 클라우드를 접속

        하여 필요한 소프트웨어를 활용하는 모델이다.

    ▷ 소프트웨어를 주문형(On-Demand) 서비스 형태로 제공하는 것으로, 같은 소프트웨어를

        여러 고객이 공유하여 사용 할 수 있도록 제공한다.

    ▷ 대표적인 사례는

      - 문서편집 소프트웨어,

      - 전자우편관리 프로그램,

      - 기업의 핵심인 ERP(Enterprise Resource Planning) 응용 소프트웨어,

      - 거의 모든 소프트웨어를 클라우드 서비스로 제공 받을 수 있다.

    ▷ SaaS는 클라우드 컴퓨팅이 최근 부각되기 이전부터 등장하였던 서비스 영역으로 이미

        많은 전문 기업을 통하여 상용화되어, 소프트웨어 시장에서 주요 서비스 영역으로 자리

        잡고 있다.

    ▷ SaaS는 기존의 응용 소프트웨어를 서비스로 제공하는 기존의 ASP(Application Service

        Provider) 개념의 확장으로 볼 수 있다. 그러나, 소프트웨어를 빌려 쓰는 측면에서는

        동일하지만, 이를 가능하게 하는 기술적인 측면에서는 SaaS가 훨씬 진보된 기술이다.


  ○ 3가지의 대표적인 클라우드 서비스 모델인 IaaS, PaaS, SaaS 등이 각각 다른 서비스

      영역이지만 서두에서 언급하였듯이 완전히 분리된 채로 존재하지는 않는다.

 

  ○ 아래의 그림에서 보여주고 있는 것과 같이 3 개념은 모두 상호 연계되면서 클라우드 컴퓨팅

      서비스의 완성도를 높여 주고 있다. 이들 서비스가 상호 간의 장단점을 응용하여 더 좋은

      서비스 모델을 창출하고 있다.  

 

 서비스

 모    델

 서비스  영역

 서비스 사례

 SaaS

 응용 소프트웨어 서비스

 GoogleApps, Salesforce.com App, Apple

MobileMe, Nokia OVI, IBM Bluehouse

웹기반 서비스

 HP Snapfish, MS Office Live, HP

Magcloud

응용 소프트웨어 컴포넌 

 Amazon FPS(Flexible Payments Service)

API, Google MAP API, Google Calendar

APIs, Yahoo Maps API

 PaaS

 기업용 플랫폼 서비스

 GigaSpaces, Oracle SaaS Platform

 Hosted 플랫폼 서비스

 Google AppEngine, Saleforce Froce.com,

MS Azure, Sun Caroline, Cloudera

 IaaS

 데이터베이스 클라우드 서비스

 Amazon SimpleDB, Google Base, MS

SDS

 미들웨어 클라우드 서비스

 Amazon SQS (Simple Queue Service)

 저장장치 클라우드 서비스

 Amazone S3 (Simple Storage Service),

EMC Mozy/Atmos, Rackspace CloudFiles

 컴퓨터 클라우드 서비스

 Amazon EC2(Elastic Compute Cloud),

Saw s Cloud Compute

 

 

 

반응형
: