API Gateway
HTTP를 이벤트로 변환
경로, 헤더, 본문을 Lambda 이벤트로 넘긴다.
handler
웜업과 실제 요청 구분
초기화가 필요한지 먼저 판정한다.
cachedServer
Nest 인스턴스 재사용
이미 만든 Express 어댑터를 다음 요청에 재활용한다.
Managed State
상태는 밖으로 분리
세션, 파일, 캐시는 RDS, Redis, S3로 보낸다.
Lambda가 맞는 경우
트래픽이 들쭉날쭉하고 유휴 비용을 줄이고 싶을 때.
Fargate가 맞는 경우
긴 실행 시간과 컨테이너 웹 서버 흐름을 유지해야 할 때.
공통 전제
비밀값, 파일, 세션 같은 상태는 코드 밖 관리형 서비스로 둔다.
서버리스 NestJS의 성공 조건은 Nest를 빨리 띄우는 것보다, 띄운
인스턴스를 안전하게 재사용하고 상태를 외부화하는 데 있다.