일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- github actions
- github
- c#
- PostgreSQL 설치 시 에러
- 프로그래머스 코딩 테스트 연습
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- 프로그래머스 코딩테스트 연습문제
- 브랜디
- pycharm
- 클린 코드
- FastAPI
- PostgreSQL
- 애드센스
- terraform
- 프로그래머스 월간 코드 챌린지 시즌1
- 프로그래머스 코딩테스트 연습
- 파이썬
- Python
- 프로그래머스 월간 코드 챌린지
- 스코페2021
- 바이오데이터 엔지니어
- heroku
- Firefox
- WPF
- git
- Word Cloud
- selenium
- 디자인 패턴
- Spring Boot
- Codeforces
- Today
- Total
프로그래밍 연습하기
Heroku를 이용한 무료 웹 호스팅 본문
파이썬 웹 프레임워크 FastAPI를 사용해서 간단한 프로젝트를 진행 중 입니다.
처음에 계획했던 기능을 어느정도 만들어서
일단 실제로 배포해보고 계속 발전시켜나가려고 합니다.
처음에는 AWS를 이용해보려고 했는데, 이미 Free Tier로 사용하는 것이 있어서
Heroku(헤로쿠)를 사용하여 무료로 올릴 수 있었습니다.
Heroku를 이용해보는 튜토리얼들이 잘 되있어서
저는 간단하게 제가 겪었던 문제와 해결 방법만 정리해보려고 합니다.
Heroku에서는 기본적으로 파이썬 버전을 따로 지정해주지 않으면 3.9버전으로 돌아갑니다.
그런데 저는 3.7버전에서 개발을 하고 requirements를 작성해서 그런지
의존성 설치 하면서 에러가 떠서
runtime.txt 를 작성해서 3.7.10 버전으로 설정하였습니다.
https://devcenter.heroku.com/articles/python-runtimes
이외에도 에러가 뜨는 모듈을 제거했는데,
버전 설정 전에 제거를 먼저 해버려서
버전 설정으로 해결되는 문제였는지는 잘 모르겠네요.
알고 보니 이 문제는 Venv가 잘못 설정 되어서 기존 파이썬 환경의 requirements를 가져와서 생긴 문제로 보입니다.
아래 글에 정리해봤습니다.
https://studyprogram.tistory.com/256
그리고 uvicorn을 실행할 때 발생하는 에러는
uvicorn.run(your_module_name, host='0.0.0.0', port=8000)
uvicorn.run("your_module_name:app", host='0.0.0.0', port=int(os.environ.get("PORT", 8000)))
https://github.com/encode/uvicorn/issues/687
https://blog.heroku.com/python_and_django
이 두 페이지를 참고하여 고쳐서 해결할 수 있었습니다.
알아보니 heroku는 포트가 임의로 배정이 되기 때문에
명시적으로 적어두지 말고 환경변수를 이용해서 해당 환경에 맞는 포트를 사용해야 한다고 합니다.
이정도 문제를 해결하니 일단은 성공적으로 사용해볼 수 있었습니다.
그런데 아직 다 이해를 했다기보단 되는대로 끼워 맞춘 것 같아서,
좀 더 사용해보면서 익숙해져야 할 것 같습니다.
'클라우드 > Heroku' 카테고리의 다른 글
Heroku 무료 서비스 종료 (0) | 2022.09.05 |
---|---|
Heroku Config Var 설정 시 주의점 (0) | 2021.11.02 |
Heroku에서 Postgresql 데이터베이스 사용시 에러 (0) | 2021.06.11 |