배포함에 있어서 AWS를 사용하는게 빠르고 우수하겠지만 , 프리티어 만료 후 유지보수 나 비용적인 측면에서 부담을 가질 수 밖에 없다. 그 대신 Heroku 나 pythonanywhere 후보중에 Heroku를 선택하게 된 이유는 이미 써봤기 때문이고, 솔직히 초심자의 입장에서 어떤 툴을 쓰든 배움의 목적이기에 단점은 크게 와닫지 않지만 , 이 프로젝트가 추후 유지된다면 유료화할 생각이 있긴 하다.
Heroku는 AWS EC2나 EB와 다르게 깃과 연결된 프로젝트를 띄우는 형식이다.
Heroku는 터미널 상에서 배포를 할 수도 있고 홈페이지에서 직접 배포를 할 수도 있다.
1. Procfie , requirements.txt,pip install gunicorn whitenoise django-heroku

pip install gunicorn whitenoise
gunicon은 파이썬 http 서버이다.
whitenoise 는 헤로쿠에서 정적파일을 관리하기 위한 모듈이다.
Setting.py
미들웨어에
'whitenoise.middleware.WhiteNoiseMiddleware',
를 입력하고 최 하단에
import dj_database_url
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
를 입력한다. 굳이 왜쓰는지 몰라도 되지만 , 코드를 조금만 보면 대충 유추 해 볼 수 있다.
Heroku에 default 데이터베이스는 postgresql이다
내 Setting에 들어있는 Database 정보는 MySQL 이지만 sqlite3 인 사람도 많을 것이다.
DATABASES['default'].update(db_from_env) 이 부분을 유추 해 보건데 Heroku 데이터 베이스와
현재 Setting Database랑 연결해주지 않나 싶다. 아님 말고
다른 데이터 베이스를 쓰고 있다면 Heroku 사이트에 접속해서 default database를 바꿔주면 된다.
MySQL 같은 경우는 clearDB를 사용하면 된다. 그 이상은 본인 몫.
프로젝트 단에서 pip freeze > requirements.txt 를 입력한다
현재 가상환경에 들어있는 모듈들이 requirements에 입력되면서 헤루쿠에게 필요한 모듈 정보를 알려준다.
또한 프로젝트 단에 Profile 파일을 생성한다.
web: gunicorn Server.wsgi --log-file -
이 파일도 왜 쓰는지 잘 모르겠지만 또 코드를 보면서 유추해 보면
gunicorn은 파이썬 http 서버라고 하였다. 그 뒤에 나오는 코드는 내 프로젝트 이름인데
내 프로젝트와 서버와 연결시켜주는 역활이 아닌가 싶다.
git push heroku master
-끗-
배포함에 있어서 AWS를 사용하는게 빠르고 우수하겠지만 , 프리티어 만료 후 유지보수 나 비용적인 측면에서 부담을 가질 수 밖에 없다. 그 대신 Heroku 나 pythonanywhere 후보중에 Heroku를 선택하게 된 이유는 이미 써봤기 때문이고, 솔직히 초심자의 입장에서 어떤 툴을 쓰든 배움의 목적이기에 단점은 크게 와닫지 않지만 , 이 프로젝트가 추후 유지된다면 유료화할 생각이 있긴 하다.
Heroku는 AWS EC2나 EB와 다르게 깃과 연결된 프로젝트를 띄우는 형식이다.
Heroku는 터미널 상에서 배포를 할 수도 있고 홈페이지에서 직접 배포를 할 수도 있다.
1. Procfie , requirements.txt,
pip install gunicorn whitenoise django-herokupip install gunicorn whitenoisegunicon은 파이썬 http 서버이다.
whitenoise 는 헤로쿠에서 정적파일을 관리하기 위한 모듈이다.
Setting.py
미들웨어에
'whitenoise.middleware.WhiteNoiseMiddleware',를 입력하고 최 하단에
를 입력한다. 굳이 왜쓰는지 몰라도 되지만 , 코드를 조금만 보면 대충 유추 해 볼 수 있다.
Heroku에 default 데이터베이스는 postgresql이다
내 Setting에 들어있는 Database 정보는 MySQL 이지만 sqlite3 인 사람도 많을 것이다.
DATABASES['default'].update(db_from_env)이 부분을 유추 해 보건데 Heroku 데이터 베이스와현재 Setting Database랑 연결해주지 않나 싶다. 아님 말고
다른 데이터 베이스를 쓰고 있다면 Heroku 사이트에 접속해서 default database를 바꿔주면 된다.
MySQL 같은 경우는 clearDB를 사용하면 된다. 그 이상은 본인 몫.
프로젝트 단에서
pip freeze > requirements.txt를 입력한다현재 가상환경에 들어있는 모듈들이 requirements에 입력되면서 헤루쿠에게 필요한 모듈 정보를 알려준다.
또한 프로젝트 단에 Profile 파일을 생성한다.
web: gunicorn Server.wsgi --log-file -이 파일도 왜 쓰는지 잘 모르겠지만 또 코드를 보면서 유추해 보면
gunicorn은 파이썬 http 서버라고 하였다. 그 뒤에 나오는 코드는 내 프로젝트 이름인데
내 프로젝트와 서버와 연결시켜주는 역활이 아닌가 싶다.
git push heroku master-끗-