Flask 미니 프로젝트 완성 후 aws를 통한 배포를 위해
1. 배포용 디렉토리 생성
2. 1의 하위로 개발 진행한 파일들 복사
3. 개발 환경에서 사용한 패키지와 버전 기록 (pip freeze > requirement.txt)
4. aws 배포 환경 구성 후 배포
의 순서대로 진행하였며, 배포까지는 원활하게 이뤄졌지만, 확인해보니 502 error 을 확인하였다.
aws 로그를 확인해도 정확한 원인을 알 수 없었는데, 멘토님의 도움으로 확인하는 방법을 알았다.
아래의 방법은 당시에 발생했던 문제의 국한된 것으로 모든 에러를 확인하고 조치할 수 있는 것은 아님을 알려드립니다.
1. aws 환경 > 로그 > 전체 로그 다운로드
2. 다운로드 받은 폴더 > log > web.stdout.log 파일 확인
3. 최하단 부분 기록 중 에러 메세지 확인
3번 부분 확인 중 Flask 패키지가 없다는 내용을 확인했다.
개발을 Flask 로 했는데, 이런 일이 발생 할 수 있나? 라는 생각이 들었고, 개발환경에서 설치되지 않은 패키지들과 버전을
requirement.txt 파일에 추가한 후 재배포를 진행하니, 정상적으로 접속이 가능한 점을 확인했다.
그 다음날, 일어나서 문득 든 생각은 배포 단계에서 실수했기 때문에 위와 같은 상황이 발생했다는 것을 깨달았다.
일반적인 경우, 웹 개발 시 라이브러리간 버전 호환 문제로 인해 충돌이 발생하는 것을 막기 위해
가상환경으로 개발 진행 후 가상환경에서 설치한 라이브러리들을 pip freeze 를 진행했어야하는데
배포 단계에서는 가상환경을 해제한 후 라이브러리 정보를 기록하여 웹 페이지 개발에 사용한 패키지가 대부분 등록이 되어있지 않았던 것
Flask는 사용중인 컴퓨터에서 설치한 적이 없었기 때문에 이런 상황이 발생한 것이었다.
만약, 가상환경에서 사용한 모든 라이브러리가 기본 환경에도 설치되어있었다면, 별다른 문제 없이 배포되었을 것이고
오류를 겪어보지 않았을 수 있지만
연습할 때 이런 경험을 할 수 있어서 다행이라고 생각하고 있다.
'Backend > Python' 카테고리의 다른 글
[FastAPI] Project Levup - 시작하기 (0) | 2023.11.14 |
---|---|
[Python] tkinter - 예약 타이머 만들기 - 기능 추가 2 (1) | 2023.11.14 |
[Python] tkinter - 예약 타이머 만들기 - 기능 추가 (0) | 2023.11.10 |
[Python] tkinter - 예약 타이머 만들기 - UI 구성 (1) | 2023.11.09 |
[python] Selenium & Bs4 웹 스크래핑 (0) | 2023.03.22 |