서버 컴퓨터를 운영하는 방식은 크게 두가지로 나뉜다.
On-PremiseCloud Computing
On-Premise는 기존의 전통적인 서버 운영방식으로, 서버를 직접 설치하고 세팅하는 방식이다. 서버 구매 비용도 비쌀 뿐더러 우리같은 웹 개발자들은 소프트웨어를 주로 다루는 사람들이고, 하드웨어와는 거리가 멀다...회사 입장에서도 유지 보수하기 위한 비용도 만만치 않을 것이다.
이에 대한 대책으로 나온 서비스가 Cloud Computing이다. Cloud Computing은 물리적인 서버를 직접 관리할 필요 없이 클라우드 서비스 프로바이더(ex. AWS)에게 원하는 서버의 사양을 원하는 시간만큼 대여해서 사용 할 수 있다.
클라우드 서비스 회사들은 안정적인 서비스를 제공하기 위해 전세계에 서버 인프라를 구축해두고 개인이나 기업에게 서비스를 제공한다.

클라우드 컴퓨팅은 제공하는 서비스의 Level에 따라서 3개로 나뉜다.

Iaas (Infrastructure as a Service)Paas (Platform as a Service)Saas (Software as a Service)Iaas는 클라우드 컴퓨팅의 가장 기본 형태로, 인프라 구축을 위해 필요한 서버를 대여해준다. 그리고 사용자는 이 대여받은 서비스의 리소스에 접근해서 서비스를 구성하고 관리할 수 있다. AWS의 EC2가 대표적이다. 위 이미지에서 확인할 수 있듯이, OS설치 부터 로드밸런싱 등등 다양한 것들을 사용자가 세팅해야 한다.
Paas는 소프트웨어를 개발하고 운영하기 위한 구성요소를 플랫폼화해서 간단하게 서버를 사용할 수 있도록 해주는 서비스다. 쉽게 말해서 배포 환경은 다 구축되어 있고 개발자는 그 위에 자신이 제작한 웹사이트만 올리면 된다. Iaas보다는 손쉽게 사용할 수 있지만, Low-level의 경우 플랫폼을 제공한 서비스에 종속되어 있어서 사용자의 권한이 제한적인 것이 단점이다. Heroku, Github Pages가 대표적이다.
# Serverless
최근에는
Paas와 비슷하면서도 다른Serverless가 대세인 것 같다.Serverless는 실제로 서버가 없는 것이 아니라, 개발자가 서버를 신경쓰지 않고(마치 서버가 없는 것처럼) 서비스를 개발하는 것에만 집중 할 수 있게 해준다는 의미에 가깝다.Serverless는 매우 간편하면서도 확장성 또한 우수하다.
물을 컴퓨팅 성능에 비유했을 때,Paas는 정수기와 물병 배달 서비스를 이용하는 것이고,Serverless는 수도꼭지에 물을 받는 것에 비유되기도 한다.Serverless는 그만큼 개발자가 사용하기 간편하면서도 확장성 또한 보장된다고 할 수 있다.Serverless의 대표적인 서비스는AWS Amplify가 있다.
Saas는 클라우드 서비스에 고객이 사용할 수 있는 소프트웨어가 제공되는 형태이다. 개발업계를 제외하고 본다면 가장 많이 사용하는 서비스가 아닐까 싶다. 대표적인 서비스들도 정말 친숙하다.
iCloud, Netflix, Xbox Game Pass, Slack
좀더 짧게 요약 해보자.
Iaas는 개발자가 서비스 배포를 Low Level(OS설치)부터 관여한다.Paas는 버튼 몇 개만 누르면 배포할 수 있다. Saas는 완전한 하나의 서비스를 클라우드를 통해 고객들에게 제공한다.