이전에 올린 "Full Stack MERN Project"를 배포하기위해 Heroku라는 클라우드 Paas를 사용하기했습니다.
사실, 이제까지 Heroku라는게 뭔지 모르다가, 강의영상에서 사용하는걸 따라했습니다.
문제는 역시, 강의영상에서는 아주 자연스럽게 배포가 되었지만, 제겐 너무도 복잡한 에러가 뜨네요.
Heroku의 사용방법 및 가입방법등은 이미 많은 블로그에서 다루고 있으니, 저는 바로 에러를 추적하는 방법에 대해서 기록하려고 합니다.
재배포와 로그추적을 위해 제가 사용한 기본 명령어는 간단합니다.
$ git add .
$ git commit -am "make it better"
$ git push heroku master
3가지의 로그를 한문장으로 Heroku에서도 설명했는데,
Make some changes to the code you just cloned and deploy them to Heroku using Git.
변경된 내용 업데이트후, 깃을 이용해서 Heroku에 재배포한다.
이후, Heroku 데쉬보드 우측 상단에 위치한 "OpenAPP"을 통해 정상적으로 기동되는지 확인합니다.
이때, 앱을 실행할 수 없다는 에러가 뜨는 경우, 아래와 같이 Heroku 로그를 확인하며 추적합니다.
현시점까지의 로그기록 보기
heroku logs
진행중인 로그기록 보기
heroku logs --tail
개인적으로 현재 로그를 바로 확인할 수 있는 heroku logs --tail 의 사용을 추천합니다.
이때 에러가 발생하면 빨간색으로 표시되는데, 제가 만난 에러에서 가장 핵심이 된 것은,
Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
at=error
code=H20
desc="App boot timeout" method=GET path="/" host=janmangs-memories-project.herokuapp.com request_id=7baf971f-71d0-440f-8763-029052c55aa9 fwd="172.218.230.224" dyno= connect= service=
status=503
이 두가지입니다.
거창해보이지만, "웹 포트에 접근할 수 없다" "사이트를 열수 없다" 는 뜻입니다.
조금더 힌트가 되는 로그를 찾기위해 살펴보니, 아래와 같은 로그가 보입니다.
Could not connect to any servers in your MongoDB Atlas cluster. One common reason is that you're trying to access the database from an IP that isn't whitelisted. Make sure your current IP address is on your Atlas cluster's IP whitelist: https://docs.atlas.mongodb.com/security-whitelist/
MongoDB Atlas 클러스터 서버에 접근할 수 없다. 가장 일반적인 이유는 사용중인 IP가 접근허가되지 않은 IP인 경우며, 접근허가를 위해 다음 사이트를 참조해라. https://docs.atlas.mongodb.com/security-whitelist/
이제 MongoDB의 에서 Heroku의 서버 IP에 대한 접근 권한을 부여해주면 됩니다.
하지만, 개인유저의 경우 다이나믹 IP만 사용할 수 있으며, Static IP는 유료회원/기업에게만 부여한다네요.
저의 경우, 0.0.0.0/0 을 통해, 모든 IP에 대해 접근 권한을 부여했습니다. (보안에 취약하므로, 설정전에 충분히 확인하시기 바랍니다. ) 학습 목적의 프로젝트라면 큰 문제가 안될것 같습니다.
설정방법:
MongoDB Dashboard > SECURITY (왼쪽메뉴) > Network Access > +ADD IP ADDRESS
0.0.0.0/0 입력 > Confirm
확인을 누르면, Status가 pending으로 돌고, 일정 시간이 지나면 Active로 활성화됩니다.
헤로쿠 재시작
$heroku restart
'개발 > 웹개발' 카테고리의 다른 글
Error: request entity too large / body-parser deprecated undefined extended : 개발일지 (0) | 2021.08.12 |
---|