이전 포스트
이전 포스트에는 배포를 위한 기본적인 설명과 gcp에 인스턴스를 생성하는 것까지 다뤄보았다. 이번 포스트에서는 본격적으로 배포를 진행해보기에 앞서 생성한 인스턴스에서 내가 만든 프로젝트가 정상적으로 작동하는지 확인해보는 과정을 가져보고자 한다.
진행 과정
pip 설치
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python3-pip
설치가 완료되었으면 아래의 명령어로 확인해보면 된다
$ pip3 --version
git 설치
프로젝트를 불러오기 위해 pip와 마찬가지로 git도 설치해준다.
$ sudo apt-get install git
$ git --version
git까지 설치되었으면 github에 올려두었던 프로젝트를 가져와주면 된다.
$ git clone "프로젝트 주소"
nginx 설치
프로젝트까지 가져왔다면 nginx를 설치해주면 된다.
$ sudo apt-get install nginx
nginx를 사용하기 위해서는 방화벽 설정을 해주어야 하기 때문에 방화벽 설정까지 진행해준다. 아래 명령어를 입력하면 그림과 같이 리스트가 출려되는데 우리는 http 통신을 해야 하기 때문에 nginx http를 허용해주면 된다.
$ sudo ufw enable
$ sudo ufw app list
Available application:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
$ sudo ufw allow 'Nginx HTTP'
정상적으로 허용되었는지 확인하고 싶다면 아래 명령어로 확인가능하다.
$ sudo ufw status
※ 주의해야할 점으로 ufw를 activce상태로 변경하면 ssh 포트로 접근이 제한되기 때문에 ssh 포트로의 접근이 가능하도록 ssh 포트를 허용해주어야한다. (갑자기 인스턴스가 실행이 안돼서 한참 해맸다;;)
여기까지 했다면 nginx 상태를 체크한다. 아래 명령어로 체크해보면 된다. 정상적으로 실행중이라면 서버의 ip 주소로 접속해보면 아래 그림과 같이 랜딩 페이지가 출력된다.
$ systemctl status nginx
gunicorn 설치 및 실행
이제 다시 아까 클론 해온 프로젝트 폴더로 돌아가 gunicorn를 깔아주면 된다.
$ pip3 install gunicorn
설치한 이후 아래와 같이 실행하주면 된다.
$ gunicorn --bind 0.0.0.0:8000 src.__init__:app
명령어를 간단히 설명하자면 내 ip 8000번 포트에서 src폴더에 __init__에 있는 app을 실행시키겠다는 의미이다.
정상적으로 실행이 된다면 화면과 같이 "서버의 ip:8000" 으로 접속하면 내가 만든 프로젝트의 랜딩 페이지가 출력될 것이다.
여기까지 생성된 인스턴스에서 내 프로젝트를 띄우는 테스트를 진행해보았다.
다음 포스트에서는 docker를 이용하여 프로젝트를 배포해보고자 한다.
'devops' 카테고리의 다른 글
[flask+gunicorn+nginx+docker compose] 클라우드 배포하기(3) (0) | 2024.04.07 |
---|---|
[flask+gunicorn+nginx+docker compose] 클라우드 배포하기(1) (0) | 2024.04.06 |