IaaS, PaaS, SaaS - 누구나 클라우드를 말한다.

안녕하세요. 김대우 입니다.

"클라우드" 하면 뭐가 생각나시나요? 사실 클라우드가 도입된 시기나 기간을 생각해보면, 버즈워드에 마케팅 레시피라는 생각보다는 참 다양한 업계와 다양한 플랫폼 사업자가 자신의 비즈니스 목적에 의해 클라우드의 진의를 잘못 알고 계시며, 일부는 이를 호도하고 있다는 생각도 많이 듭니다.

예를 들어,

IT전문가나 전산실의 인프라 운영자, 또는 DBA와 이야기 하다보면, 클라우드는 Windows Server Hyper-VVMWare, Citrix의 Xen과 같은 사설 클라우드(Private Cloud)를 의미하지요. 회사 내부에서 비 전산 계열에 계시는 분들은 사용성과 개념적으로 클라우드를 BPOS로 보시는 분들도 많습니다.(SaaS - Finished Service의 예시이며, 개념적 BPOS로 특정사의 서비스를 의미하지 않습니다.) 아울러, IT 전문가 분들 중에서도 호스팅사가 제공하는 서버 호스팅이나 서버팜을 클라우드로 이해하시는 분들도 계시고, 네이버나 다음과 같은 포털의 서비스 환경 자체를 클라우드로 이해하고 계신 분도 계시며, 심지어는 국내 포털이나 국내 이통사가 제공하는 PaaS의 일부 특수목적 저장소(Storage) 서비스를 클라우드로 생각하는 분들도 계십니다. TV에서 국내 포털사나 이통사가 CF하면서 "우리가 원조 클라우드다"를 매일매일 외쳐대니 그럴법 하다는 생각도 들어요.

이번 시간에는 클라우드의 여러 정의와 분할 방식 중, 클라우드 서비스 제공의 관점에서 일반적으로 업계에서 정의되는 내용을 소개해 드리려고 합니다. 이 용어적인 내용을 명확히 하셔야 이후 제가 진행하게될 강좌에서 많은 내용을 함께 공감하실 수 있을 겁니다.

그럼 시작해 보겠습니다.

1. 클라우드 업계가 정의하는 - IaaS, PaaS, SaaS 란 무엇인가?

클라우드.jpg

한 단어로 표현한다면 각각 host, build, consume으로 표현 가능합니다. 조금 세부적인 레벨에서 알아 보도록 하겠습니다.

클라우드2.jpg

IT 인프라의 구성요소로 알아보는 클라우드의 차이점으로, 사실 이 이미지가 전부다~ 라고 보셔도 좋겠습니다. 어디까지가 직접 관리해야 하는 영역인가! 이것이 클라우드 서비스를 제공자 관점에서 나누는 기준이 됩니다.

2. Packaged software(On-premise 방식)

지난 강좌들을 통해 지속 말씀드린 것처럼, On-premise 모델을 의미하며, 직접 인프라와 플랫폼, 어플리케이션을 관리하는 모델을 의미합니다.

3. 인프라스트럭처! IaaS – Infrastructure as a Service

인프라스트럭쳐 레벨을 제공하는 서비스를 의미하며, 위의 표에서 주의깊게 보실 부분은 하부의 인프라 부분만 제공됩니다. 즉, OS부터 상위의 모든 플랫폼이나 어플리케이션을 사용자가 직접 올릴 수 있습니다.

- 클라우드 서비스 제공자는 관리 부담이 적어집니다.

- 가상 호스팅(VM Hosting) 서비스와 일부 유사하나, 클라우드 서비스는 Elastic 서비스 확장 관점에서 차이가 있습니다.

- 일반적으로, 매우 적은 수의 OS만 일반적으로 제공 됩니다.(일반적으로, 일부 Linux 배포판과 Windows Server만 제공)

- 고객은 여전히 직접 OS와 어플리케이션을 직접 관리 해야 합니다.

- 유료 OS나 유료 DBMS에 대란 라이센스 비용은 고객 부담일 수 있습니다.(RHEL, Windows Server나 MSSQL 또는 Oracle)

- 관리 측면에서, 개발자와 인프라 관리자의 역할이 분담될 수 있음. 인프라 관리자는 여전히 OS 및 OS 상부 전반적 보안에 대한 책임을 가질 수 있습니다.

- Amazon EC2(Amazon Elastic Compute Cloud) 서비스가 사용하는 방식이며 SKT나 KT, LGU+와 같은 국내 이통사가 제공하는 클라우드 서비스는 2012년 1월 현재, 초기의 IaaS모델을 제공하고 있습니다.(국내 서비스는 향후 빠른 속도로 발전하겠지요)

- 서비스사가 제공하는 형태로 VM을 이용(구축)할 경우 모니터링이나 프로비저닝 등도 손쉽게 구현 가능합니다.

여담으로, 기업의 인프라를 클라우드로 가져올때 가장 저항이 적은 클라우드 컴퓨팅 서비스가 바로 이 IaaS입니다. 하지만, IaaS가 언제나 Elastic과 도적 스케일링을 목표로하는 클라우드를 위한 정답은 아니라고 생각하고 있어요.(이는 다음에 풀어 보도록 하겠습니다.) IaaS에 대해 대략적으로 감이 오셨는지 모르겠네요. 그럼 다음으로, PaaS에 대해서 알아 보도록 하겠습니다.

4. 플랫폼! PaaS - Platform as a Service

개발자가 어플리케이션을 개발, 서비스 하기위해 사용가능한 서비스와 기능들이 제공되는 클라우드 서비스를 의미합니다. 특히, 이미 구축 후 제공되는 인프라가 존재하기에 개발자는 상위의 플랫폼에서 빠르게 어플리케이션을 개발 및 서비스 가능한 특징이 있지요.

- 네트워크 연결 인프라부터 어플리케이션 실행을 위한 런타임까지 제공되며, 사용자는 어플리케이션과 데이터만 관리합니다.

- 마이크로소프트 Azure Platform 과 세일즈포스닷컴이 제공하는 Force.com(세일즈포스닷컴의 Salesforces - SaaS와 다른 서비스입니다)이 PaaS의 대표적인 서비스 입니다.

- PaaS는 개발자와 개발사에게 인프라나 OS, 플랫폼 관리에 대한 부담을 거의 대부분 경감시킵니다. 하지만, 경험적으로 볼때, 모든 부담을 없애지는 않습니다.

- PaaS 어플리케이션 서비스를 위해 대부분의 경우 비즈니스 모델과 비즈니스 로직이 추가되어야 합니다.

- 가장 이상적인 어플리케이션 플랫폼 관점의 클라우드 모델로 업계에 받아들여지고 있습니다.

제 소견입니다만, PaaS가 업계에서 랜딩하는 시점이 되면, 다시 한번 어플리케이션 개발자에게 새로운 플랫폼 선택에 대한 패러다임의 이동이 있을 것입니다.  PaaS는 개발자와 솔루션 개발사(ISV)에게 대단히 큰 혜택을 제공합니다. 인프라나 런타임에 무관하게 오직 어플리케이션과 로직 자체에 집중할 수 있으니까요. 아울러, 모니터링이나 프로비저닝, 비용 처리 방식(Billing)도 솔루션 개발사에 매우 유리하게 구성되어 있습니다. 클라우드 솔루션 개발사라는 새로운 범주의 회사가 생기는 단계이기도 하지요.(나중에 풀어 보겠습니다.) 누누히 말씀 드리지만, 그렇다고 해서, PaaS가 모든 클라우드 솔루션 문제의 해결이라는 말은 아닙니다. 이는, 맨 마지막에 풀어 보도록 하지요.

그럼 끝으로, SaaS에 대해서 정리해 보도록 하지요.

5. 소프트웨어 소비! SaaS - Software as a Service

어렵게 적을 필요 있겠습니까. 어플리케이션의 소비 관점에서 제공되는 IT의 서비스 방식을 의미하죠. 조직이나 개인이 쉽게 어플리케이션을 사용하고 소비할 수 있도록 전달 가능한 어플리케이션 서비스가 대표적 의미입니다.

- SaaS는 위의 구성요소 표에서 보이는 것처럼, 서비스 제공의 관점에서 볼때 철저한 소비(Consume)를 목적으로 합니다. Finished Service의 관점으로도 볼 수 있으며, 서비스 사용자에게 추가적인 개발이나 데이터에 대한 추가적인 부담을 씌우지 않습니다.

- 기업소비 관점에서 본다면 세일즈포스닷컴의 CRM 서비스나,  개인 소비 관점에서 본다면 포털이 제공하는 웹메일도 하나의 SaaS 예가 될 수 있습니다.

6. IaaS와 PaaS, SaaS는 적인가 동지인가?

IaaS와 PaaS, SaaS가 물과 기름같은 배타적이거나 이질적인 관계는 아닙니다. IaaS와 PaaS, 그리고 SaaS는 모두 개별적으로 제공될 수도 있으며, PaaS위에 SaaS를 구축해 서비스하는 사례 등 - 서로의 필요와 비즈니스 요구에 의해 얼마든지 상호 보완적으로 구축되어 업계에서 안착하게 될 것입니다. 궁극적으로는, 클라우드 기반 솔루션을 개발하는 솔루션 개발사(ISV)의 입장에서 볼때, IaaS와 PaaS 양쪽 모두가 고객의 요구에 의해 얼마든지 커스터마이징이 가능한 하이브리드 모델로 제공되는 선택이 분명 최선이 아닐까라고, 저는 감히 조금 후의 내일을 확신해 봅니다.

아울러, 꾸준히 말씀드린 것처럼, 클라우드 컴퓨팅은 언제나 최선의 "비즈니스를 위한 선택" 입니다. Public cloud와 Private cloud 역시 양쪽 모두 배타적이 아닌, 상호 보완적 관계이기 때문에 모두에 대한 관심을 가지셔도 좋겠네요.

다음으로는. IaaS와 PaaS, 호스팅에 대해서 오해하시는 분들을 위한 포스트를 한번 준비해 보도록 하겠습니다.

감사합니다.

추가정보 :

SQL서버의 DB를 손쉽게 클라우드, SQL Azure로 전송하는 방법, SQL Azure Compatibility Assessment
클라우드 컴퓨팅 Azure를 개발자가 무료로 테스트 하는 방법
Azure 사용 가격 예측 계산기 - Full Pricing Calcurator
클라우드 컴퓨팅과 SLA(Service Level Agreements) - Azure가 제공하는 SLA
Azure 모니터링과 사용량 계측(Metering) 도구 총집합
Azure Connect - Azure를 회사망의 일부처럼 사용하는 하이브리드 클라우드(hybrid cloud) 구축
클라우드의 네트워크 응답속도(Latency) 한계 극복, SQL Azure Federation
클라우드와 CDN 비즈니스. 그리고, Azure
클라우드와 On-premise 전체 비용 비교에 대한 단상
IaaS, PaaS, SaaS - 누구나 클라우드를 말한다.

Azure - 클라우드 컴퓨팅 - 시리즈 강좌 리스트
[Azure강좌] 1. 클라우드와 원도우 애저 소개
[Azure강좌] 2. SDK 설치와 Azure 무료 신청
[Azure강좌] 3. ASP.NET(Web Role) Hello World
[Azure강좌] 4. 프로젝트 패키지 Azure 배포
[Azure강좌] 5. Windows Azure Storage 서비스와 계정 설정
[Azure강좌] 6. 테이블 서비스와 StorageClient 라이브러리 #1
[Azure강좌] 7. SQL Azure 소개와 서버 구성
[Azure강좌] 8. 데이터베이스 생성과 SSMS 사용
[Azure강좌] 9. SQL Azure 마이그레이션 위자드 사용하기
[Azure강좌] 10. SQL Azure 방화벽 설정
[Azure강좌] 11. SQL Azure Manage 툴 사용해 보기
[Azure강좌] 12. 테이블 서비스와 StorageClient 라이브러리 #2
[Azure강좌] 13. SQL Azure ASP.NET GridView 바인딩
[Azure강좌] 14. Blob 서비스와 Container
[Azure강좌] 15. Blob 리스트 조회, 업로드 다운로드 예제
[Azure강좌] 16. 웹사이트 콘텐트 Blob 스토리지 이용
[Azure강좌] 17. Windows Azure CDN 설정
[Azure강좌] 18. Queue 서비스와 생성, 삭제, 메타데이터 추가
[Azure강좌] 19. Queue 의 메시지 피킹 및 가져오기, 추가, 삭제
[Azure강좌] 20. [Tip] SQL Azure 방화벽 룰 설정 예제 애플리케이션

Azure - 클라우드 컴퓨팅 - 동영상 참고 자료

[Azure 동영상 강좌] 1. 클라우드와 원도우 애저 소개 (애저 포털 둘러보기) 
[Azure 동영상 강좌] 2. SDK 설치와 Azure 무료 신청
[Azure 동영상 강좌] 3. ASP.NET(Web Role) Hello World
[Azure 동영상 강좌] 4. 프로젝트 패키지 Azure 배포
[Azure 동영상 강좌] 5. Windows Azure Storage 서비스와 계정 설정
[Azure 동영상 강좌] 6. 테이블 서비스와 StorageClient 라이브러리 #1
[Azure 동영상 강좌] 7. SQL Azure 소개와 서버 구성
[Azure 동영상 강좌] 8. 데이터베이스 생성과 SSMS 사용
[Azure 동영상 강좌] 9. SQL Azure 마이그레이션 위자드 사용하기
[Azure 동영상 강좌] 10. SQL Azure 방화벽 설정
[Azure 동영상 강좌] 11. SQL Azure Manage 툴 사용해 보기
[Azure 동영상 강좌] 12. 테이블 서비스와 StorageClient 라이브러리 #2
[Azure 동영상 강좌] 13. SQL Azure ASP.NET GridView 바인딩
[Azure 동영상 강좌] 14. Blob 서비스와 Container
[Azure 동영상 강좌] 15. Blob 리스트 조회, 업로드 다운로드 예제
[Azure 동영상 강좌] 16. 웹사이트 콘텐트 Blob 스토리지 이용
[Azure 동영상 강좌] 17. Windows Azure CDN 설정
[Azure 동영상 강좌] 18. Queue 서비스와 생성, 삭제, 메타데이터 추가
[Azure 동영상 강좌] 19. Queue 의 메시지 피킹 및 가져오기, 추가, 삭제
[Azure 동영상 강좌] 20. [Tip] SQL Azure 방화벽 룰 설정 예제 애플리케이션