[GCP]Serverless 서비스인 Cloud Run 알아보기 2부 — 로컬에서 개발하기(Cloud Code)

이정운 (Jungwoon Lee)
google-cloud-apac
Published in
9 min readNov 24, 2020

안녕하세요 이정운 입니다.

지난번 이야기에서 Google Cloud 에서 제공하는 컨테이너 기반의 Serverless 솔루션인 Cloud Run 에 대해서 전반적으로 살펴보는 시간을 가져봤습니다.

[GCP]Serverless 서비스인 Cloud Run 알아보기 1부 — Cloud Run 개요

전반적인 내용을 살펴봤으니 이를 통해서 대략적으로 Cloud Run 이 어떻게 구동되고 사용되는지는 이해가 되었을 것이라고 생각합니다. 이제 조금 더 들어가서 하나씩 좀 더 자세히 살펴보는 시간을 가져보도록 하겠습니다. 그 첫번째로 개발에 대한 부분부터 들어가도록 하겠습니다. 개발이라고 해서 실제 개발에 대한 부분을 살펴보는 것은 아니고 Cloud Run 용 컨테이너 기반의 애플리케이션 개발을 쉽게 하실 수 있도록 지원하는 Cloud Code 에 대해서 살펴보고 활용하는 시간을 가지려고 합니다.

Cloud Code
https://cloud.google.com/code

상단의 내용을 보셔서 아시겠지만 Cloud Code 는 개발자 생산성을 극대화 해주는 도구로서 VS Code 나 IntelliJ 에 플러그인 형태로 사용해서 활용할 수 있습니다. 특히, Cloud Code 는 Cloud Run 뿐만 아니라 Kubernetes 개발 단계에서 많은 편의성을 제공할 수 있습니다.

그럼 소개는 여기까지 하고 이제 실제 테스트를 해보면서 Cloud Code 가 개발시 어떤 도움을 줄 수 있는지 살펴보도록 하겠습니다.

#1) VS Code 개발 도구에 Cloud Code 설치 및 로컬 테스트

Quickstart
https://cloud.google.com/code/docs/vscode/quickstart-cloud-run

현재 Cloud Code 플러그인을 사용할 수 있는 개발자 도구는 시중에서 가장 많이 개발자 도구로 사용되고 있는 Visual Studio Code(VS Code) 와 IntelliJ 입니다. 이번 이야기에서는 가장 구하기 쉬운 개발자 도구인 VS Code 를 통해서 진행하도록 하겠습니다. VS Code 는 하단의 링크에서 무료로 다운로드 및 활용이 가능합니다.

https://code.visualstudio.com/

VS Code 개발자 도구가 준비 되었으면 가장 처음으로 해야하는 작업은 Cloud Code 플러그인을 설치하는 작업입니다. VS Code 의 Extensions Market 에 가서 Cloud Code 로 검색하고 설치를 수행합니다.

설치를 수행하면 하단에 보시는 것처럼 특별히 번거로운 작업 없이 바로 설치되는 것을 확인 가능합니다.

처음으로 샘플 애플리케이션을 개발 및 테스트해보기 위해서 설치 후 나타나는 환영 페이지에서 ‘Create a Cloud Run Sample App’을 클릭하면 하단과 같은 어떤 프로그래밍 언어 샘플을 만들 것인지 선택하도록 나타납니다.

이때 편한 프로그래밍 언어를 선택하시면 될듯하고 이번 이야기에서는 Node.js 를 선택해 보도록 하겠습니다. 그러면 자동으로 Cloud Run 구동을 위한 샘플 애플리케이션이 하단과 같이 생성되어 집니다.

특히, Cloud Run 구동을 위한 샘플 애플리케이션이기 때문에 이와 맞는 구조를 가지고 있으며 컨테이너화를 위한 Dockerfile 등이 자동 생성됩니다.

VS Code 의 하단바에 있는 Cloud Code 를 클릭하면 Cloud Code 가 지원 가능한 다양한 기능을 확인할 수 있습니다. 간단하게 샘플 애플리케이션을 로컬 환경에서 테스트 해보기 위해서 ‘Run on Cloud Run Emulator’ 작업을 수행합니다.

참고 #1) 로컬 환경에서 ‘Run on Cloud Run Emulator’ 작업을 수행하려면 당연하겠지만 테스트할 데스크탑이나 머신에 컨테이너를 구동가능한 Docker 가 사전에 설치되어 있어야 합니다.

Get Docker
https://docs.docker.com/get-docker/

‘Run on Cloud Run Emulator’ 작업을 수행하면 테스트를 위한 서비스 설정이나 빌드 설정등의 설정 값을 입력합니다.

설정 작업을 완료하면 Emulator 를 통해서 Cloud Run 을 구동하면 Docker 를 이용한 컨테이너화 작업이나 상태를 확인할 수 있고, 문제없이 컨테이너가 만들어지면 로컬 머신에서 해당 컨테이너를 구동하기 때문에 VS Code 에서 하단과 같이 Output 을 확인할 수 있습니다.

Output 에 나온대로 ‘http://localhost:8080’을 웹 브라우저를 이용해서 호출해보면 정상적으로 샘플 애플리케이션이 로컬 환경에서 구동된 것을 확인할 수 있습니다.

#2) VS Code 개발 도구에서 바로 Cloud Run 배포

로컬 환경에서 Emulator 를 활용한 테스트 작업이 완료되었으니 이제 샘플 애플리케이션을 실제 Google cloud 환경으로 배포하고 테스트 해보는 작업을 수행해 보도록 하겠습니다.

VS Code 를 가지고 Google cloud 환경으로 배포 작업 전에 Google Cloud SDK 가 데스크톱에 사전 설치되어 있어야 하며 ‘gcloud init’ 명령을 통해서 사용자 로그인 및 GCP 프로젝트에 연결 되어있어야 합니다.

Google Cloud SDK 설치 프로그램 사용
https://cloud.google.com/sdk/docs/downloads-interactive

사전 설정이 되어있는 상태라면 VS Code 에서 Cloud Code 를 클릭한 후 ‘Deploy to Cloud Run’ 을 선택하면 이전 이야기에서 GCP 관리콘솔을 통해서 봤던 Cloud Run 배포 환경과 동일한 내용을 VS Code 배포화면에서 확인 가능합니다. 제일 처음으로, 본인이 배포하고자 하는 GCP Project 가 배포 마법사에서 제대로 매핑되어있는지 확인해보고 나머지 부분은 원하시는 데로 선택하면 됩니다.

설정을 완료하고 배포를 시작하면 컨테이너화 작업부터 시작해서 배포가 이루어지며 VS Code 하단의 Output 창에서 배포 관련 로그를 확인 가능합니다.

문제없이 배포가 완료되면 하단과 같이 서비스 URL 을 바로 확인해 볼 수 있습니다.

당연히 Google cloud 의 지정된 프로젝트로 Cloud Run 샘플 애플리케이션이 배포가 완료되었으므로 GCP 관리콘솔에서도 확인이 가능합니다.

그리고, 생성된 서비스 URL 로 접속해 보면 정상적으로 서비스가 가능한 것을 확인 가능합니다.

추가적으로 VS Code 에서 Cloud Code 를 사용하게 되면 왼쪽에 위치한 Cloud Run 아이콘을 클릭하여 배포된 Cloud Run 애플리케이션에 대한 상태를 실시간으로 모니터링 가능합니다.

또한, 해당 Cloud Run 애플리케이션을 클릭 후 로그 버튼을 클릭하면 Cloud Logging 으로 이동 없이도 VS Code 에서 하단과 같이 로그를 실시간으로 확인 가능합니다.

추신 #2) 로컬 환경에서 VS Code 사용이 어려운 경우에 온라인 상에서 바로 사용가능한 Cloud Shell 과 함께 built-in code editor 인 Cloud Shell Editor 를 제공하오니 참고하시기 바라겠습니다. (Cloud Shell Editor 는 Cloud & Desktop IDE Platform 인 Eclipse Theia 기반입니다.)

Cloud Shell 편집기 인터페이스 개요
https://cloud.google.com/shell/docs/editor-overview

지금까지 VS Code 라는 개발자 도구에 Cloud Code 를 연동한 후 샘플 애플리케이션을 개발해 보고 Emulator 를 통해서 로컬에서 바로 테스트 해보고 실제 Google cloud 프로젝트에 배포까지 수행해 봤습니다. 보시면 아시겠지만 개발 후에 간단하게 테스트 환경에 배포하는 한바퀴의 간단한 개발 라이프사이클을 수행해 본 것이였습니다. 그럼 이번 포스팅은 여기서 마무리하고 다음에 다른 포스팅으로 다시 돌아오겠습니다.

Disclaimer: 본 글의 작성자는 Google 직원이지만 Google Cloud 를 공부하는 한 개인으로서 작성된 글입니다. 본 글의 내용, 입장은 Google 을 대변하지 않으며 Google 이 해당 콘텐츠를 보장하지 않습니다.

참고 자료 #1

Cloud Code
https://cloud.google.com/code

Quickstart
https://cloud.google.com/code/docs/vscode/quickstart-cloud-run

Get Docker
https://docs.docker.com/get-docker/

Google Cloud SDK 설치 프로그램 사용
https://cloud.google.com/sdk/docs/downloads-interactive

Cloud Shell 편집기 인터페이스 개요
https://cloud.google.com/shell/docs/editor-overview

--

--

이정운 (Jungwoon Lee)
google-cloud-apac

Technical engineer who dreams better future. (These thoughts are my own personal opinions, and do not reflect or represent Google’s opinions or plans.)