IaaS(Infrastructure as a Service)는 가상 머신 자체를 제공하는 서비스입니다. IaaS에서는 여러분이 원하는 만큼 가상 머신을 빌려 쓸 수 있습니다.
여러분이 IaaS에서 가상 머신 인스턴스를 생성한 후에는 거기에다가 운영체제를 설치해야 합니다. 혹은 이미 운영체제가 설치되어 있기도 합니다. IaaS에서 생성한 가상 머신 안의 운영체제(시스템 레지스트리 등)는 여러분이 마음대로 제어할 수 있습니다. 여기에 여러분이 서버를 운영하고자 할 때는 서버 프로그램과 데이터 파일을 복사해 넣고 실행시켜야 합니다. AWS EC2, Azure Virtual Machine이 IaaS 예입니다.
PaaS(Platform as a Service)는 IaaS보다는 상위 계층에서 작동합니다. PaaS에서는 운영체제뿐만 아니라 운영체제 위에서 어떤 프레임워크 소프트웨어가 이미 구동되고 있으며, 이 프레임워크 위에 여러분 서버 코드나 데이터 파일을 업로드해야 합니다. 필요한 기능이 이미 구성되어 있으므로 운영체제를 직접 설치하거나 서버 구동에 필요한 기본 프로그램을 설치하는 과정을 생략할 수 있습니다. 네트워크 설정도 생략할 수 있습니다. 따라서 더 쉽고 빠르게 서버를 개발할 수 있습니다. 반면 PaaS는 IaaS보다 자유도가 낮습니다. 운영체제에는 접근조차 할 수 없으며, PaaS에서 제공하는 프레임워크의 기능을 뛰어넘는 작업은 하기가 어렵습니다. AWS Lambda, Azure Functions, 여러 웹 호스팅 서비스가 여기에 해당합니다.
SaaS(Software as a Service)는 PaaS보다 상위에 있습니다. SaaS에서는 코딩 자체가 불필요하며, 과금이나 데이터 분석, 페이스북 로그인 연동 같은 특화된 기능들을 제공합니다. 여러분이 이것을 사용할 때는 인증 키나 매개변수 설정 등 용도에 맞게 설정하는 것이 전부라고 보면 됩니다. SaaS는 개발할 것이 없으므로 가장 빠르고 편리하게 이용할 수 있습니다. 그러나 자유도는 가장 낮습니다. SaaS에서 제공하는 기능 외에 다른 것을 쓰기는 어렵습니다. AWS Cognito, Azure Marketplace, Google Analytics 등이 여기에 해당합니다.