Qoddi를 활용한 FastAPI 배포
Qoddi는 클라우드 애플리케이션 호스팅 플랫폼으로 FastAPI를 배포하기 위해 사용하게 되었다. Qoddi 문서를 확인하면 배포가 가능하지만, 생각보다 직관적이지 않았다. 또한 FastAPI 배포를 위해 정리된 것을 찾지 못했기에 정리해두려고 한다.
Qoddi - Premium Cloud App Hosting Platform
Qoddi App Hosting Platform. Deploy, manage and scale Node.js, Python, GO, Java, Ruby, PHP apps in seconds. The best alternative to Heroku | Qoddi
qoddi.com
배포를 위한 여정
회원가입 및 카드 등록
- 서버를 생성하기 위해 회원가입과 결제할 카드 등록을 진행
- 카드를 등록할 때, $1가 결제,
몰랐는데, 나중에 보니 청구돼 있었다 ㅠㅠ
서버 생성
- Qoddi는 Github와 연동해 배포할 수 있기 때문에 Repo가 먼저 생성돼있어야 함
- 자세한 서버 생성 과정은 링크 참고
- 참고
- FastAPI를 사용하기 위해 최소 XS를 사용해야 하는데, $0.008/hour로 유료
- 생성 후 Pause 하면, 비용이 발생하기 않아 필요할 경우에만 켜둘 예정
Github에 존재해야 하는 파일 (총 4개)
- main.py : FastAPI의 main.py를 생성해 서버 포트 설정
...
if __name__ == '__main__':
uvicorn.run(app, host="0.0.0.0", port=8000)
- requirements.txt : 프로젝트에서 사용하는 패키지를 작성한 파일
# pip freeze > requirements.txt
# uvicorn과 fastapi만 설치한 상태
annotated-types==0.7.0
anyio==4.9.0
click==8.1.8
colorama==0.4.6
fastapi==0.115.12
h11==0.14.0
httptools==0.6.4
idna==3.10
pydantic==2.11.2
pydantic_core==2.33.1
python-dotenv==1.1.0
PyYAML==6.0.2
sniffio==1.3.1
starlette==0.46.1
typing-inspection==0.4.0
typing_extensions==4.13.1
uvicorn==0.34.0
watchfiles==1.0.4
websockets==15.0.1
- Procfile : Qoddi는 앱 유형에 관계없이 Procfile의 "web:" 뒤를 실행
web: python3 main.py
- runtime.txt (Optional) : 존재하지 않을 경우 안정된 최신 버전으로 실행
# 현재 (2025.04.08) 지원하는 런타임 : 3.12.1 (Default) / 3.11.7 / 3.10.13 / 3.9.18
python-3.10.10
Reference
'Web' 카테고리의 다른 글
[FastAPI] pytest의 개념과 활용 (0) | 2025.03.02 |
---|---|
[FastAPI] OAuth2와 JWT를 활용한 인증 구현 (0) | 2025.02.22 |
[FastAPI] DB Migration을 위한 alembic 개념과 활용 (0) | 2025.02.17 |
[FastAPI] 의존성 주입 (Dependency Injection) 개념과 활용 (0) | 2025.02.02 |
[FastAPI] 데이터베이스 Session 생성을 위한 get_db() 이해 (0) | 2025.02.01 |