FastAPI 앱을 Vercel에 배포하는 완전 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
FastAPI를 사용하여 웹 앱을 개발하고, 간단한 배포 솔루션을 찾는 개발자
난이도: 초보자~중급자(기본적인 Python 및 Git 지식 필요)
핵심 요약
- Vercel은 복잡한 서버 설정 없이 FastAPI 앱을 쉽게 배포할 수 있는 플랫폼
requirements.txt
와vercel.json
파일이 필수(예:fastapi==0.104.1
,uvicorn==0.24.0
)- GitHub 연결 및 Vercel CLI 또는 대시보드를 통해 3단계 배포 가능
섹션별 세부 요약
1. FastAPI 앱 기본 예제 구성
main.py
파일에서 간단한 루트 엔드포인트("/"
)와 건강 상태 체크("/api/health"
) 정의requirements.txt
생성: FastAPI와 uvicorn의 정확한 버전 명시if __name__ == "__main__":
블록 추가하여 로컬 테스트 가능
2. Vercel 배포 준비
vercel.json
파일 생성:
```json
{"version":2,"builds":[{"src":"main.py","use":"@vercel/python"}],"routes":[{"src":"/(.*)","dest":"main.py"}]}
```
- ASGI 호환을 위해
uvicorn.run()
명시
3. GitHub에 코드 업로드
git init
,git add .
,git commit
,git push
순서로 GitHub 저장소 생성 및 코드 업로드- Vercel 대시보드에서 GitHub 저장소 연결 후 자동 감지하여 배포
4. CLI로 배포 방법
npm install -g vercel
설치 후vercel login
과vercel
명령어로 3단계 배포 실행
5. 자동 배포 워크플로 설정
- GitHub Actions YAML 파일에서
vercel-action
사용:
```yaml
- uses: amondnet/vercel-action@v3
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
```
main
브랜치 변경 시 자동 배포
6. 배포 후 확인 사항
- HTTPS 자동 제공, 환경 변수 관리, FastAPI 문서(
/api
경로) 확인 /api
경로 사용 권장(프론트엔드+백엔드 동시 배포 시 호환성 향상)
결론
- 패키지 버전 고정(예:
fastapi==0.104.1
)과 로컬 테스트를 통해 배포 문제 예방 vercel.json
구성 및 GitHub Actions 워크플로를 통해 CI/CD 자동화 가능- Vercel은 서버 관리 없이도 전 세계 서버에 앱 배포 가능하며, HTTPS 및 환경 변수 관리가 간편하다.