티스토리 뷰

반응형

# 서론

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 과 & 을 활용하면 된다. (스프링 부트 배포와 동일하다.)

반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크