코딩스토리

CloudRun CI/CD with Cloud Build 본문

Google Cloud Platform

CloudRun CI/CD with Cloud Build

kimtaehyun98 2022. 9. 17. 00:28

개요

프로젝트에 새로운 기능을 추가하기 위해 CloudRun에 배포를 하려고 한다.

지난번 CloudRun을 사용할 때에는 CI/CD 환경을 구축하지 못했었는데

(그때 당시에는 빠르게 결과물을 내야 했고, 숙련도도 부족해서.. 핑계입니다..😭 시간 나면 이전 기능도 구축 예정)

이번에는 멘토님의 말씀처럼 개발을 시작하기 전에 CI/CD 환경을 구축해놓으려고 한다.

 

CI/CD 환경 구축하기

기본적으로 Github을 사용하면 빠르게 CI/CD 환경을 구축할 수 있다.

물론 public으로 해야 한다는 점 등 단점이 있지만 빠르고 쉽게 구현할 수 있다는 장점이 커서 많이 사용한다고 한다.

(실제로 옛날 프로젝트에서 CI/CD를 구현했을 때 꽤나 빠르게 완성했던 걸로 기억한다.)

 

먼저 CloudRun에 배포할 테스트 코드가 필요하다.

아래의 링크는 Flask를 사용한 초간단 web 예제이다. 

https://cloud.google.com/run/docs/quickstarts/build-and-deploy/deploy-python-service

 

빠른 시작: Cloud Run에 Python 서비스 배포  |  Cloud Run 문서  |  Google Cloud

Python 및 컨테이너 이미지를 사용하여 Cloud Run에 서비스를 배포하는 방법을 알아봅니다.

cloud.google.com

 

위의 예제 또는 자신의 프로젝트를 Github Public Repo로 만들었다면,

CloudRun 서비스를 만들어야 한다.

이때 소스 저장소에서 지속적으로 새 버전 배포 설정을 해야 한다.

- Cloud Build로 설정 -> Repository 등록 (렉 걸려서 안 뜬다면 다시 나갔다 오면 떠요~)

- 분기 및 Dockerfile 설정

- 마지막으로 CPU나 Memory, 환경변수 세팅해주기 (지난 포스팅 참고!)

https://kimtaehyun98.tistory.com/151

 

GCR을 사용하여 private하게 Cloud Run에 Docker Image 배포하기

앞선 포스팅에서 Spring boot 서버를 docker를 사용하여 돌려보고 image를 생성하였다. https://kimtaehyun98.tistory.com/150 Spring 프로젝트로 Docker Image 만들기 현재 진행 중인 프로젝트에서 Cloud Run을..

kimtaehyun98.tistory.com

 

이렇게 배포하면 실패 뜸.. 😭

(캡처를 안 해놨는데 음..)

 

-제대로 되었는지 확인하기 위해 postman에서 api 호출해보면

아주 친절하다 😰

 

어찌 저찌 "빌드" 까지는 성공시켰는데 계속 API 호출이 성공적으로 이루어지지 않았다..

(여기서 삽질을 공유하지 않는 이유는 밑에 나오지만 그냥 제가 잘못된 방향으로 하고 있었던 거였습니다 ㅎㅎ..)

 

이유를 모르겠어서 git에 새로운 작업 push 해보니

빌드는 알아서 돌아가며 성공하는 것을 확인했다. 하지만 배포는 되지 않았다.

 

이때 머릿속에 번뜩 지나쳤던 것이 빌드만 자동화되었구나! 였다.

 

즉 CloudRun의 CI/CD 과정을 크게 순서대로 표현해보자면

 

코드 수정 -> Github Repo에 push -> Commit 감지 -> 빌드 -> 도커 이미지 생성 -> 이미지 배포

 

위와 같은 과정으로 진행되는데 내가 이미지를 생성만 해놓고 배포하는 스크립트를 짜지 않았던 것이다. 🚨

 

이를 증명하듯 이미 빌드된 이미지들은 자동으로 container registry에 쌓이고 있었다 내가 몰랐을 뿐..

 

이제 문제가 어딘지 알았으니 배포를 자동화해보자.

https://cloud.google.com/build/docs/deploying-builds/deploy-cloud-run?hl=ko 

 

Cloud Build를 사용하여 Cloud Run에 배포  |  Cloud Build 문서  |  Google Cloud

의견 보내기 Cloud Build를 사용하여 Cloud Run에 배포 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에서는 Cloud Build를 사용하여 Cloud Run 및 Cloud Run for

cloud.google.com

 

이미 Google에서는 잘 설명해주고 있다.

단지 저 자료가 내가 필요한 자료인지 확신하는 게 어려울 뿐 구글은 신이다~!

 

여러 예시가 있지만 내가 원하는 자동 배포는 아래 코드를 따라 해야 한다.

코드에 주석이 친절하게 달아져 있어서 추가적인 설명이 필요할 것 같진 않다.

 

SERVICE-NAME과 REGION을 변경 후 커밋을 해 보면

 

 

성공!!! 😆

 

이제 버전이 바뀌었으니 테스트해보면 잘 작동하는 걸 확인할 수 있다.

 

 

이제 CI/CD 구축이 완료되었으니 이제부턴 신나게 개발하고 git에 push만 하면 알아서 배포까지 되는 것이다 👍👍👍

 

만약 이미 프로젝트를 완성시킨 상태로 CI/CD를 구축하려고 했다면 쉽지 않았을 것이다.

실제로 지난번 서버 구축 때도 배포 환경이 달라져서 계속 build 에러 나고.. 정말 힘든 시간이었다.

 

하지만 이번엔 CI/CD를 미리 구축해놓고 나니 정말 편해지기도 했고, 얼른 개발하고 싶은 느낌?!

 

 

 

Comments