🔍서버리스 아키텍쳐 란?
서버리스는 서버가 없는 백엔드 라는 뜻이 아닌 우리가 직접 서버를 관리하지 않아 신경 쓸 필요없는 경우를 뜻합니다.
🔍서버리스 모델 (BaaS / FaaS)
BaaS (Backend as a Service)
- BaaS 시스템은 앱 개발에 있어서 필요한 다양한 기능들 (데이터베이스, 소셜서비스 연동, 파일시스템 등)을 API로 제공해 줌으로서, 개발자들이 서버 개발을 하지 않고서도 필요한 기능을 쉽고 빠르게 구현 할 수 있게 해주고, 비용은 api 사용 한 만큼 나가는 원리입니다.
장점: 개발 시간의 단축 (회사 입장으로서 생각한다면, 인건비), 서버 확장 작업의 불필요함
FaaS (Function as a Service)
- FaaS 는 프로젝트를 여러개의 함수로 쪼개서 (혹은 한개의 함수로 만들어서), 매우 거대하고 분산된 컴퓨팅 자원에 여러분이 준비해둔 함수를 등록하고, 이 함수들이 실행되는 횟수 (그리고 실행된 시간) 만큼 비용을 내는 방식입니다.
ex) AWS Lambda, MS Azure Function
서버리스의 장점
- 비용 절감
- 애플리케이션의 품질에 집중 가능
- 높은 가용성과 유연한 확장
- 빠른 개발 배포
서버리스의 단점
- Cold Start
- 긴 시간을 요하는 작업에 불리함
- 로컬 데이터를 사용할 수 없다. (Stateless)
- 클라우드 제공 플랫폼에 심하게 종속적