반응형

첫 번째 프로젝트를 진행했을 때 Render를 이용해서 백엔드를 배포했었다.

그때 바로 문서로 정리했다면 좋았을텐데 문서의 중요성을 미쳐 깨닫지 못했었다 🥲

이제라도 기억을 되살려보며 정리해보려고 한다!

 

일단 배포를 하기 위해 데이터베이스를 먼저 배포를 해준다.

나는 postgreSQL을 사용했고, Render에서 postgreSQL 배포가 가능했기에 DB도 Render를 통해 배포했다.

 

Render로 PostgreSQL 배포하기

로그인하고 오른쪽 상단의 +new 클릭 후  Postgres를 누르면 위와 같은 화면이 표출된다.

이름은 렌더 안에서 뜨는 서비스 이름이라 고유하게만 지정해주면 된다.

나머지는 옵셔널 사항인데, Database나 User의 경우 원하는 이름이 있다면 지정해주고 없다면 무작위로 알아서 지정해준다.

그 후 요금제 선택 후 Create Database를 클릭하면 끝!

데이터베이스 배포가 완료되면 Info -> Connections에 DB 정보가 나오게 된다.

 

  • Internal Database URL: 배포 환경 내에서 서버 간 연결(백엔드 애플리케이션 → DB)
  • External Database URL: 로컬 환경에서 외부 접근(로컬 컴퓨터에서 클라우드 DB 접근)

 

Render로 Node.js 배포하기

 

오른쪽 상단의 +new를 누르고 Web Service를 누르면 위와 같은 화면이 포출된다.

나는 깃허브와 연동해주었고, 원하는 이름을 작성해준다.

Language는 본인의 프로젝트에 맞게 설정하고 나는 main 브랜치를 배포하도록 설정하였다.

 

그리고 아까 DB를 배포하고 나온 Database URL을 복사해서 작성해주고 Deploy하면 끝이다!

 

근데 여기서 배포 도중 오류가 발생했는데, 그 이유는 build command 설정 때문이었다.

배포 시 build command를 생각없이 npm build로 설정했었는데, 이 프로젝트에서는 build 명령어를 따로 설정을 안해놔서 오류가 났다.

실제 배포할때도 이 오류가 났었는데, 그때와 같은 명령어로 설정해줬다.

npm install --production && npx prisma migrate deploy && npx prisma generate
  • npm install --production: --production 옵션은 devDependencies를 제외한 생산 환경에 필요한 의존성만 설치
  • npx prisma migrate deploy: 배포 환경에서 데이터베이스 마이그레이션을 실행하는 명령어
  • npx prisma generate: Prisma 클라이언트를 생성하는 명령어

 

따라서 아래와 같은 순서로 빌드가 된 것 이다.

 

1. npm install --production을 통해 필수 라이브러리만 설치한 후,

2. npx prisma migrate deploy로 데이터베이스 마이그레이션을 실행하여, 배포된 환경에 맞게 데이터베이스를 최신 상태로 만들고,

3. npx prisma generate로 Prisma 클라이언트를 생성하여 데이터베이스와의 연결을 원활하게 합니다.

해당 서비스의 Settings -> Build & Deploy에서 Build Command 란에

npm install --production && npx prisma migrate deploy && npx prisma generate 명령어를 넣어주면 된다.

 

* 참고로 Settings -> Build & Deploy에서 Auto-Deploy 기능을 켜줘야 자동 배포가 된다.

 

그럼 배포 성공 ! 🎊

배포된 주소에서도 데이터가 잘 나오는 것을 확인할 수 있다 :)

반응형

+ Recent posts