8.2 FastAPI 애플리케이션 배포

약 6분

본문 듣기
읽기 설정

글자 크기

줄 간격

글꼴

8.2 FastAPI 애플리케이션 배포

FastAPI 애플리케이션을 배포하는 과정은 몇 가지 주요 단계를 포함합니다. 이 과정에서는 클라우드 서버를 사용하는 방법을 배우고, 실제 환경에서 애플리케이션이 어떻게 작동하는지 이해할 수 있습니다. 이번 실습 프로젝트에서는 간단한 FastAPI CRUD 애플리케이션을 배포하는 과정을 다루겠습니다.

실습 목표는 다음과 같습니다:

  1. FastAPI 애플리케이션 개발.
  2. 데이터베이스(MySQL) 설정 및 연결.
  3. Gunicorn을 사용하여 FastAPI 애플리케이션 서버 설정.
  4. Nginx를 설정하여 리버스 프록시 구성.
  5. 실제 클라우드 환경에 배포.

1단계: FastAPI 애플리케이션 개발

FastAPI를 설치한 후 간단한 CRUD API를 구현합니다. 아래 코드는 SQLite에서 MySQL로 변경할 준비가 된 기본 CRUD 예제입니다.

코드 python
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    id: int
    name: str
    description: str = None

items = []

@app.post("/items/", response_model=Item)
async def create_item(item: Item):
    items.append(item)
    return item

@app.get("/items/{item_id}", response_model=Item)
async def read_item(item_id: int):
    return items[item_id]

2단계: 데이터베이스(MySQL) 설정

MySQL을 데이터베이스로 사용하기 위해 SQLAlchemy를 사용하여 연결합니다. 다음은 데이터베이스 연결을 설정하는 방법입니다.

코드 python
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

DATABASE_URL = "mysql+pymysql://<username>:<password>@<host>/<dbname>"

engine = create_engine(DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()

3단계: Gunicorn을 사용한 서버 설정

애플리케이션을 실행하기 위해 Gunicorn을 설치하고 사용할 수 있습니다. Gunicorn은 WSGI 서버로, FastAPI와 함께 사용하여 성능을 개선합니다.

설치 명령:

코드 bash
pip install gunicorn

Gunicorn 실행 명령:

코드 bash
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app --host 0.0.0.0 --port 8000

4단계: Nginx 리버스 프록시 설정

Nginx를 사용하여 클라이언트 요청을 Gunicorn 서버로 전달합니다. Nginx 설정 파일을 수정하고 FastAPI 애플리케이션을 서비스합니다.

Nginx 설정 파일 예제:

코드 nginx
server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
} }

5단계: 클라우드 환경에 배포

이제 모든 설정이 완료되었습니다. 클라우드 서비스(예: AWS, DigitalOcean)에 서버를 설정하고, 방화벽 규칙을 설정하여 HTTP 요청을 허용합니다. 모든 준비가 마쳤다면, 애플리케이션을 실행하여 클라우드에서 정상적으로 작동하는지 확인합니다.

이제 FastAPI 애플리케이션을 성공적으로 배포했습니다. 이 과정을 통해 애플리케이션 배포의 기초를 이해하고 실제 환경에서 작업하는 방법을 배웠습니다.

댓글 0

댓글을 남기려면 로그인하세요.

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.