Next.js - Vercel 환경에서 Google Cloud Platform 으로 환경 이동 구축기 - (3)

s2ksh77·2023년 4월 26일
1

devOps

목록 보기
3/3
post-thumbnail

오늘의 글은 지난 글에서 사실상 포스팅이 끝나야 되고, Github Action이나 자동화 부분에 대해 글을 써야하는데.. 그것보다 갑작스러운 문제 상황에 어제 대처하느라 변경된 환경에 대해 다시 포스팅을 하려고 한다.

배포 된 환경

  • 갑자기 배포된 환경이 운용되지 않고 사이트가 죽게 되었다.
  • 원인을 파악하고자 GCP 콘솔에 로그인하자마자 보이는 문구.

무료 체험판에서 제공된 크레딧을 다 사용했기 때문에 유료 크레딧으로 활성화 하라는 문구와 함께 계정이 일시정지 되었다.

.... 간단한 환경만 구축한건데 이렇게 벌써 제공된 크레딧을 다 썼다고...??

확인해보니 지난 포스팅에서 적었던

  • 클러스터 컨테이너..
  • 그 하위에 3개의 Load Balancer 등..
    유료 결제 요금을 확인 해보니 확실히 크레딧을 금방 사용할 정도로.. 내가 구축해둔 환경이 무료로 이용하기엔 쉽지 않게 설정을 해두었던 것이다.

대안 찾아보기

  • 이러한 환경에 대해 찾아보니 많은 사람들이 간단한 사이트 정도를 운용하기 위해서 무료 크레딧 계정을 받고 App Engine으로 간단하게 구축한다는 여러 글들을 보게 되었다.
  • 사실상 PlanetScale과 같이 DB 플랫폼(무료버전)을 사용하고 있어서 DB는 걱정할 필요가 없었다.
  • 즉.. Nodejs가 띄워질 환경의 서버 하나만 있으면 되었는데..
  • 너무도 (과대포장)과 같은 느낌으로 환경을 구축해둔 것이다.

급하다! 바로 적용해보자

프로젝트 생성

새로운 무료 크레딧을 제공 받고자 새 프로젝트를 생성하였다.

App Engine Application 생성


-> App Engine에 와서 현재 우리나라와 가장 가까운 asia-northeast3을 설정하였다.

app.yaml 파일 설정

  • Next.js 공식 홈페이지에 들어가보면 AppEngine에 대해 배포하는 과정이 간략하게 나와 있었고, 나는 그 중에서도 제일 CPU 적이나 메모리적으로 적게 들어가는 환경으로 작성하였다.

gcloud sdk 설치

이전 포스트에서 이미 진행했던 부분이지만, 이 부분에 대해 따라해볼 수 있는 다른 분들을 위해 적어둔다.

gcloud sdk를 설치하고 (저는 windows 버전)

	gcloud auth login
    gcloud config set project ${PROJECT}

계정 및 프로젝트 선택

설정해둔 계정과 프로젝트를 선택하는 화면에서 [default] 설정을 해두었다.

또한 로그인 된 계정과 프로젝트 생성때 설정해둔 이름을 선택하였다
(각각 그림에서 2번,1번)

package.json 수정 및 배포

   ... 이상 생략
   "deploy": "yarn build && gcloud app deploy"
   ... 이하 생략

해당 명령어를 수행하게 되면 다음과 같이 진행된다.

현재 Next.js를 빌드하고 그 결과물을 로그인된 계정의 AppEngine에 배포 된다.

도메인 등록

AppEngine > 설정 탭으로 이동하게 되면 커스텀 도메인을 추가할 수 있는 화면이 제공된다.

그곳에서 사용하고자 할 도메인을 확인하게 되는데,

구글 Search Console에서

다음과 같이 DNS 레코드를 확인해야 한다는 안내창이 나오게 된다.

주의할점! ( 이부분에서 시간을 많이 잡아먹었다... )
지난 포스팅에서 도메인을 구입해둔 가비아의 NS(네임서버) 를 예전 DNS의 NS로 설정해두어서 자꾸 못찾는 이슈...!

  • 가비아에서 DNS를 구입했기 때문에 가비아의 DNS를 가비아 NS로 변경하고 진행하였다.

해당 TXT와 TXT 레코드를 가비아 도메인 > DNS 설정에 해당 값을 넣어주고 확인 버튼을 클릭하게 되면 인증되게 된다.

인증하게 되면 다음과 같이

구글에서 제공하는 레코드들이 나오게 되는데 해당 레코드들을 가비아 DNS 설정에다가 입력하면 된다.

또한 기본적으로 SSL을 구글에서 지원을 해주지만, 지난 포스팅에서 SSL을 구입했기 때문에

[SSL 인증서] 탭 > 새 SSL 인증서 추가

이곳에 PEM의 공개키 인증서와 RSA 인증서 키를 등록하여 업로드 하였다.

해당 인증서를 등록하고 몇분 뒤에

연결된 것을 확인하였다.

마치며

회사 제품 배포가 요 몇주 계속 진행됨에 따라 엄청 정신없이 하루하루를 보내다가, 어제 급작스런 이슈가 터졌음에도 빠르게 대처하였다.
아무래도 AWS나 GCP와 같이 처음 해보는 환경에 대해서 많이 알지 못한채 진행 했던것 같아서 시간적으로 여유가 되면 좀 더 공부해 볼 생각이다..
(이번엔 과금이 안나오겠지..)

profile
오너십을 가지고 끊임없이 더 나은 방향을 고민하는 개발자 입니다. 새로운 기술을 적용하고 배우는 것을 좋아합니다.

0개의 댓글