[python] FastAPI 컨테이너화와 Docker

FastAPI는 속도가 빠르고 사용하기 쉬운 웹 애플리케이션 프레임워크로, Python으로 빠르게 API를 개발할 수 있습니다. 이번 글에서는 FastAPI 애플리케이션을 컨테이너화하고 Docker를 사용하여 배포하는 방법에 대해 알아보겠습니다.

목차

  1. FastAPI 소개
  2. FastAPI 애플리케이션 만들기
  3. Dockerfile 작성하기
  4. Docker 이미지 빌드하기
  5. 컨테이너 실행 및 배포

FastAPI 소개

FastAPI는 Python으로 작성된 웹 애플리케이션을 위한 빠르고 현대적인 프레임워크입니다. 공식 문서에 따르면 FastAPI는 Starlette와 Pydantic을 기본으로 하여 빠르고 안정적이며 사용하기 쉬운 동시에 최신의 기술을 활용하는 특징을 가지고 있습니다.

FastAPI 애플리케이션 만들기

from fastapi import FastAPI

app = FastAPI()

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

위의 코드는 간단한 FastAPI 애플리케이션 예제입니다. 이 애플리케이션은 루트 경로에 접속했을 때 “Hello, World” 메시지를 반환합니다.

Dockerfile 작성하기

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8

COPY ./app /app

위의 코드는 FastAPI 애플리케이션을 실행하기 위한 Dockerfile입니다. tiangolo/uvicorn-gunicorn-fastapi 베이스 이미지를 사용하여 애플리케이션 코드를 /app 디렉토리에 복사합니다.

Docker 이미지 빌드하기

터미널에서 다음 명령어를 실행하여 Docker 이미지를 빌드합니다.

docker build -t fastapi-app .

위 명령어는 현재 디렉토리에 있는 Dockerfile을 이용하여 fastapi-app 이미지를 빌드합니다.

컨테이너 실행 및 배포

다음 명령어로 Docker 컨테이너를 실행합니다.

docker run -d --name fastapi-container -p 80:80 fastapi-app

위 명령어는 fastapi-app 이미지를 사용하여 포트 80으로 HTTP 요청을 처리하는 컨테이너를 실행합니다.

이제 FastAPI 애플리케이션을 컨테이너화하고 Docker를 사용하여 배포하는 방법에 대해 알아보았습니다. FastAPI와 Docker를 함께 사용하여 애플리케이션을 쉽게 배포하고 관리할 수 있습니다.