PaaS vs Serverless 비교 & 사용
클라우드 개념을 다지는 중,
PaaS와 Serverless 개념이 혼동되어 정리하게 되었다
⭐️ 0. 결론
PaaS, Serverless 둘 다, 사용자는 어플리케이션 코드를 올리기만 하면 된다!
Serverless는 사용할 때만 켜지고, 평소에는 자동으로 꺼지는 상태이다. (경제적)
PaaS는 개발자가 직접 VM을 관리해야 한다. (수동으로 끄지 않는 한 켜져 있음) (덜 경제적)
Serverless는 CSP의 서버 관리 서비스(스케일링, 업데이트, 백업 등)가 포함된다.
PaaS는 개발자가 서버 관리를 해야한다.
⭐️ 1. PaaS ?
✅ Platform-As-A-Service
- 클라우드 컴퓨팅 모델 중 하나.
✅ 클라우드 컴퓨팅 모델과 온프레미스
클라우드 컴퓨팅 모델을 설명하기 위해서는 온프레미스과 비교하여 설명해야 한다.
기존 온프레미스 환경에서는, 사용자가 자체 서버에 + 자체 서비스를 구성했다.
(회사에서 전산실을 운영하고, 거기에 있는 서버를 활용한다고 생각하면 쉽다.)
하지만 온프레미스 환경은, 초기 인프라 구축 비용이 크다는 단점이 있다.
(전산실도 구축해야 하고, 그 안에 여러 서버PC, 전선 등 ... 비용이 많이 든다.)
그래서 나온 개념이 클라우드다!
- 무엇인가? 인터넷을 통해서 컴퓨팅 자원, 소프트웨어 등 IT 서비스를 원격으로 제공받는 개념
- 누가 제공하는가? CSP(Cloud Service Provider)가
- 장점이 뭔가? On-premise대비 사용자가 관리를 하지 않아도 된다! (CSP가 관리하니까)
- 단점이 뭔가? On-premise대비 보안적 문제가 있을 수 있다. (아무래도)
그래서 클라우드 컴퓨팅 모델은 무엇인가?
- 무엇인가? 사용자가 (인터넷으로) 제공받을 서비스 모델
- 누가 제공하는가? CSP가
- 종류가 어떻게 되는가? IaaS, PaaS, SaaS 형태로 제공된다.
✅ IaaS vs PaaS vs SaaS
'어디까지 사용자가 서비스를 제공받을 수 있는가?'에 따라 나뉘는 개념.
만일 '나는 VM 머신만 필요해. 그 위에 내가 OS도 올리고, 위에 서비스도도 직접 올려야지' 라면 IaaS를,
만일 '바로 서비스를 올리기만 하면 돼. OS, 컴퓨팅 파워만 있으면, 이 위에 서비스 올리기만 하면 돼' 라면 PaaS를
(AWS Elastic Beanstalk, Heroku, Red Hast Openshift, ...),
만일 '난 개발하기 싫어. API처럼 이미 만들어진 서비스를 가져다 쓸래' 라면 SaaS를 선택하면 된다.
✅ Paas 예시: Heroku
Heroku는 웹사이트 배포 시 사용되는 서비스이다.
내가 작성한 웹사이트 코드(어플리케이션)만 올리면, 그것을 배포해주는 서비스이다.
(단, 현재는 유료 요금제라고 한다)
⭐️ 2. Serverless
'서버리스(Serverless)란 서버를 관리할 필요 없이,
애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델입니다.'
- https://www.redhat.com/ko/topics/cloud-native-apps/what-is-serverless
Serverless
- 무엇인가? 사용자가 (인터넷으로) 동적으로 컴퓨팅 파워를 제공받는 서비스 + CSP의 서버 관리 서비스
- 누가 제공하는가? CSP가
- 종류? FaaS
✅ FaaS
FaaS (Function As A Service)
- 사용자가 코드를 업로드하면, 코드를 함수 단위로 나누어 평소에는 대기상태 / 요청이 들어오면 실행상태로 처리하는 서비스.
- 요청이 들어올 때만 실행(비용청구)하므로, 상당히 경제적
- 하지만, 대기상태 -> 실행상태로 전환 시 시간이 소요(cold start)되므로, 속도가 중요한 프로그램에서는 권장 x
- ex) AWS Lambda, MS Azure Function, ...
✅ Serverless 예시: AWS Lambda
- AWS Lambda를 이용하면, 사용자는 컨테이너를 만들 필요 없고 + AWS에서 컨테이너를 생성/관리한다 (단, 인프라 엑세스 또한 불가)
⭐️ 3. PaaS vs Serverless
✅ 두 개념이 혼동되는 이유
둘 다 CSP에서 컴퓨팅 파워를 할당받고, 그 위에 원하는 어플리케이션을 배포하는 형식이기 때문.
✅ PaaS vs Serverless
⭐️ 4. 참고자료
클라우드 컴퓨팅 개념 https://www.samsungsds.com/kr/cloud-glossary/difference-cloud-computing-service-platform.html
서버리스 개념 https://www.redhat.com/ko/topics/cloud-native-apps/what-is-serverless
서버리스 https://dev-coco.tistory.com/171
서버리스 https://tibetsandfox.tistory.com/4
BaaS https://www.cloudflare.com/ko-kr/learning/serverless/glossary/backend-as-a-service-baas/
Heroku 사용 https://velog.io/@ansfls/Heroku로-간단하게-웹-사이트-배포하기