[GCP]가난한 개발자를 위한 GCP free tier 활용 방법 1/2

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

지난번에는 “[GCP]처음 시작하는 이를 위한 Google Cloud Platform 과 Decision Tree” 라는 강좌를 통해서 Decision Tree 를 이용하여 초기 GCP 사용자가 다양한 GCP 서비스 를 고를때 간략하기는 해도 일종의 가이드 형태의 도움을 받을 수 있는 방안에 대해서 살펴봤습니다. (이전 이야기가 궁금하신 분은 이 링크로)

이번에는 어떤 내용을 공유하는 것이 좋을까 고민하다가 많은 개발자들이 제일 처음에는 테스트 목적으로 Google Cloud Platform(GCP) 을 써보려고 하지만 비용때문에 주저하는 경우가 있지 않을까 하여 최대한 가난한 개발자가 되어서 저렴하게 사용할 수 있는 방법에 대해 같이 고민하고 공유해보면 도움이 되지 않을까하여 해당부분을 같이 고민하면서 시작해보고자 합니다.

https://cloud.google.com/free/


#1) 무료 크레딧 — $300

상단의 기본 free tier 관련 사이트를 보시면 아시겠지만 GCP 에 처음 가입하면 12개월 기한으로 $300 의 무료 크레딧이 생성됩니다. 이는 12개월 동안 어떤 서비스든 $300 이라는 무료 크레딧을 가지고 다양한 테스트를 할 수 있기 때문에 무료로 GCP 를 테스트 해보고 사용할 수 있는 훌륭한 방법입니다. 거기다가 $300 이 꽤 큰돈이라 원하시는 형태로 테스트하신 후에 적절하게 서비스를 정리하게 되면 이것 저것 다양한 테스트를 해보시는 것이 가능합니다. (그리고 사실 많은 분들이 이미 알고 계시는 것처럼 ‘Gmail ID 새로 생성하기’ 라는 신공이 있어서 두루 두루 활용하기가 쉬운 방법입니다.)

추가적으로 개발/테스트할 때 많이 사용하기도 하고 비용도 많이 드는게 VM 인데 Google Compute Engine(GCE) 의 경우 테스트 하시다가도 사용이 없는 경우(야간이나 주말) 해당 인스턴스를 Stop 시켜두면 디스크 비용말고는 별도로 비용이 발생되지 않습니다. (필요한 경우에 다시 Start 하기만 하면 됩니다.) 특히나 GCP 의 경우에는 최초 1분이후에는 초당 과금이라 좀 더 효율적으로 비용을 관리하는 것이 가능합니다. 예를 들어 GCE 를 STOP 해두면 하단과 같이 한달에 10GB 디스크 기준으로 $0.44 만 지출되면 나머지는 실제 과금되지 않고 GCE 인스턴스를 사용할 경우에만 1분 이후에 초당 과금으로 사용한 만큼만 과금됩니다.

참고적으로 GCP 의 경우에는 지속 사용 할인이라고 해서 별도 조치없이도 사용만하면 자동으로 최대 30% 할인을 해주는 구조를 가지고 있습니다. (이 부분은 나중에 다시 한번 자세하게 알아보도록 하겠습니다.)

이와같이 GCP 의 다양한 서비스 만큼 해당 서비스의 과금 방식과 특성이 있으며 이게 조금씩 달라서 이 부분은 사용해보고자하는 서비스별로 사전에 살펴보시고 조금만 고민해보시면 적절하게 비용을 지출하면서도 다양하게 테스트할 수 있는 방법을 찾으실 수 있을듯 합니다. 또한, 이를 통해서 가난한 개발자라고 해도 무료 크레딧인 $300 만으로도 충분하게 원하는 개발/테스트를 GCP 를 통해서 수행해보실 수 있습니다.


#2) 항상 무료 — free tier

이번에 좀 더 고민해보고 같이 공유해볼 부분은 하단과 같이 특정 조건이 존재하지만 계속적으로 무료로 사용할 수 있는 free tier 이며 무료 제품군 이라고도 합니다. 제약 조건이 있기는 하지만 조건만 맞는다면 GCP 에서 제한없이 계속해서 무료로 사용하고 테스트할 수 있는 오퍼입니다.

예를 들어서 기본적으로 VM 을 제공하여 다양한 테스트를 해볼 수 있는 GCE 는 Region 을 US 로 하고 머신 타입을 f1-micro 로 선택하시면 월 1개 인스턴스는 언급되어있는 것처럼 무상으로 계속 사용 가능합니다.(참고로 북 버지니아는 us-east4 입니다. US 라고해도 이 지역은 제외 입니다. ) 거기다가 HDD 30GB/월, 스냅샷 5GB/월에 북아메리카에서 모든 지역의 대상 위치로 네트워크 송신 1GB/월 까지 무상으로 제공되므로 간단한 개발/테스트는 사실 f1-micro 만으로도 충분히 가능하십니다.

f1-micro 머신 타입은 하단에 상세 설명이 있지만 0.2 vCPU/0.6 GB Memory 를 기본으로 제공하며 0.2 라는 수치가 작아보일 수는 있지만 이게 서버급이라(Intel Xeon) 개발/테스트 목적에서는 큰 이슈없이 활용 가능합니다. 또한, f1-micro 는 Busrting 이라는 기능을 제공하여 자동으로 일정 기간동안 추가적인 물리적 CPU 파워를 더 땡겨 쓸 수 있으므로 순간적이긴 하지만 충분한 성능이 필요한 테스트도 가능합니다.

https://cloud.google.com/compute/docs/machine-types

그런데 여기서 무상도 좋지만 US 라는 지역 제한이 싫고, 그래도 Asia 에 있는 region 에서 애플리케이션을 개발하고 테스트를 해보고 싶다면 Google App Engine(GAE) 을 선택하는 것도 좋은 대안이 될 수 있습니다.

GAE 의 경우 28 인스턴스 시간/일, Cloud Storage 5GB, 공유 Memcache 등이 free tier 에 포함되어서 이 조건내라면 무상으로 사용 가능합니다. (단, GAE standard 만 가능) 하루는 24시간인데 일당 28 인스턴스 시간이라 조금 이해가 안되는 부분이 있을텐데, 이 부분에서 28 인스턴스 시간이라는 의미는 GAE 인스턴스를 하나이상 사용할 수 있다는 의미입니다. 다시말해, 일당 4시간이긴 하지만 클러스터링이라던가 A/B 테스트 등도 다 테스트 해보실 수 있다는 것 입니다.

지금 설명드린 방식으로 애플리케이션 영역에 대해서는 GCE, GAE 를 가지고 free tier 로 비용 부감없이 개발/테스트를 해볼 수 있습니다. 다음단계로 실제 서비스 비슷하게 아키텍처를 꾸며 보려면 당연히 Database 가 필요해지며 그때는 하단과 같이 Cloud Datastore 를 한번 시도해보시기 바라겠습니다. 설명을 보시면 아시겠지만 1GB 의 저장소와 읽기 50,000회, 쓰기 20,000회, 삭제 20,000회/일이 무료구간이라 왠만한 테스트는 다 하실 수 있는 양을 제공하고 있습니다.

Cloud Datastore 에 대해서 조금 보충 설명을 하자면 애플리케이션을 위한 확장성이 높은 NoSQL Database 로 완전관리형 Database 입니다. 더 자세히 설명드리자면 자동 분할 및 복제 처리를 통해 자동으로 확장되는 가용성과 내구성이 높은 Database 입니다. 설명이 어렵죠? 조금 어렵게 설명했는데 사실 이런 어려운 부분은 고객이 고민할 필요없이 Google cloud 가 알아서 관리해주면서 애플리케이션 부하를 처리하고 ACID 트랜잭션, SQL 유사 쿼리, 색인 등 수많은 기능을 제공하는 Database 로 보면 됩니다. 또한, RESTful 인터페이스를 사용해 애플리케이션에서 손쉽고 간편하게 데이터에 액세스할 수 있습니다.

Cloud Datastore 에 대해서 어떻게 동작하고 어떤식으로 데이터를 넣고, 쿼리할 수 있는지가 궁금하시다면 일일이 설명드리기 보다는 하단의 가이드들을 참고해보면 도움이 될듯 합니다.

Quickstart
https://cloud.google.com/datastore/docs/quickstart

Getting started with the Google Cloud Datastore API
https://cloud.google.com/datastore/docs/datastore-api-tutorial

추가적으로 실제 운영환경이면 몰라도 개발/테스트 목적에서 저장소 1GB는 작은 수치는 아닙니다. 그래도 이보다 더 큰 저장소가 필요하거나 아님 개발/테스트의 목적이 애플리케이션에 대한 데이터 처리 보다는 분석에 조금더 집중된 형태라면 Google BigQuery 가 저장소를 10GB 까지 사용 가능하며 1TB 쿼리/월 까지는 무상으로 사용 가능하므로 좋은 선택지가 될 수 있을듯 합니다.

BigQuery 는 Google의 페타바이트급 규모의 저비용 완전 관리형의 분석을 위한 Data Warehouse 이며 서버리스 라고 부릅니다. 서버리스라는 것은 서버가 없다는 것이 아니라 관리할 필요가 없다는 것이고 그렇기 때문에 사용자가 익숙한 SQL로 데이터를 분석해 의미있는 정보를 찾는 데 집중할 수 있습니다. BigQuery 는 TB 는 초 단위로, PB 는 분 단위로 스캔할 수 있으며 방금 언급했던 Cloud Datastore 에서 데이터를 바로 로드할 수도 있습니다. (당연히 Google Cloud Storage(GCS) 로드나 API 사용등 다양한 방법을 추가적으로 제공 가능합니다.)

BigQuery 는 Data Warehouse 이기 때문에 당연히 OLTP 성 작업보다는 OLAP 성 작업에 적합하게 설계되어 있으며 ColumnIO 라는 컬럼형 스토리지 포멧을 통해서 쿼리 실행시에 필요한 열만 읽을 수 있어서 성능을 향상할 뿐만 아니라 비용도 절감할 수 있습니다.(BigQuery 는 저장소 비용과 쿼리시 참조하는 열 접근에 대해서만 요금을 부과합니다.) 보다 더 자세한 특장점이 궁금하신 분은 하단의 링크를 참고하세요.

https://cloud.google.com/bigquery/

(내용이 길어지는 것 같아 2부로 이어집니다.)

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

이정운 (Jungwoon Lee)

Written by

Technical engineer who dreams better future.

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