How to Deploy FastAPI on AWS Lambda
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

FastAPI를 사용하여 AWS Lambda에 배포하는 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

Python 및 FastAPI를 사용한 백엔드 개발자, 클라우드 배포에 관심 있는 개발자

핵심 요약

  • FastAPIAWS Lambda를 결합해 자동 확장 가능한 API를 구축할 수 있음
  • Mangum을 사용해 ASGI 앱을 AWS Lambda에 적합한 핸들러로 변환
  • Dockerfile을 통해 컨테이너화된 이미지를 생성하고 Amazon ECR에 업로드
  • Lambda Function URL을 통해 공개 API 엔드포인트를 생성

섹션별 세부 요약

1. 프로젝트 초기 설정

  • .venv 가상 환경 생성 후 fastapi[standard]mangum 설치
  • requirements.txt 파일 생성으로 의존성 관리
  • main.py 파일에서 FastAPI 앱 정의 (예: @app.get("/") 라우트)

2. Dockerfile 구성

  • public.ecr.aws/lambda/python:3.12 기반 이미지 사용
  • requirements.txt 복사 및 pip install 수행
  • app/ 폴더 복사 후 CMD ["app.main.handler"] 실행 명령 설정

3. ECR 리포지토리 생성 및 이미지 업로드

  • AWS ECR에서 fastapi-project 리포지토리 생성
  • docker push 명령으로 이미지 업로드

4. AWS Lambda 함수 생성

  • ECR 이미지 URI를 사용해 Lambda 함수 생성
  • Function URL 구성으로 공개 엔드포인트 생성 (인증 유형 선택 가능)

5. 배포 검증 및 테스트

  • 생성된 HTTPS URL로 FastAPI 응답 확인 ("Hello, World from FastAPI on AWS Lambda!")
  • API Gateway 대신 Function URL 사용 시 단순하지만 고급 기능 제한

결론

  • Function URL은 빠른 테스트를 위한 간편한 선택이지만, API Gateway를 통한 배포가 보안 및 확장성 측면에서 권장됨
  • 환경 변수는 Lambda의 Configuration 탭에서 설정 가능 (예: DB URL, API 키)
  • Dockerfile 최적화와 ECR 활용이 배포 과정의 핵심 요소임