[python] FastAPI에서 AWS Lambda와 함께 사용하기

FastAPI는 빠른 속도와 쉬운 개발 경험을 제공하는 파이썬 웹 프레임워크입니다. AWS Lambda는 서버리스 아키텍처를 구현하는 데 사용되는 서비스입니다. FastAPI와 AWS Lambda를 함께 사용하면 효율적이고 확장 가능한 서버리스 애플리케이션을 쉽게 개발할 수 있습니다.

1. FastAPI와 AWS Lambda 구성하기

먼저, FastAPI 애플리케이션을 작성한 후 AWS Lambda에 배포할 수 있는 형태로 변경해야 합니다. 다음은 FastAPI 애플리케이션을 설치하는 방법입니다.

$ pip install fastapi

2. AWS Lambda 배포 패키지 준비하기

AWS Lambda는 ZIP 파일로 배포되어야 합니다. 따라서 FastAPI 애플리케이션을 ZIP 파일로 패키징해야 합니다. 이를 위해 lambda_function.py라는 파일을 생성하고 다음과 같이 작성합니다.

from fastapi import FastAPI

app = FastAPI()

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

파일을 저장한 후, 터미널에서 다음 명령을 실행하여 ZIP 파일을 생성합니다.

$ zip -r fastapi_app.zip lambda_function.py

3. AWS Lambda 설정하기

AWS Lambda 콘솔에 로그인하여 함수를 만들고 적절한 구성을 완료합니다.

  1. 함수 생성 페이지로 이동하여 적절한 함수 이름을 입력하고 “Python 3.8” 런타임을 선택합니다.
  2. “기본 설정” 섹션에서 lambda_function.lambda_handler를 핸들러로 지정합니다. (lambda_function은 ZIP 파일의 이름)
  3. 함수 코드 섹션에서 “파일 업로드”를 선택하고 생성한 ZIP 파일을 업로드합니다.
  4. 트리거 섹션에서 적절한 트리거를 설정합니다. (예: API Gateway, CloudWatch 이벤트)

4. FastAPI와 AWS Lambda 통합 테스트하기

AWS Lambda 함수가 배포되었다면 통합 테스트를 수행하여 제대로 작동하는지 확인해야 합니다. 이를 위해 API Gateway의 엔드포인트로 요청을 보내보세요. 예를 들어 https://your-api-gateway-url/example과 같은 엔드포인트를 사용할 수 있습니다.

import requests

response = requests.get("https://your-api-gateway-url/example")
print(response.json())

위 코드를 실행하여 FastAPI 애플리케이션의 응답을 확인할 수 있습니다.

결론

FastAPI와 AWS Lambda를 함께 사용하면 강력한 서버리스 애플리케이션을 구축할 수 있습니다. FastAPI를 사용하여 빠르고 안정적인 웹 애플리케이션을 개발하고, AWS Lambda로 서버리스 아키텍처를 구현하여 확장 가능한 애플리케이션을 만들어 보세요.

참고 자료