클라우드의 시대에 접어들면서 IT에서도 여러 용어들이 새롭게 만들어졌다.
그 중에서도 가장 많이 들어본 것이 Saas(Software as a Service)라는 용어이다.
아마 IT쪽에서 일한다면 뭔지는 몰라도 용어 자체는 한번 쯤 들어보았을 것이다.
그런데 정작 SaaS, PaaS, IaaS가 정확하게 어떤 차이를 가졌고 어떤 의미인지를 모르다보니 이번 기회에 한번 정리해 보려 한다.
SaaS, Paas, IaaS란?
SaaS란 Software as a Service의 줄임말로 굳이 번역을 하자면 서비스형 소프트웨어라는 의미가 되겠다.
마찮가지로 각각 PaaS는 Platform as a Service, IaaS는 infrastructure as a Service의 줄임말이다.
as a Service 란 용어 자체가 클라우드로 서비스를 제공하겠다는 의미이며 이런 형태를 클라우드 서비스 모델 이라 한다.
따라서 이것들은 모두 클라우드 서비스 모델의 한 종류라고 생각하면 되겠다.그럼 각각의 차이를 알아보고 클라우드를 사용하지 않는 On-Premise 방식과 어떻게 다른지 살펴 보도록 하자.
On-Premise - 모든 것을 직접 운영
온프레미스(On-Premise) 방식은 IT 서비스를 운영하는 회사가 자체적으로 보유한 공간에 물리적으로 하드웨어 장비를 가지고 직접 운영하는 방식을 말한다.
네트워크, 저장소, cpu나 memory같은 하드웨어, OS 같은 운영체제까지 모든 것을 직접 구성해야 한다는 의미이다.
온프레미스는 클라우드가 등장하기 전까지 일반적인 기업이 사용하던 인프라 구축 방식이였다.
하지만 이런 온프레미스 방식은 구축을 하기위한 기간이 필요하며, 물리적으로 하드웨어를 설치하기 위하여 발생하는 비용과 이를 관리하기 위한 유지보수 비용 등 부가적인 비용들이 발생한다.
따라서 현재는 많은 기업들이 온프레미스가 아닌 클라우드 컴퓨팅을 사용하여 서비스를 제공받는 추세이다.
바꿔말하면 클라우드 서비스 모델을 사용하면 이런 물리적인 관리를 위한 부가비용을 절약하는 효과를 가진다는 의미이기도 하다.
클라우드 서비스 모델은 위의 여러가지 요소들을 일부만 제공하지는지 전체를 제공하는지에 따라 서비스 모델이 나뉘어 지며 이것이 IaaS / Paas / SaaS를 나누는 기준이 된다.
IaaS (Infrastructure as a Service)
IaaS는 서비스 제공업체가 인프라만 제공하고 OS나 Middleware 같은 소프트 웨어는 사용자가 직접 유지/관리하는 형태이다.
정말 간단하게 비유하자면 가상의 컴퓨터를 클라우드로 임대하는 것과 비슷하다.
하드웨어만 갖춰진 빈 깡통과 같은 형태이며 이것을 운영하는 것은 어디까지나 사용자의 몫이 된다.
(일종의 컴퓨팅 리소스 대여라고 생각해도 좋다)
하지만 이런 IaaS 형태만 이용해도 물리적으로 서버 공간을 마련해야 하는 온프레미스 방식보다 편리하다는 것을 알 수 있다.
여기에 더하여 하드웨어에 관련된 유지보수를 서비스 제공업체에서 하게 되므로 사용자 입장에서는 OS 및 미들웨어를 포함하는 소프트웨어만 신경쓰면 되는 장점도 있다.
대표적인 IaaS 서비스에는
- AWS의 EC2
- Google Cloud Platform
- Azure Virtual Machines
등이 있다.
Paas (Platform as a Service)
이전의 IaaS가 인프라만 제공하는 형태였다면 PaaS는 여기에 OS와 기타 프로그램 실행에 필요한 부분(런타임), 응용 프로그램의 개발 도구, 컴파일러등을 함께 제공한다.
서비스 제공자가 지정해준 프로그래밍 언어와 툴로 사용자가 만든 클라우드 환경이나 어플리케이션을 배포 할 수 있으며 바꿔 말하면 서비스 이용자는 PaaS에서 필요한 서비스(플랫폼)을 선택하여 개발만 하면 된다.
PaaS의 가장 큰 장점은 개발자가 IaaS에서 했던 복잡한 설치 및 환경설정을 하지 않고 구성된 환경에서 그냥 코딩만 열심히 할 수 있다는 점이다.
그만큼 개발자가 선택할 수 있는 폭이 줄어든 것이기도 하지만 복잡한 서버, 환경구성 작업에 시간이 얼마나 소요되는지 생각해 볼때, 내가 필요한 환경을 개발자 혹은 사용자가 정확히 알고 있다면 제공된 서비스 모델 중 선택해서 코딩만 하면 되니 굉장히 효율적이고 편리한 서비스 모델이라 할 수 있겠다.
당연히 그만큼 가격도 비싼 편이다.
Pass의 대표적인 예로는
- AWS Elastic Beanstalk
- Window Azure
- Heroku
등이 있다.
SaaS (Software as a Service)
이쯤되면 SaaS에 대해서 거의 감이 올 것이다.
SaaS는 제작되어진 응용 소프트웨어를 클라우드 서비스로 제공하는 형태이다.
응용 프로그램은 웹 브라우저와 같은 띤 클라이언트(Thin client)를 통해서 접근/제어가 가능하다.
또한 중앙에서 해당 소프트웨어를 관리하기 때문에 사용자가 일일이 업그레이드나 패치를 작업할 필요가 없으며 필요할 때에 비용만 지불한다면 어디서든 바로 사용이 가능하다.
그래서 SaaS를 주문형 소프트웨어(on-demand software)라고도 부른다.
대표적인 SaaS에는
- Google Apps
- Google mail
- Youtube
- Blog
등이 있으며 이것들을 우리가 어떻게 사용하고 있는지 생각해 보면 SaaS의 대해 좀 더 쉽게 이해할 수 있을 것이다.
참고자료
https://www.redhat.com/ko/topics/cloud-computing/what-is-saas
https://cloud.google.com/learn/paas-vs-iaas-vs-saas?hl=ko