일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Cloud Run
- Air Table
- 백준 1753번
- 그리디
- ICPC
- 데이터 분석
- 삼성SW역량테스트
- r
- 다익스트라
- 생활코딩
- jpa
- 고속 푸리에 변환
- CI/CD
- Bit
- BFS
- JavaScript
- 다이나믹 프로그래밍
- 접미사 배열
- 시뮬레이션
- Cloud Pub/Sub
- 컴퓨터 구조
- LCS
- 우선순위 큐
- 수학
- 종만북
- 삼성 SW 역량테스트
- dp
- 펜윅 트리
- 이분탐색
- REACT
- Today
- Total
코딩스토리
CloudRun CI/CD with Cloud Build 본문
개요
프로젝트에 새로운 기능을 추가하기 위해 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
위의 예제 또는 자신의 프로젝트를 Github Public Repo로 만들었다면,
CloudRun 서비스를 만들어야 한다.
이때 소스 저장소에서 지속적으로 새 버전 배포 설정을 해야 한다.
- Cloud Build로 설정 -> Repository 등록 (렉 걸려서 안 뜬다면 다시 나갔다 오면 떠요~)
- 분기 및 Dockerfile 설정
- 마지막으로 CPU나 Memory, 환경변수 세팅해주기 (지난 포스팅 참고!)
https://kimtaehyun98.tistory.com/151
이렇게 배포하면 실패 뜸.. 😭
(캡처를 안 해놨는데 음..)
-제대로 되었는지 확인하기 위해 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
이미 Google에서는 잘 설명해주고 있다.
단지 저 자료가 내가 필요한 자료인지 확신하는 게 어려울 뿐 구글은 신이다~!
여러 예시가 있지만 내가 원하는 자동 배포는 아래 코드를 따라 해야 한다.
코드에 주석이 친절하게 달아져 있어서 추가적인 설명이 필요할 것 같진 않다.
SERVICE-NAME과 REGION을 변경 후 커밋을 해 보면
성공!!! 😆
이제 버전이 바뀌었으니 테스트해보면 잘 작동하는 걸 확인할 수 있다.
이제 CI/CD 구축이 완료되었으니 이제부턴 신나게 개발하고 git에 push만 하면 알아서 배포까지 되는 것이다 👍👍👍
만약 이미 프로젝트를 완성시킨 상태로 CI/CD를 구축하려고 했다면 쉽지 않았을 것이다.
실제로 지난번 서버 구축 때도 배포 환경이 달라져서 계속 build 에러 나고.. 정말 힘든 시간이었다.
하지만 이번엔 CI/CD를 미리 구축해놓고 나니 정말 편해지기도 했고, 얼른 개발하고 싶은 느낌?!
'Google Cloud Platform' 카테고리의 다른 글
[에러] unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. (0) | 2022.08.13 |
---|---|
GCR을 사용하여 private하게 Cloud Run에 Docker Image 배포하기 (0) | 2022.07.28 |
Cloud Run에 Pub/Sub 사용하기 듀토리얼 (1) | 2022.07.11 |
Cloud Pub/Sub in Action - ep.3 (0) | 2022.07.05 |
What is Cloud Pub/Sub? - ep.2 (0) | 2022.07.04 |