[BackEnd] 포트폴리오용 토이프로젝트를 GCP Cloud Run으로 배포해 보자!

김재혁·2024년 1월 17일

BackENd

목록 보기
5/7
post-thumbnail


업로드중..

안녕하세요! 오늘은 포트폴리오용 토이프로젝트를 배포할 때 도커로 컨테이너화 시킨 후 GCP Cloud Run을 이용하여 배포하는 법을 포스팅 해볼까 합니다!

GCP IAM 설정과 Docker에 대한 설명은 없습니다!

먼저, Cloud Run이란 무엇일까요?

Cloud Run?

  • Cloud Run은 확장 가능한 인프라에서 직접 컨테이너를 실행할 수 있게 해 주는 관리형 컴퓨팅 플랫폼
  • 컨테이너 이미지를 빌드할 경우 모든 프로그래밍 언어로 작성된 코드를 배포할 수 있다.
  • Go, Node.js, Python, 자바, .NET Core, Ruby를 사용하는 경우 사용 중인 언어의 권장사항에 따라 컨테이너를 빌드하는 소스 기반 배포 옵션을 사용할 수 있다

즉, Cloud Run은 컨테이너 이미지 또는 정해진 언어에 따라 컴퓨팅 플랫폼이 자동으로 배포해주는 GCP의 리소스라고 볼 수 있습니다.

배포 과정

본 포스팅은 컨테이너 이미지를 빌드하는 과정으로 가보겠습니다.

먼저 배포할 애플리케이션을 준비합니다. 저는 백엔드 개발자이니 백엔드 애플리케이션을 배포해보겠습다.


루트 경로에 Dockerfile을 작성해주시고 Docker image를 빌드합니다. 이때 -t 옵션으로 자신의 도커 허브 아이디/이미지이름 으로 지정해줘서 push 할 때 편하게 지정해줍시다!

 docker build -t 내 도커허브 아이디/이미지 이름 .


docker images 명령어로 이미지가 잘 생성되었는지 확인해줍니다!

다음으로 docker push로 내 docker hub에 push를 해줍니다!

도커 허브에 잘 들어와 있습니다!

GCP로 이동 후 클라우드 쉘을 사용을 클릭하여 쉘을 열어줍니다,,,! (로컬 gcp sdk 에서도 가능하나 자꾸 access denied가 떠서,,, 후에 해결하고 해결 방법 올려보겠습니다!)

쉘을 열어준 후 아까 도커허브에 있던 이미지를 pull 해줍니다

docker pull 도커허브 아이디/이미지 이름

Cloud Run에 배포하기 전에 GCP Artifact Registry로 이미지를 푸쉬해줘야 합니다,,,! 다만 우리의 도커 허브에 이미지를 push 하기 위해서 태그를 지정해준거처럼 artifact registry에서 지정한 네이밍으로 태그를 지정해줍니다!

네이밍 예시:
{리전}-docker.pkg.dev/{프로젝트명}/{저장소명}

모르겠으면 저기 복사 버튼 누르면 친절히 복사가 됩니다!

먼저 tag 명령어로 artifact registry에 맞게 명령어를 만들어 주고 registry에 push 해줍니다!

Tag 명령어

docker tag rlawogur816/daeng-nyang-be:latest asia-northeast3-docker.pkg.dev/supercoding-prj3/supercoding-prj3/daeng-nyang-be:latest

Push 명령어

docker push asia-northeast3-docker.pkg.dev/supercoding-prj3/supercoding-prj3/daeng-nyang-be:latest


artifact registrty에 도착한 이미지를 확인해준 뒤 Cloud Run으로 이동합니다.

새 서비스 배포 버튼을 클릭 후 아까 push한 registrty에 이미지를 선택해줍니다.

이 때 port 번호는 백엔드 애플리케이션에서 쓰는 port번호로 사용해주세요!

또한 변수 및 보안 비밀 탭에서 자신이 쓰는 환경변수(ex: Aws key, DBURL, 등등)를 지정해줍니다!

과금이 적게될 정도의 사양으로 설정해준 뒤 배포를 클릭합니다!

등록된 URL로 접속을 해주면 백엔드 애플리케이션의 홈 화면이 Swagger로 잘 이동합니다!

이렇게 컨테이너 이미지를 이용해 배포를 해봤습니다!

디벨롭 예정

  • 로컬 터미널에서 gcp cloud에 접속해서 gcp cloud shell에 접속하지 않고 artifact registry에 push
  • gcp cloud build 를 통해서 깃허브 브랜치에 소스코드가 달라지면 자동으로 이미지 빌드 후 배포하는 CI/CD 구축

참고 및 보충 설명 문서

GCP IAM:
https://cloud.google.com/iam/docs/granting-changing-revoking-access?hl=ko

GCP Artifact Registry:
https://cloud.google.com/artifact-registry?hl=ko

GCP Cloud Run:
https://cloud.google.com/run?hl=ko

Docker:
https://www.oracle.com/kr/cloud/cloud-native/container-registry/what-is-docker/

profile
아웃라이어 :)

0개의 댓글