이전 내용

 

Google Cloud Platform 삽질기 (1)

요약 서버를 배포하기 위해 구글 클라우드 플랫폼을 사용하기로 결정했다. 도커 이미지를 쉽게 띄울 수 있고 마침 aws 프리티어가 끝나서 선택하게 되었는데 막상 GCP로 연결하고보니 이미지만

choiblog.tistory.com

앞선 내용과 이어지는 내용이다.

가상 머신 인스턴스를 띄우고 소스 코드를 업로드하는 부분까지 진행했다.

 

소스코드 실행하기

우선 인스턴스에 올린 코드 압축을 풀고 실행시켜봐야했다.

sudo apt-get update && sudo apt-get install unzip

unzip example.zip

 

압축이 해제되고 docker-compose.yml 파일이 있는 곳으로 접근해서 docker-compose up 명령어를 실행시켰다

 

docker-compose에러

docker-compose up 명령어를 실행시켰을 떄 에러가 발생했고 이미지를 안찍어놔서 구체적인 에러를 알 순 없었지만 조금만 찾아봐도 유사한 문제들이 보였고 주로 버전 이슈였다.

 

이후 로컬에서 다시 실행시켜보고 잘 실행되는 것을 확인한 뒤 로컬 버전과 인스턴스 버전을 확인해보니 버전이 맞지 않아 여러 자료들을 참고하여 업그레이드 시켜줬다.

 

How to upgrade docker-compose to latest version

I have installed docker-compose using the command sudo apt install docker-compose It installed docker-compose version 1.8.0 and build unknown I need the latest version of docker-compose or at le...

stackoverflow.com

 

도커 컨테이너 실행하기

쓸데없이 시간을 많이 쓴 부분인데 compose up했을 때 mysql 컨테이너는 잘 실행이 됐다.

그런데 코드는 빌드까진 잘 되는데 main.js, 즉 실행 파일을 찾을 수 없다는 에러를 보고 어디서 잘못된건지 찾기 시작하며 삽질해대기 시작했다.

 

처음엔 빌드가 제대로 안됐나싶어 빌드된 결과물이 있는 곳으로 접근해서 폴더 구조를 보고자 했다. 생각으론 어디서 어떻게 빌드파일이 만들어졌는지만 확인하면 될거같았다. 그래서 접근방법을 한참을 고민하다가 이렇게 접근해봐야 원격에서 다시 해결할 수 없는 오류라고 생각해서 로컬에서 빌드 시켜봤다. 

 

시켜봤더니 기존 빌드파일에서 만들어졌던 src 폴더가 없어지고 구조가 변경되어 스크립트로 등록된 명령어로 실행시킬 때 파일을 찾을 수가 없었던 것이었다.

따라서 스크립트를 수정해주는 것으로 해결하니 컨테이너까지 잘 띄워지는 것을 확인할 수 있었다.

 

접근

이제 호스트IP로 접근해서 실제 배포가 잘 되었는지 확인만하면 됐었는데 응답시간이 너무 길다는 에러 메시지가 발생했다. 

네트워크 관련 설정이 필요하다는 것은 대략적으로 알겠는데 어디가 어떻게 문제인지 감이 잘 안왔고 chatGPT를 활용했다.

1번부터 천천히 구체적인 자료를 확인하고 점검했다. 아니나 다를까 방화벽에서 기본 vm 설정을 제외하고 외부 접근을 허가해둔게 없어 당연히 응답하지 않았던 것이었다.

 

 

이후 방화벽을 설정한 뒤 인스턴스에 추가하면서 배포까지 최종적으로 마무리할 수 있었다.

 

GCP 8080, 8000포트 열기

8000번 포트를 쓰는 서버를 GCP computing engine 에 올렸다. 요청을 보내보았는데, 답이 돌아오지 않았다. 아. 방화벽을 안 열었지 깨닫고나서 방화벽 설정을 한다. VM 인스턴스 -> three dot 버튼 클릭 ->

4whomtbts.tistory.com

 

회고

물론 여기서 끝은 아니다. 이 외에도 설정이나 추가해야할 부분은 너무나도 많았다.

 

CORS, 도메인 수정, 웹서버, DB 볼륨 ,앞선 배포 과정을 매번 수정할 때 마다 해야하는 건 너무 귀찮기 때문에 CI/CD라던가 리팩토링까지 할게 많았지만 그래도 매번 만지기 겁냈던 시스템관련 설정들을 만져볼 수 있었고 오랬동안 삽질했던만큼 실행됐을 때 즐거움은 컸다.

 

그래도 일단은 지금 상태에서 호스팅쪽은 놔두고 프론트쪽과 확장 프로그램쪽을 완성시켜 배포하려고 한다.

 

복사했습니다!