GCP 얼만큼 써봤나..

Harrison Jung
Oct 22, 2019 · 12 min read

요즘 채용 공고 관련 글을 이것저것 써보다가, 문득 든 생각.

우리 회사는 GCP를 메인 클라우드로 사용중이다. ( 뭐 딱히 다른거 쓰는건 없는거 같지만…)

그런데, 우리회사가 GCP의 서비스들을 정말 많이 쓰는데, 얼마나 많이 쓰고 있나 문득 궁금해졌다.

채용 공고에 Tech Stack 을 써야 해서도 있고 해서 한번 정리해 봤다.


기본적으로 우리 회사에서 쓰는 GCP의 서비스들은 크게 3가지로 나눌 수 있을꺼 같다. ( 공식적으로 구글에서 나누는 기준은 아님 )

전체 시스템을 지탱하는 GCLB , GKE , 그리고 그것을 위한 CI/CD.

우선 외부에서 들어오는 네트워크는 기본적으로 GCLB ( Google Cloud Load Balancer )를 거친다.

우선 HTTPS 를 위한 인증서를 자동으로 관리해주기도 하고 기본적으로 1개의 IP로 전세계에서 단일한 서비스를 제공할 수 있는 Anycast IP를 지원한다.
물론, 기능이 많은 만큼 세팅도 복잡하다. 물론 구글에서는 쉽다고 하는데, 생각보다는 복잡하다. 기능이 너무 많아서.. 우리는 이걸 메인으로 사용하고 있다. 물론 내부적으로는 리전별로 서버들을 네트워크를 관리해주는 VPC Network 를 이용중.

대충 우리가 사용하는 GCP 네트워크 서비스는 이정도 인것 같다. 그 외에도 더 많은 서비스들이 있는데, 아직 서비스 규모가 (구글 대비 )너무도 미미하여 더 많은 서비스는 낭비라서.. 사용하지 않고 있다. 덤으로, 리전간의 네트워크는 구글은 전용망으로 전부 연결해 놔서 모든 클라우드 벤더중에서 제일 안정적.

깜빡하고 빼먹은 내용을 추가하면 Google Cloud CDN이 있다. 별건 없고 GCLB에 붙어서 CDN 역활을 해주는 서비스.

이 서비스를 그냥 쓸 수도 있지만, 추천하는건 사실 그냥 서버에 붙는것 보다는 GCS ( Google Cloud Storage )에 붙어서 사용하는게 훨씬 좋다. 파일 관리도 쉽고. 우리 회사에서도 그렇게 https://cdn.example.com 혹은 https://file.example.com 이런식으로 도메인을 따로 만들어서 관리한다. 확실히 관리가 쉽고 대용량 파일 관리도 매우 쉽다.
( 타사 대비 네트워크 비용도 확실히 저렴하고..)

다음으로 우리는 서비스를 GKE ( Google Kubernetes Engine ) 에서 사용하고 있다. 기존에는 GCE ( Google Compute Engine )으로 직접 모든걸 구축했는데, Docker & K8S 를 도입한 이후 부터는 직접적으로 GCE를 컨트롤 하진 않는다. ( 물론 할줄은 알지만 … )

예전에 GCE를 사용할때는 직접 컨트롤 해야만 했고, 구글에서 제공해주는 API를 이용해서 서버들을 늘리거나 줄이거나 (오토 스케일링 ) 혹은 뭔가 설정을 해주는것들을 콘솔에서도 많이 사용했었다. 지금은 GKE가 자동으로 해주니 자잘한 설정에서 해방..
물론 GKE를 쓰려면 더 많은 친구들의 도움이 필요한데 대표적인게 CI/CD다.

구글에서 제공하는 다양한 도구들이 많은데 예를들면 Git ( Google Cloud Source Repository ) 는 Github 대신에 쓸수 있고, Docker hub 대신에 GCR ( Google Container Registry )를 사용할 수도 있다.

자.. 소스를 저장하고 ( Git ) 그 소스로 Docker Image를 만들려면 빌드를 해야 하는데… 그건 Google Cloud Build 가 있다.

일반적으로 젠킨스 같은 서비스들을 많이 이용하는데, 비슷하게 생각하면 된다. YAML 파일을 이용해서 설정하고 그대로 콘솔에서 명령어를 실행하면 자동으로 구글에서 관리하는 빌드 서버에서 빌드후에 GKE로 배포까지 해준다.

그럼 로그는? 역시 구글에서 만들어 놓은 로그 관련 도구들이 “매우"많다.

GCP상의 모든 로그는 기본적으로 Stackdriver에 저장이 되고 만약에 필요하면 GCS나 BigQuery . 심지어는 Google Drive 에도 저장이 가능하다.

정상적으로 모든게 돌아가면 좋겠지만 현실은 그렇지 않은법.
중간 중간 “에러"가 나면 스마트폰앱으로 경고도 보내줄 수 있다.

기본적으로는 콘솔에서 볼 수 있으며, 이메일과 앱으로 푸쉬도 보내줄 수 있다. 설정은 간단한 편.

로그를 조금더 꼼꼼히 보고 싶으면 트래픽이 여러 서버를 거치는 과정을 볼 수도 있는데, 그걸 해주는 서비스가 Cloud Trace

어느 어느 서버를 거쳐서 최종적으로 현재 서버까지 도달하였는지를 GUI로 직관적으로 보여준다.

직접적으로 서버를 운영해도 되지만, SQL서버와 Redis 서버는 간혹 그게 귀찮고 복잡할때가 있다. 그럴 경우를 대비해 만들어 놓은 구글의 Managed Service.
Cloud SQL 과 Memory Store

예전에는 Cloud Function 과 Cloud Run도 잠깐 써봤는데, GKE를 사용하기 시작하면서 최근에는 안 사용하게 되긴 했다.

이외에도 IAM을 이용해서 다양한 권한 관리를 하고 있고, 위의 대다수의 내용들은 구글에서 제공하는 API를 이용해서 비교적 쉽게 관리하고 있다. Node.js의 경우 npm으로도 제공해주는데, 공식적으로 제공해주는 npm 들이 많긴 한데, 개인적으로 선호하는건 googleapis npm이다.

위에서 직접적으로 언급한것들 말고도 자잘하게는 빌드 할때 슬랙으로 메시지를 오게 하기 위한 Cloud Pub/Sub같은것도 있고 Auto ML도 있고 자잘한게 많은데, 자세한건 꿈청에 직접 와서 경험 할 수 있으면 좋겠다.

마지막으로 꿈청은 챗봇 회사니까..
Dialogflow를 정말 많이 쓴다.

그리고 가장 중요한 채용공고

같이 일할 개발자분들을 찾고 있습니다!

Dreamyoungs

Tech blog of 꿈많은청년들

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store