Serverless
Concept
마치 서버가 없는 것처럼, 서버를 고려하지 않고, 어플리케이션을 실행할 수 있는 환경
장점
- 이미 갖춰진 클라우드 기반의 인프라를 이용하기에, 서버를 직접 구추구하지 않아도 됨
- 비용 절감
- 서버 운영과 유지보수 등 인프라 작업을 안하게 되어 앱 개발에만 집중 가능
특징
ON-DEMAND
항상 구동되어 있는 상태가 아니라, 요청이 있을 때만 실행되다가 더 필요하지 않는 시점에 종료
FaaS + BaaS
FaaS(Function as Service)는 작은 기능 단위로 나누고 요청이 있을 떄만 실행
- 보통 일회성 호출이기 떄문에 stateless
- ex) AWS Lambda
BaaS(Backend as a Service) 특정 기능을 하는 서비스를 API형태로 가져다 사용할 수 있는 것 - ex) Firebase
도입 시 고려사항
Startup Latency
요청이 있을 때마다 인스턴스를 새로 구동해야한다는건 앱 실행에 시간이 소요.
warm start: 이전 이벤트의 Function과 인스턴스를 재사용
cold start: 새로운 인스턴스를 생성하고 Function을 시작
최적화 이미지 필요
의존성을 복사를 최소화
Reference
서버리스란?
위의 글을 정리한 글입니다.