데브허브 | DEVHUB | Serving a Mono Lambda using API Gateway (with Terraform)Serving a Mono Lambda using API Gateway (with Terraform)
- API Gateway를 활용하여 Lambda 함수 앞에 REST API를 배포하는 과정을 Terraform으로 자동화했습니다. 🚀
- Express.js 애플리케이션을 AWS Lambda 이벤트와 호환시키기 위해
Code Genie Serverless Express 어댑터 라이브러리를 사용했습니다. 🔄
- Dockerfile을 최적화하여
package.json과 package-lock.json을 먼저 복사하고 npm install을 실행함으로써 이미지 빌드 캐싱 효율성을 높였습니다. 🐳
- Terraform을 사용하여 HTTP 프로토콜의 API Gateway V2와 'prod' 스테이지를 정의하고, Lambda 함수와 통합했습니다. 🏗️
- API Gateway가 Lambda 함수를 호출할 수 있도록 필요한 권한을 설정하고, CloudWatch를 통해 요청 로그를 모니터링하도록 구성했습니다. 📊
- 초기 배포 시 루트 경로('/')에서
e.on is not a function 타입 에러가 발생했으나, 모든 API 엔드포인트에 /api 접두사를 추가하여 문제를 해결했습니다. ✅
- 이 과정을 통해 API Gateway가 Lambda 함수를 위한 HTTP 서버 역할을 하며,
serverless-express가 Express 앱과 Lambda 이벤트 간의 변환을 담당하는 핵심 개념을 이해할 수 있었습니다. 💡