Web2013. 7. 31. 18:13
 

 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 웹 개발을 할 수 있다.





Posted by bayron