카테고리 없음

가비아 컨테이너호스팅으로 SSG 배포하기

Ahyeon, Jung 2024. 10. 24. 00:06

임시저장으로 놔둘땐 그냥 룰루랄라 빨리 끝나고 자야지 였는데 6시간동안 못잤다

카페인보다 효과 좋은 에러파티..

 

DB도 쓰지 않는 회사 소개 페이지였기 때문에 SEO가 가장 중요했다. 그래서 처음에 리액트로 진행하다가 SSG 시도해보고 바로 Next.js로 갈아탔다. 그러고 순조롭게 진행되나 했더니 배포에서 6시간 걸렸다..^^ 반응형이나 호환성은 진짜 홍보 페이지다보니 신경쓸 수 밖에 없었고, 신경쓰다보니 결과물이 맘에 들어서 배포도 만만하게 봤던듯하다.. 배포 왜 하는지 흥미안생겨서 모른척 했던 과거를 너무 원망함..


가비아 컨테이너호스팅

도메인은 이미 구입하신 상황이어서 호스팅도 가비아 업체로 희망하셨다. 알아보면 알아볼수록 웹페이지 유지비용 너무 크다. 모든게 다 구독경제.. 찾아보면서 워드프레스나 아임웹도 다 보게 되었는데 다들 사업력 짱이다. 

일단 가비아에는 웹호스팅과 컨테이너호스팅이 있다. 웹호스팅은 좀 더 관리를 가비아 측에서 제공해주고 컨테이너는 VM처럼 좀 더 자유로운 호스팅이다. 진짜 쉽게 말하자면 웹호스팅은 버킷이고 컨테이너는 EC2 정도로 비유할 수 있을 것같다. 나는,, 잘못 생각해서 앞으로의 확장 가능성이 더 높은 게 좋겠다고 생각해서 컨테이너를 선택했다. 근데 안내 문서를 작성하면서 이게 너무 내 입장이고 다루기 힘드실 수도 있겠다고 느꼈다. 물론 오히려 다른 개발자들에게 맡기는걸로 할 수도 있고,, 다른 사람들은 뭘 더 선호하는지 모르겠다. 그치만 같은 가격에 DB 어케 놓치는데

 

 

그렇게 컨테이너호스팅으로 결제를 진행하면, 아래와 같은 관리콘솔에 들어갈 수 있다.

 

이거보면서 내가 배포를 좋아한 적이 없었다는 걸 깨달았다. 그래도 팀 VM 백업하다가 이미지 다 날려먹어서 자백했던 때를 되새기면서 ssh 접속하고 파일 옮겨주고 pm2에 올려준다는 대략적인 과정은 알고 있었다. 그리고 생각보다 가비아에 안내가 잘되어 있어서 편했다. 

비밀번호 설정

먼저 보안 페이지에서 SSH에 접속하기 위한 비밀번호를 입력해줘야한다. 이때 host, ip, 접속id, 비밀번호 따로 기억해주는게 좋다.

 

PuTTY 설치

SSH에 접속하기 위해서 PuTTY를 설치해준다. 터미널에서 `ssh name@ip`로 해도 무관하지만 더 좋은게 있나 궁금해서 설치해봤다. 뭔가 옛날에 업데이트가 멈춘건지 의심스러웠지만 4월이라고 적혀있어서 다운을 받았다. 아직까지는 특별하게 좋은지는 체감이 되지 않는다. 6시간째 보고 있으니까 날 것의 매력이 좀 있는듯!^^!

 

종종 연결이 끊기는 경우가 있었는데, 관리 콘솔에서 IP를 추가하면 연결을 다시할 수 있었다.

 

FileZilla

이건 쉽게 파일이동을 할 수 있게 도와주는 프로그램이다. 보통 SFTP(SSH File Transfer Protocol) 통해 파일을 전송한다.

 

 

연결을 하고는, 그냥 더블클릭으로도 전송이 가능하고 드래그 앤 드롭으로도 전송 가능하다. out 파일 전체를 web 디렉토리에 넣어주면 된다.


pm2 설치

pm2는 프로세스를 관리하기 위해 사용한다. 백그라운드에서 실행하거나 서버가 중단되었을 때 자동으로 재시작할 때 편리하다.

npm i pm2

 

8080 포트에 out 파일을 열어주면 되는데, 가비아 측에서 package.json을 사용하라고 해서 파일을 만들어준다.

{
  "scripts": {
    "start": "pm2 serve ./out 8080 --name 'app' --cors --watch"
  }
}

 

실행해준다.

npm run start

 


내가 한 이상한 짓들

지금 와서 돌아보니까 왜 그랬나 싶다.

 

전송하려고 보니까 정적 서빙을 해야한다는 것을 깨달음

웹호스팅으로 해야만 했었다고 생각하고 좌절하고 그냥 SSR하려고함

용량 폭발해서 못함

일단 도커깔아봄

이미지 빌드할 때 버전이랑 경로 때메 한시간 때움

이미지허브에 올려놓고 보니까 가비아는 도커 설치 막아놓음

수수료 내가 내고 환불하거나 내 돈으로 내가 살까 눈물 흘리며 고민함

정적페이지를 서빙하는게 불가능한게 말이 안된다는걸 깨닫고 http-server를 만남

일단 로컬에서 서빙 잘되서 행복함

ssh에서 그대로 똑같이 하니까 안됨

레코드 때문인 줄 알고 설렜다가 안됨

pm2 때문인 줄 알고 설렜다가 안됨

포트 여러개 띄워져서인 줄 알았다가 안됨

똑같은 조건에서 로컬은 되고 ssh는 안되는게 이상하다는 걸 깨달음

접근을 차단하는건가 보니까 모든 ip를 따로 허용해줘야한다고함

안됨

초기화하고 다시 보니까 노드 버전이 까마득한 숫자라는 걸 깨달음

http-server 사용하니까 웹페이지 열림

근데 pm2로 열면 안열림, 백그라운드 실행 불가능함

계속 반복하다가 pm2 serve 사용하면 된다는 이슈 답변을 얻음

성공~!