[CS] 클라우드 서비스 IaaS, PaaS, SaaS 란?
Cloud Service
- 클라우드 컴퓨팅이란 인터넷으로 가상화된 IT 리소스를 서비스로 제공하는 것을 의미한다.
- 쉽게 설명하면, 기업 단위에서도 클라우드 컴퓨팅 리소스를 준비하려면 많은 시간과 비용이 들어간다. 물리적 서버 및 기타 인프라를 구매하고 클라우드 컴퓨팅 아키텍처를 지원해야 한다. 준비된 시스템은 충분한 전력 및 냉각 기능을 지원해야 하며 또한 이를 구성하고 배포한 후 관리할 전문 인력도 필요하다.
- 이러한 장기적인 과정은 비즈니스가 커졌을때 서비스를 확장하기 어려우며 기업 입장에서도 그렇다고 컴퓨팅 리소스를 처음부터 필요 이상으로 확보해 두는것도 자원의 낭비이다.
- 클라우드 컴퓨팅은 컴퓨팅 리소스를 서비스로 제공해 이러한 문제를 해결한다.
- 소비자 입장에서는 필요한 만큼의 리소스만 인터넷을 통해 구매해 바로 사용할 수 있다.
- 기업 입장에서는 직접 리소스를 조달, 구성 및 관리를 할 필요가 없으며 사용한 만큼만 비용을 지불하면 된다. 확장 및 축소 또한 쉽게 할 수 있다.
- 클라우드 컴퓨팅 서비스 모델은 크게 아래와 같이 세가지로 나뉜다.
- Infrastructure as a Service(IaaS)
- Platform as a Service(PaaS)
- Software as a Service(SaaS)
IaaS
- Infrastructure as a Service 의 약자로, 컴퓨팅, 스토리지, 네트워킹, 가상화 등 IT 인프라 서비스에 대한 주문형 액세스를 제공함. IT 리소스를 가장 높은 수준으로 제어하며 기존 On-Premise 유형과 가장 유사하다.
- 클라우드 서비스 제공업체(CSP)로부터 서버, 가상머신, 네트워킹 리소스, 스토리지를 포함한 클라우드 인프라 리소스 액세스를 개별 서비스 대여하는 서비스.
- 따라서 사용자는 남은 항목인 운영체제를 포함한 미들웨어, 데이터, 애플리케이션 등에 더 집중해 관리할 수 있다.
- 네트워크 설정을 하고 보안 설정을 하는 등의 복잡한 과정이 필요없다. 필요할때 필요한 만큼의 자원만 사용 가능.
- 물리적인 서버를 직접 구매할 필요는 없지만, 다양한 서비스 구축에 대한 지식을 요구한다.
- 서버 인스턴스를 만든 후 트래픽 관리를 하지 않으면 서버가 터질 수 있다.
대표적인 예시
- MS Azure, Google Cloud, OpenStack, 아마존의 AWS와 같은 서비스가 있다.
- EC2 같은 서비스를 통해 사용자는 서버 자원이나 스토리지를 빌려서 사용할 수 있다.
장점
- 고객 입장에서 Virtualization 레벨과 그 하위 레벨에 대해서는 고려하지 않아도 된다.
- 가장 많은 부분을 변경할 수 있으므로 자유도가 가장 높다.
장점
- 하지만 Virtualization 레벨과 그 하위 레벨에 접근또한 불가능 하다.
- 자유도가 높은 만큼 신경써야 할 부분 또한 많다.
PaaS
- Platform as a Service 의 약자로, 클라우드 애플리케이션 개발에 필요한 모든 하드웨어 및 소프트웨어 리소스를 제공한다. PaaS를 사용하면 기업은 기본 인프라의 관리 및 유지보수에 대한 부담 없이 앱개발에 집중할 수 있다.
- IaaS 형태의 가상화된 클라우드 위에 사용자가 원하는 서비스를 개발할 수 있도록 개발환경을(platform) 미리 구축해, 이를 서비스 형태로 제공함.
- Java, PHP, NodeJS와 같은 런타임을 미리 깔아둔 뒤, 거기에 소스코드만 적어서 빌드하는 구조.
- 사용자는 운영체제, 하드웨어, 네트워크등을 교려할 필요가 없이 어플리케이션에만 집중할 수 있다.
대표적인 예시
- AWS Elastic Beanstalk, Heroku, Red Hat 등이 있다.
장점
- 이미 설치된 플랫폼 위에 코드만 돌리면 되기 때문에 관리가 편하며 이상적인 어플리케이션 플랫폼 관점의 클라우드 모델로 본다.
단점
- 어플리케이션이 플랫폼에 종속되어 개발되기 때문에 플랫폼간의 이동이 어려울 수 있다.
SaaS
- Software as a Service 의 약자로, 기본 인프라에서 유지보수 및 앱 자체 업데이트까지 전체 어플리케이션 스택을 서비스로 제공한다. SaaS는 보통 클라우드 인프라 제공업체에서 서비스와 인프라를 모두 관리하고 유지보수하는 최종 사용자 어플인 경우가 대부분이다.
- 클라우드 서비스 형태 중 가장 완성된 형태의 클라우드 서비스이며, 모든것을 제공자 측에서 웹을 통해 제공한다. 따라서 클라이언트 측에서 다운로드나 설치가 필요하지 않는다.
- 제공업체가 소프트웨어 업데이트, 버그 수정 및 기타 일반 소프트웨어 유지관리 작업을 처리하며, 사용자는 대시보드나 API를 통해 어플리케이션에 접근한다.
- 일반인 입장에서 제일 많이 접근 가능한 형태.
대표적인 예시
- N드라이브, Google Drive, iCloud, E-mail등이 있다.
장점
- 소프트웨어를 웹 브라우저를 통해 언제 어디서나 접근 가능하며 업데이트 또한 빠르고 간편하게 제공받을 수 있다.
단점
- SaaS의 특성상 반드시 인터넷에 연결되야만 사용할 수 있으며, 외부의 데이터 노출 위험이 존재한다.