본문 바로가기

Project Log/CommentTeller

Google Cloud Platform - App Engine으로 배포하기? [2]

정말 한 틱만 건드려주면 될 것 같아서 또 포기 못하고 찾기 시작했다.

문제가 됐던 라이브러리(라이브러리 자체 문제X) 깃허브 저장소에 동일한 내용의 이슈가 올라와있었다. 이분은 heroku로 배포를 하셨는데 heroku도 gcp 앱 엔진과 마찬가지로 bash로 추가 설치하는 것이 불가능하셨다고 한다. 그래서 아래와 같이 npm script를 추가하셔서 실행시켰는데 다행히도 관련한 코드 디렉토리가 생겨났다고... 나도 postinstall은 아니지만 install 스크립트를 사용해서 했었는데 안됐었다. 하지만 혹시나 싶어서 postinstall로 수정후 다시 한 번 배포 진행했으나 동일한 오류로 실패했다.

 

{"postinstall": "node_modules/mecab-ya/bin/install-mecab ko"}

 

다시 또 검색해서 비슷한 증상(?)을 가진 깃허브 이슈 페이지를 찾았다.

strapi라는 라이브러리에 올라온 이슈였는데, 이 사람도 똑같이 postintall이 작동하지 않는다는 답변이였다. 이 사람은 "gcp-build"라는 스크립트를 써서 해결됐다고 하는데, 동일하게 해봐도 실패했다.

후... 그런데 댓글을 살펴보니 다들 flex 타입의 앱엔진 서비스를 사용하면 해결된다고 하는 반응이었다. 무료로 사용하기 위해 standard형을 사용하고 있는데, 아마도 standard형은 read-only형식으로 서버가 배포되기 때문에 추가적인 환경 설정은 안되는 것 같다.

생각해보니 start script에 node app.js 하기 전에 bash script를 실행하도록 한번 넣어봤는데, 권한 없음 비슷한 오류로 실행되지 않은 로그가 뜬게 아무래도 standard는 그럴 권한 없음!을 뜻한게 아니였나 싶다.

거의 이거 알아본다고 이틀을 날린것도 아깝고 가격도 얼마안하는 것 같은데 그냥 확 flex써버릴까...하다가 무서운 글을 발견했다.

 

Pricing of Google App Engine Flexible env, a $500 lesson

I followed the Nodejs on App Engine Flexible env tutorial @: https://cloud.google.com/nodejs/getting-started/hello-world Having successfully deployed and tested the tutorial, I changed the code to

stackoverflow.com

질문자는 노드 튜토리얼 앱을 배포겸 연습겸 flex 환경을 사용하게 됐는데, 한달 후 500$가량 지불해야한다는 구글의 통지서를 받았다는 내용이다. 당연히 연습용이기 때문에 request는 거의 없었지만, 리소스 사용 시간이 거의 6000시간 정도로 나왔다는 것이다.

알고보니 gcloud app deploy로 앱을 배포할 때마다 이전 버전이 사라지는 것이 아니고 이전 버전의 인스턴스는 계속 남아있기 때문에 이런 결과가 나왔다고 한다. 그런데 구글측에서는 가격을 최대한 낮추기 위해 처리량에 따라 인스턴스 수를 낮추거나 높인다는 답변을 했다고 하긴하는데 질문자는 아마도 자신이 앱실행을 nodemon을 사용해서 그런 것 같다고 하긴했는데 왜인지는 잘 모르겠다.

어쨌든 1.5개월 동안 거의 0개의 요청사항을 처리하고도 500불 가까이 내야한다고 하니 눈물...

 

아무튼 이 갑작스러운 요금 폭탄을 맞지 않으려면 하루 할당량을 설정한다던가 deploy할때 버전을 명시해서 커맨드를 실행한다던가 yaml파일에 최소 인스턴스 수를 명시해 놓는 방법 등을 설명해줬다.

 

standard는 무료에 가깝긴 하지만 그렇다고 완전한 무료는 아니기 때문에 일단 사용하지 않는 앱 엔진은 삭제하기로 했다.

나는 오류 고쳐보겠다고 deploy 커맨드만 근 30번 가량 했는데, 혹시 몰라 삭제 하는게 좋다고 판단했다. 이것저것 해보면서 배포 꼭 하고싶었는데 뭔가 아쉽다... 그런데 유료로 이것 저것해보다간 500불은 커녕 1000불 나오는거아니냐고...😢

아무래도 localhost에서 돌려보는 걸로 만족해야하나 싶다. 프론트만이라도 netlify에서 dummy data 넣고 배포해봐야지..