티스토리 뷰
반응형
# 서론
FastAPI를 AWS EC2에 nginx를 활용하여 배포하는 방법을 정리
* EC2 인스턴스를 생성하고 접속하는 방법은 따로 다루지 않는다.
# EC2 기본 설정
EC2를 생성하면 기본적으로 python3가 설치되어있다. 하지만 pip3는 설치되어 있지 않으므로 설치해준다.
sudo apt install python3-pip
pip이 설치되면 서버 구동에 필요한 모듈들을 다운로드 받는다.
pip3 install -r requirements.txt
# Nginx 설정
FastAPI 서버 포트를 포워딩해줄 프록시 서버인 nginx를 다운받는다.
sudo apt install nginx
다음으로 nginx config 파일을 작성한다. 다음 경로로 이동하여 fastapi.conf 파일을 생성한다.
sudo nano /etc/nginx/sites-enabled/fastapi_nginx
vim을 활용해서 다음을 입력하고 저장한다 (저장은 :wq)
server{
server_name 내 아이피;
location / {
include proxy_params;
proxy_pass http://127.0.0.1:8000;
}
}
* 내 아이피 부분엔 EC2 퍼블릭 ip4 주소를 입력하거나 연동한 도메인을 입력하면 된다.
이후 nginx를 재시작한다.
sudo systemctl restart nginx
# EC2에 프로젝트 업로드
FastAPI 프로젝트는 스프링 부트 프로젝트와 달리 별도의 빌드가 필요없다. 따라서 깃허브 레포지토리를 그대로 클론해온다.
git clone 레포.git
업데이트된 프로젝트 내용을 가져올때도 git pull 을 사용하면 훨씬 편하게 업데이트를 반영할 수 있다.
# FastAPI 앱 실행
uvicorn 명령어를 통해서 실행하거나 python3 main.py 명령어를 통해서 앱을 실행한다.
백그라운드 프로세스로 실행하고 싶으면 nohup 과 & 을 활용하면 된다. (스프링 부트 배포와 동일하다.)
반응형