AWS Lambda + API Gateway 배포 방법(with fastapi)

정기홍·2024년 9월 5일

FastAPI를 AWS Lambda와 API Gateway를 사용하여 배포하는 방법

1. 환경 설정

AWS 계정: AWS 계정이 필요합니다. 계정이 없다면 AWS 홈페이지에서 생성하세요.
AWS CLI: AWS CLI를 설치하고 설정합니다.
Python 환경: FastAPI와 관련된 패키지를 설치할 Python 환경이 필요합니다.

2. FastAPI 애플리케이션 작성

FastAPI 애플리케이션을 작성합니다. 예를 들어, app.py라는 파일에 다음과 같이 작성할 수 있습니다.

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

3. Lambda 배포를 위한 패키징

FastAPI와 함께 사용할 Mangum 패키지를 설치하여 Lambda와 통합합니다.

bash


pip install mangum
app.py를 다음과 같이 수정합니다.

python


from fastapi import FastAPI
from mangum import Mangum

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

handler = Mangum(app)

4. 패키지 및 배포 파일 준비

필요한 파일을 zip으로 압축합니다.

bash


mkdir package
pip install mangum -t package
cp app.py package/
cd package
zip -r ../fastapi_lambda.zip .
cd ..

5. AWS Lambda 함수 생성

  • AWS Management Console에 로그인합니다.
  • Lambda 서비스로 이동합니다.
  • "함수 생성"을 클릭합니다.
  • 함수 이름을 입력하고, 런타임으로 Python 3.x를 선택합니다.
  • "함수 생성"을 클릭합니다.
  • "코드 업로드"에서 .zip 파일을 업로드합니다.
  • 핸들러를 app.handler로 설정합니다.
  • 필요한 IAM 역할을 설정합니다.

6. API Gateway 설정

  • API Gateway 서비스로 이동합니다.
  • "API 생성"을 클릭하고 HTTP API를 선택합니다.
  • "API 이름"을 입력하고 "API 생성"을 클릭합니다.
  • "라우트"를 추가하여 / 엔드포인트를 생성합니다.
  • "통합"에서 Lambda 함수를 선택하고, 이전에 생성한 Lambda 함수를 선택합니다.
  • 배포를 클릭하여 API를 배포합니다.

7. 테스트

API Gateway에서 제공하는 URL로 FastAPI 애플리케이션을 테스트합니다. 예를 들어, 제공된 URL에 접근하여 JSON 응답을 확인합니다.

추가 고려사항
CORS 설정: 필요한 경우 CORS 설정을 추가합니다.
환경 변수 설정: 필요한 환경 변수를 Lambda 함수 설정에서 추가합니다.
로깅: CloudWatch를 통해 로깅을 설정하여 요청 및 오류를 모니터링합니다.

profile
하나를 알고 그걸로 모든걸 관통한다.

0개의 댓글