서버리스란?
- 서버리스 : 개발자가 서버 또는 백엔드 인프라를 프로비저닝하거나 관리하지 않고도 애플리케이션을 설계하고 실행할 수 있는 클라우드 컴퓨팅 애플리케이션 개발 모델
- 서버리스는 보통 “서버리스 컴퓨팅” 또는 “서버리스 아키텍처”로 불린다.
- 서버리스는 보통 “서버리스 컴퓨팅” 또는 “서버리스 아키텍처”로 불린다.
- 서버리스 컴퓨팅에서는 CSP가 서버를 관리 및 실행한다.
- CSP는 운영 체제 관리, 보안 패치, 파일 시스템 및 용량 관리, 로드 밸런싱, 모니터링, 로깅과 같은 여러 작업을 처리한다.
- 개발자는 서버 관리에서 자유로워지며 실제 구현해야 할 기능에 더 집중할 수 있다.
- 즉, “서버리스”는 서버가 없는 것이 아니라, 개발자가 서버를 직접 관리할 필요가 없다는 의미이다.
서버리스 아키텍처 유형 - FaaS, BaaS
- FaaS(Function as a Service) : 특정 이벤트가 발생할 때 코드를 실행하고 관리해주는 클라우드 컴퓨팅 서비스
- 개발자는 이벤트에 따라 실행되는 함수(코드)를 작성하고 클라우드 인프라에 배포(업로드)만 하면 된다.
- 함수(코드)는 이벤트(HTTP 요청, 파일 업로드 등)가 발생할 때만 실행되며, 실행 후에는 리소스가 자동으로 해제된다.
- 개발자는 코드를 실행하는 데 필요한 인프라를 구축하고 관리하지 않아도 된다.
- ex) AWS Lambda, Amazon API Gateway, Google Cloud Functions
- BaaS(Backend as a Service) : 백엔드 인프라(데이터베이스, 스토리지, 인증, 푸시 알림 등)를 제공하는 클라우드 컴퓨팅 서비스
- 개발자는 API를 사용하여 백엔드 기능에 액세스한다.
- 개발자는 백엔드 인프라를 구축하고 관리하지 않아도 된다.
- ex) Amazon DynamoDB, AWS RDS, AWS S3, AWS Amplify, AWS SQS
- 서버리스 아키텍처 유형에는 FaaS와 BaaS가 있지만, 일반적으로 서버리스는 FaaS를 의미한다.
- API 서버를 예시로 들어보면, (AWS EC2 - Amazon DynamoDB(BaaS)) 아키텍처와 (AWS Lambda(FaaS) - Amazon DynamoDB(BaaS)) 아키텍처가 있을 때, 후자를 서버리스 아키텍처라고 말한다.
참고 자료
https://aws.amazon.com/ko/serverless/ https://aws.amazon.com/ko/what-is/serverless-computing/ https://www.samsungsds.com/kr/insights/1232763_4627.html https://www.ibm.com/kr-ko/topics/serverless https://www.oracle.com/kr/cloud/cloud-native/functions/what-is-serverless/ https://www.redhat.com/ko/topics/cloud-native-apps/what-is-serverless https://ko.wikipedia.org/wiki/서버리스_컴퓨팅 https://yozm.wishket.com/magazine/detail/2168/ chatgpt