PythonAnywhere를 기다리지 마세요. FastAPI 프로젝트를 온라인에 배포하는 방법은 다음과 같습니다.
Emily Parker
Product Engineer · Leapcell

FastAPI는 현대적인 Python 웹 프레임워크입니다. 개발된 이후로 뛰어난 성능, 사용 편의성 및 강력한 기능 덕분에 개발자 커뮤니티에서 빠르게 엄청난 인기를 얻었습니다. Flask와 같은 이전 프레임워크를 대체하기 시작했습니다.
하지만 FastAPI를 온라인에 배포하는 것은 이전 프레임워크만큼 간단하지 않습니다.
많은 Python 프로젝트 배포자들이 PythonAnywhere를 사용합니다. 매우 간단한 사용자 인터페이스를 제공하고 소규모 프로젝트를 위한 무료 티어도 있기 때문입니다.
안타깝게도 PythonAnywhere는 FastAPI를 지원하지 않습니다. 공식적인 설명은 "플랫폼이 ASGI 프로젝트가 아닌 WSGI 프로젝트만 지원한다"는 것입니다. WSGI와 ASGI가 무엇인지 알 필요는 없습니다. FastAPI를 그곳에 배포할 수 없다는 것만 알면 됩니다.
FastAPI 지원에 대한 공식적인 진행 상황은 매우 느립니다. 아직 테스트 단계이며, 소수의 사람들만이 프로젝트를 플랫폼에 성공적으로 배포했습니다.
그렇다면 PythonAnywhere 외에 다른 대안은 무엇일까요? 많은 사람들은 AWS EC2 또는 DigitalOcean과 같은 **VPS(가상 사설 서버)**로 눈을 돌릴 수 있습니다.
VPS는 실제 기계처럼 작동하므로 FastAPI의 기본 구현을 지원할 수 있습니다. 그러나 배포에 VPS를 사용하려면 다음과 같은 많은 문제를 고려해야 합니다.
- 프로젝트가 VPS에서 실행될 수 있도록 Python 환경을 구성하고 설치하는 방법
- 기계가 인터넷에 노출되어 해커에 의해 악용되는 것을 방지하기 위해 네트워크와 방화벽을 구성하는 방법
- 기계 임대료 외에 지불해야 하는 기타 비용은 무엇인가요?
또한 VPS는 소규모 프로젝트 배포에 적합하지 않습니다. 전체 기계이기 때문에 가격이 일반적으로 상당히 비싸고, 기계가 활성화되면 사용 여부와 관계없이 지속적으로 요금이 청구됩니다.
더 나은 옵션이 있나요?
또 다른 접근 방식은 Leapcell을 사용하는 것입니다.
Leapcell은 FastAPI를 포함하여 다양한 언어 및 프레임워크에 대한 원클릭 배포를 지원하는 웹 앱 호스팅 플랫폼입니다.
Leapcell의 가격 책정은 API의 실제 사용량을 기준으로 합니다. 즉, 배포된 프로젝트가 사용되지 않으면 VPS와 달리 단 한 푼도 청구되지 않습니다.
Leapcell로 FastAPI 프로젝트를 배포하는 단계는 다음과 같습니다.
-
FastAPI 프로젝트를 GitHub에 커밋합니다. Leapcell은 리포지토리에서 코드를 가져옵니다. 자세한 지침은 GitHub 공식 문서를 참조할 수 있습니다.
-
Leapcell에 등록합니다. 등록 후 Leapcell 페이지에서 "서비스 생성"을 클릭합니다.
-
FastAPI 프로젝트를 선택합니다. 다양한 배포 구성이 자동으로 채워져 있는 것을 볼 수 있습니다.
-
하단의 제출을 클릭하여 배포합니다. 배포는 빠르게 완료되며 배포 홈 페이지로 돌아갑니다. 여기서 Leapcell에서 제공하는 도메인이 표시됩니다. 이것이 프로젝트의 온라인 주소입니다.
이제 이 주소를 사용하여 FastAPI 프로젝트에 온라인으로 액세스할 수 있습니다. 사용법은 로컬 개발 및 디버깅과 완전히 일관됩니다.
예시:
로컬: GET http://localhost:3000/users/{userId}
온라인 배포: https://xxxxx.leapcell.dev/users/{userId}
Leapcell에는 로그, 트래픽 분석 및 데이터베이스와 같이 일반적으로 사용되는 많은 개발자 기능이 포함되어 있습니다. 자유롭게 살펴보세요!