Heroku는 git을 통해 쉽게 depoly가 가능한 웹호스팅 서비스이다. 현재 ruby, java, clojure, python, scala, node.js를 지원하고 있다. 이전 포스팅에서 작성한 flask application을 heroku로 deploy 하는 방법에 대해 알아보겠다. 이 포스팅의 목적이 flask application을 heroku로 배포하는 것이기 때문에 이전 포스팅의 내용이 선행되어있어야 한다.
-. Heroku 가입
http://heroku.com/ 에 접속하여 회원가입 버튼을 클릭하고 이메일을 입력한다. 입력한 이메일로 인증메일이 오면 링크를 클릭하여 비밀번호를 등록한다.
-. Heroku 설치 및 저장소 생성
$ wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
$ heroku login
$ cd /path/to/flask application
$ heroku create
-. git 설치
Heroku는 기본적으로 git을 사용하기 때문에 git이 설치되어있지 않다면 git을 설치한다.
$ sudo apt-get install git
$ git config --global user.name "User name"
$ git config --global user.email "User e-mail"
-. Gunicorn 설치
Flask에 내장된 web server를 사용해도 되지만 Gunicorn 이라는 web server를 사용하도록 한다.
$ pip install gunicorn
-. Procfile 설정
Heroku 에서 flask application을 dynos 하기 위해서는 Procfile 필요하다. Project의 root에 Procfile을 생성한다.
$ vim Procfile
web: gunicorn hello:app -b 0.0.0.0:$PORT -w 3
-. python 가상 환경 저장
pip를 이용해 python 가상 환경의 정보를 저장하도록 한다. Heroku는 application이 depoly 될 때 이 파일을 참조한다.
$ pip freeze > requirements.txt
-. Heroku로 deploy
$ git add .
$ git commit -m "init"
$ git push heroku master
모든 과정을 마치고 heroku.com 에 접속하면 아래와 같은 저장소가 생성되어 있을 것이다.
생성된 heroku 저장소를 선택하면 다음처럼 dynos가 하나 생성되었을 것이다. Heroku는 아래 그림처럼 1x 512MB의 1개 dynos에 대해서만 무료로 사용할 수 있다.
Settings에 보이는 git 저장소 주소와 domain 주소를 이용해 flask 웹 개발을 할 수 있다.
'Web' 카테고리의 다른 글
nginx와 uwsgi를 사용하여 flask application 배포하기 (flask + nginx + uwsgi) (0) | 2013.07.31 |
---|