개요
요즘 자주 보이는 용어인 Serverless. 처음 들었을 때 전공 강의 시간에 배운 PaaS와의 차이가 애매모호 해서 정확히 알고 싶어졌다.
PaaS란?
- 서비스로서의 플랫폼(Platform-as-a-service, PaaS)은 애플리케이션 소프트웨어 플랫폼이 제3사를 통해 제공되는 클라우드 컴퓨팅의 한 형식
- 보통 해당 프로세스와 관련된 인프라 또는 플랫폼을 구축하고 유지관리할 필요 없이 자체 애플리케이션을 개발, 실행 및 관리 할 수 있도록 함
- Java, Ruby, Python 등의 프로그래밍 언어와 같은 애플리케이션 실행 환경
- DB 등
- 서버, 네트워크, 보안 부분 → 클라우드 사업자에게 위임
- 클라우드와 온프레미스 인프라 환경에서 모두 실행 가능
장점
- 서버 유지 관리의 부담 완화
- 인프라 소프트웨어를 최신 상태로 유지
- 애플리케이션을 빌드할 사용자 지정 플랫폼 설정
단점
- 서버 및 미들웨어의 설정 불가
- 특정 환경에 대한 의존도가 높아짐 → 다른 환경으로의 마이그레이션 어려움
Serverless란?
- 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델
- 애플리케이션을 작은 함수 단위로 쪼개어서 서버에 올림
- 서버가 존재하긴 하지만, 애플리케이션 개발에서와 달리 서버가 추상화
- 클라우드 제공업체가 클라우드 인프라와 애플리케이션의 스케일링을 모두 관리
- 이벤트가 구동을 위한 애플리케이션 코드를 트리거하면 퍼블릭 클라우드 공급업체가 신속하게 해당 코드에 대한 리소스를 할당
- 코드 실행 종료시 리소스 해제
장점
- 낮은 비용
- 간편한 확장성
- 간단한 백엔드 코드
- 배포 및 업데이트 시간 단축
단점
- 가시성 부족으로 인한 문제 발생
- 까다로운 테스트 및 디버깅
- 새로운 보안 문제 야기 가시성 부족
- 적용할 수 있는 애플리케이션 제한
- 할당, 해제 등의 오버헤드가 성능에 영향을 줄 수 있음
- 벤더 종속성
PaaS와 Serverless 비교
- 서버리스 애플리케이션은 정의에 따라 확장할 수 있지만, PaaS 호스팅 애플리케이션의 경우 확장 및 축소하도록 프로그래밍해야 함
- PaaS는 필요에 따라 물통을 배달 받아 사용하는 정수기, Serverless의 경우 필요에 따라 바로바로 틀어서 사용하는 수도꼭지로 비유 가능
- 물 = 서버 리소스
- 버킷 = 애플리케이션
- 비용의 경우 PaaS는 보통 사전에 지정한 리소스만큼의 고정 요금(물통 단위), Serverless는 실행 시간만큼의 요금(사용한 물양만큼)
참고
https://www.redhat.com/ko/topics/cloud-computing/what-is-paas
https://www.redhat.com/ko/topics/cloud-native-apps/what-is-serverless
https://www.cloudflare.com/ko-kr/learning/serverless/why-use-serverless/
https://www.cloudflare.com/ko-kr/learning/serverless/glossary/serverless-vs-paas/
https://www.cloudflare.com/ko-kr/learning/serverless/what-is-serverless/
'클라우드 메모' 카테고리의 다른 글
[이스티오] Envoy Proxy와의 Stream이 끊겼을 때 (미완) (0) | 2024.11.14 |
---|---|
[이스티오] Istio Envoy Proxy의 로그 및 매트릭 가져오기 2 (1) | 2024.11.13 |
[이스티오] Istio Envoy Proxy의 로그 및 매트릭 가져오기 (0) | 2024.11.12 |
리눅스 서버 인스턴스 디스크 마운트 (0) | 2024.08.17 |
Naver Cloud Platform으로 서버 생성하기 (0) | 2023.06.23 |