약 6분
읽기 설정
글자 크기
줄 간격
글꼴
8.2 FastAPI 애플리케이션 배포
FastAPI 애플리케이션을 배포하는 과정은 몇 가지 주요 단계를 포함합니다. 이 과정에서는 클라우드 서버를 사용하는 방법을 배우고, 실제 환경에서 애플리케이션이 어떻게 작동하는지 이해할 수 있습니다. 이번 실습 프로젝트에서는 간단한 FastAPI CRUD 애플리케이션을 배포하는 과정을 다루겠습니다.
실습 목표는 다음과 같습니다:
- FastAPI 애플리케이션 개발.
- 데이터베이스(MySQL) 설정 및 연결.
- Gunicorn을 사용하여 FastAPI 애플리케이션 서버 설정.
- Nginx를 설정하여 리버스 프록시 구성.
- 실제 클라우드 환경에 배포.
1단계: FastAPI 애플리케이션 개발
FastAPI를 설치한 후 간단한 CRUD API를 구현합니다. 아래 코드는 SQLite에서 MySQL로 변경할 준비가 된 기본 CRUD 예제입니다.
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를 사용하여 연결합니다. 다음은 데이터베이스 연결을 설정하는 방법입니다.
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와 함께 사용하여 성능을 개선합니다.
설치 명령:
pip install gunicorn
Gunicorn 실행 명령:
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app --host 0.0.0.0 --port 8000
4단계: Nginx 리버스 프록시 설정
Nginx를 사용하여 클라이언트 요청을 Gunicorn 서버로 전달합니다. Nginx 설정 파일을 수정하고 FastAPI 애플리케이션을 서비스합니다.
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
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.