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

서버리스란?
위의 글을 정리한 글입니다.