Serverless

서버리스 NestJS 배포 모델

항상 켜진 서버 대신 이벤트가 들어올 때 실행되는 환경에서는 콜드 스타트, 연결 관리, 상태 저장 방식을 다시 봐야 한다.

서버리스 전환 기준

lambda runtime

실행 모델

요청이나 이벤트가 들어올 때 함수 인스턴스가 실행된다.

콜드 스타트

처음 실행 시 부트스트랩 비용이 응답 지연으로 나타날 수 있다.

연결 관리

DB 연결과 캐시는 함수 재사용 여부를 고려해 신중히 다뤄야 한다.

상태 분리

메모리에 상태를 저장하기보다 외부 저장소와 큐를 기준으로 설계한다.

event API Gateway 요청을 Lambda 이벤트로 받는다.
boot 캐시가 비어 있으면 Nest 앱과 어댑터를 초기화한다.
handle 웹 요청과 웜업 요청을 구분해 핸들러로 넘긴다.
store 세션과 파일은 외부 관리형 서비스에 둔다.
실행 수명 해석

서버리스는 서버가 없다는 뜻이 아니라, 서버 운영과 수명주기 책임이 함수 실행 모델로 옮겨간다는 뜻이다.