Google Cloud Platform (GCP) 를 현업에서 이용하는 케이스가 아니면 대부분 퍼블릭 클라우드를 공부하는 목적으로 이용하는 경우가 많을 것이다. 이 경우에는 1년동안 사용할 수 있는 $300 크레딧으로 클라우드를 충분히 즐길 수 있다. 1년이 지난다고 계정이 (유료로) 자동 전환되지 않기 때문에 필요 시에 유료 계정으로 전환해줘야 한다. 그대로 방치하는 경우에는 사용하던 모든 기능이 잠기기 때문에 아차하는 순간 소중한 데이터를 놓칠 수 있게 된다. 또한 1년이 지날 때 공식적으로는 유로로 자동 전환이 되지 않는다고 되어 있지만 아주 간혹 청구되는 경우가 있을 수 있다고 한다. - 고객센터에 연결해서 이런저런 과정을 거치면 환급받을 수 있겠지만 여간 귀찮은 일이 아닐 수 없겠다.아무튼 이런..
@아래 내용은 TPU quota 가 신청되어 있어야 사용 가능한 부분입니다. 참고 하시기 바랍니다.TPU 가 일반에 공개된 것과 비슷한 시기에 Google Compute Engine (GCE) 에도 TPU 메뉴가 생성되었다. 와우, 이제 우리의 인스턴스 내에서 TensorFlow 를 통해 기계학습을 진행할 때 TPU 를 지정해서 사용할 수 있게 된 것이다. 이 부분은 CloudML 과는 전혀 상관이 없으므로 오해하지 않도록 한다. Google Cloud Platform (GCP) 의 모든 기능이 그러하듯이 Cloud TPU 도 API 사용 설정을 통해 기능을 활성화시켜야 사용할 수 있다. 기능을 활성화하면 잠시 후 아래와 같은 메뉴를 볼 수 있다. 일단 TPU 노드를 생성해보자. (빠른 시작 사용을 통해..
구글클라우드 안에서 우리는 CPU, GPU, TPU를 사용할 수 있다는 이야기를 항상 들어왔다. 이세돌 9단과 알파고의 경기때부터 TPU는 놀라운 성능을 보여줬지만 정작 일반에 공개되어 있지 않았기 때문에 기계학습을 다루는 분들께는 사실 그림의 떡이나 마찬가지였다.- 일부 기업은 별도의 신청 프로세스를 통해 이미 사용할 수 있었다. 아무튼, 그러던 TPU가 드디어 일반에 공개되었다. AutoML과 마찬가지로 다소 까다로울 수 있는 심사 과정이 있지만 사용해볼 수 있다는 사실에 많은 엔지니어가 벅차오를 것으로 기대된다. 자세한 설명은 아래 링크로 대체한다. https://cloud.google.com/tpu/ 제일 해보고 싶은 것이 TF 예제를 TPU로 돌렸을 때 K80, P100 대비 얼마나 차이나는지 ..
이전 편까지 우리는 CloudML 이 무엇인지 살펴보고 모델을 클라우드에 던지고 결과를 받는 등 CloudML 전체 시나리오에 대한 이야기만 했다. 이번 글에서는 ML job 의 분산학습 아키텍처를 살펴보고 이해하도록 한다. 함께보면 좋은 글CloudML - 개념 CloudML - 기본 CloudML - 실전 심화Scale tierCloudML 은 training 을 돌릴 서버의 사양을 조정할 수 있는 Scale-tier 옵션을 제공하는데 그 안에는 BASIC, STANDARD_1, PREMIUM_1, BASIC_GPU 그리고 CUSTOM 까지 총 다섯가지 종류가 있다. CUSTOM 을 알아보기 전에 다른 네 가지 방식의 사양을 보자. Cloud ML Engine scale tier Compute Eng..
앞에서 CloudML 에 대한 이야기를 많이 했는데 사실 일반 VM instance (Compute Engine) 로 머신러닝을 이용하는 것에 비해 무엇이 좋은지 자세히 다루지 않았다. 이번 글을 통해 몇 가지 장점을 살펴보도록 하자. 비용아마도 가장 큰 장점이 되겠다. 다른 작업은 몰라도 머신러닝/딥러닝은 고사양 시스템을 필요로 하며 프로젝트에 따라 훈련시간이 굉장히 오래걸리기도 한다. GCE 는 사용하지 않을 때 중지하는 것이 비용을 절약할 수 있는 방법인데 딥러닝 training 이 언제 끝날지 알 수 없기 때문에 인스턴스를 무작정 켜놓을 수밖에 없다. 고사양 시스템으로 설정된 인스턴스를, 그것도 GPU 가 장착된 머신이라면 가격은 생각보다 끔찍할 수 있다. 반면 CloudML 은 인스턴스 없이 t..
앞서 CloudML 의 개념과 기본적인 사용 방법에 대해서 살펴보았고 이번에는 조금 더 실전에 가까운 글을 발행하도록 한다. 기본편에서 로컬 테스트와 클라우드 테스트를 진행했지만 코드의 내용이 단순히 TensorFlow 의 버전을 확인하는 수준이라서 실전에서 사용하려면 막막하거나 여러 장애 요소가 숨어있다. 이번 글에서는 TensorFlow 홈페이지에 있는 샘플 예제 실습을 통해 CloudML 의 울렁증을 극복할 수 있도록 한다. 예제코드 준비 우선 샘플 예제 사용을 위해 TensorFlow 소스코드를 다운로드 받도록 하자. 다운로드 방법은 무엇이든 상관없고 여기서는 GitHub 을 통해 받는 것으로 한다. 소스코드를 받았으면 이제 샘플 예제를 살펴보아야 하는데 예제에 대한 자세한 설명은 홈페이지를 참고..
새로운 버전의 datalab 이 나오면 많은 것들이 변경이 된다. 이를테면 지원하는 python 버전이라던가, tensorflow 같은 모듈의 버전이라던가 말이다. 당연히 최신 버전이 안정성 측면에서도 좋고, 새로운 모듈을 사용할 수 있다는 점에서도 매력적이기 때문에 업그레이드를 하려고 하는데 방법을 알기 쉽지 않다. 우선 웹 콘솔에는 그러한 기능이 보이지 않는다. 사실 제일 먼저 떠오르는 아이디어는 datalab 인스턴스를 새로 만드는 것인데, 기존에 작성했던 notebook 에 마음이 쓰인다. 그간 작성한 notebook 이 몇 갠데 새로 인스턴스를 만들라니! 뭐 이것도 노가다(?)로 하나씩 옮기면 되긴 하겠지만 말이다. 그래서 여기 datalab 버전을 업그레이드 하는 조금 더 스마트 한 방법을 소..
Google Cloud Platform (GCP) 가 막강한 이유중에 하나가 이미 잘 만들어진 API 를 기반으로 제2, 제3의 서비스를 손쉽게 만들 수 있기 때문이겠다. 많은 전문가들의 이야기처럼 지금 세상은 유용한 API 에 대해 실제 내부 동작을 몰라도 그 서비스를 wrapping 하는 모듈을 만들어 장사를 하는 세상이다. 이렇듯 누구나 쉽게 사용할 수 있도록 소프트웨어를 API 형태로 배포해서 서비스하는 것을 보통 SaaS (Software as a Service) 형태라고 칭하는데, 이번에는 GCP 에서 제공하는 대표적인 SaaS 중 하나인 speech api 에 대해 살펴보고 사용해보도록 하겠다. - 앞서 이야기한 SaaS 에 대해 설명하는 재미있는 링크를 여기 첨부하도록 한다. 개념을 잡는데..
Container Engine 사용을 멈출 필요가 있을 때가 있다. 대부분이 테스트를 위해 사용하다가 바쁜 일정 등으로 잠시 서비스를 꺼둘 때 일 텐데 Google Cloud Platform (GCP) 콘솔에서는 어떤 이유에서인지 관련된 기능을 찾아보기 힘들다. 더 솔직히 이야기하면 설정은 있지만 설정을 할 수가 없다 (?) 이런 말장난을 하는 이유는 Container Engine 은 애초에 종료 ( Terminate 혹은 Stop ) 의 개념이 없기 때문이다. 단순하게 노드 풀의 사이즈를 주지 않으면 그게 곧 종료를 나타내는데 콘솔에서는 이 설정이 불가능하다. "크기는 양의 정수여야 합니다." - 구글님, 0 도 포함시켜 주시죠..?하지만 걱정할 필요 없다. 왜냐하면 GCP 는 이미 터미널 기반으로 모..
Google Cloud Platform (GCP) 에서 제공해주는 notebook 인 datalab 은 정말 편한 개발 도구라고 할 수 있다. 어디서든 개발이 가능한 환경을 제공해 줄 뿐만 아니라 Markdown 을 지원함으로써 주석보다 훨씬 더 나은 효과를 기대할 수 있게 해주는데 딱 한 가지 아쉬운 점이 있다. 그것은 바로 활용성이다. 노트북 자체가 교육 용도나 소규모 프로젝트에 많이 사용되다보니 콘솔에서 실행을 해야 하는 다른 것들과 호환이 어렵다는 점이다. 예를 들어, datalab 에서 개발되는 스크립트가 crontab 에서 주기적으로 돌아야 하는 Python 스크립트이거나, CloudML 을 통해 기계학습을 수행해야 하는 코드 등이 있겠다. 사실 이런 문제는 비단 datalab 뿐만 아니라 J..
Container Engine 의 기본 개념에 대해서 살펴보았고 이번에는 Google Cloud Platform (GCP) 에서 Container Engine 을 사용하기 위한 준비단계에 대해서 다뤄보도록 한다. 과정중에 Kubernetes 의 내부를 간단한 다이어그램을 통해 살펴볼 것이다. 우선 Cluster 라는 것을 생성하기 위해 다음 화면과 같이 좌측 메뉴에서 [Container Engine] 카테고리를 선택하도록 하자. [컨테이너 클러스터 만들기] 메뉴를 통해 클러스터를 생성하도록 한다. (여러 개의 Container 를 묶어서 하나의 시스템처럼 동작하도록 하는 개념을 Container cluster 라고 부른다. cluster 라는 단어는 범용적으로 사용되기 때문에 이해하는게 어렵지 않다.) ..
Google 의 Container 기술 구글은 10년 이상 전부터 리눅스 컨테이너 기술을 관리해 오면서 3개의 Container management systems 을 구축 했는데, 통합 Container Cluster Manager Borg 로 시작해서 차세대 Container Cluster Manager Omega, 그리고 이제부터 살펴볼 Kubernetes (보통 쿠버네티스 라고 읽음)가 있겠다. Kubernetes 는 오픈소스 프로젝트 이기 때문에 GitHub 에 소스가 공개되어 있고 필요하다면 contribute 하거나 Apache License 2.0 에 맞게 사용하면 된다. 사실 Kubernetes 를 사용하기 위해서는 가상화 기술이나 Container 에 대한 최소한의 지식이 필요하기 때문에..
앞서 CloudML 개념에 대해서 살펴봤고, 이제 본격적으로 사용하는 방법에 대해서 기술하고자 한다. 우선 모든 예제는 우분투 16.04 에 Cloud SDK 를 설치한 환경에서 진행 되었다. CloudML 의 모든 것이 gcloud 명령어를 통해 진행되기 때문에 OS 의 환경에서 오는 차이는 없을 것이다. 이번 글에서는 CloudML 의 기본으로, 간단하게 Google Cloud Platform (GCP) 에 CloudML 서비스를 맛보는 것으로 마무리 하겠다. 사실 CloudML 자체가 너무 거대한 서비스이기 때문에 하나의 글에 모두 담는다면 처음 접하는 입장에서 스크롤이 상당한 압박으로 다가올 것으로 예상된다. 조금 더 우아하게 사용하는 방법이나 고급 스킬에 대한 부분은 별도의 포스팅으로 하는게 좋..
요즘은 콘퍼런스나 세미나에 다녀보면 머신러닝에 대해 언급하지 않는 곳이 없다. 하물며 비IT 쪽으로 가도 4차 산업혁명이라며 여전히 언급되는데, 그러다보니 다양한 분야의 사람들이 이 분야로 뛰어들고 있는 것이 현실이다. 하지만 그간 vim 만 돌아가면 되는 낮은 사양의 PC로도 문제 없었던 low 레벨 개발자들에게 이 분야는 잔인하기 그지없다. 머신러닝 분야에서 뭔가 해보려면 GPU 는 아니더라도 최소한 적당히 좋은 CPU 가 필요하기 때문인데, 내 경우가 그랬다. 구식 i3 cpu 로 할 수 있는 것이라고는 TensorFlow 에 첫 번째 예제로 등장하는 MNIST 가 전부였으니까. 다른 오픈소스를 돌려보기 위해 회사에서 몰컴(?)을 해보기도. 여튼 이런 환경에 단비 같은 소식이 있다. 바로 Googl..
로컬 PC 에 GCP SDK 를 설치하고 datalab 을 인스톨하면 쾌적한 환경에서 머신러닝 기술을 사용할 수 있는데 한가지 아쉬운 점이 있다. 기본적으로 datalab 의 연결은 localhost (127.0.0.1) 만 사용된다는 것. datalab connect 옵션으로 변경 가능한 부분은 상당히 제한적이고, 그나마 port 를 변경할 수 있는 정도이다. localhost 로의 연결은 일반적인 경우에는 문제 될 것이 없지만 내 경우에는 좀 특수한 케이스라 로컬 PC (1) 에 datalab 을 띄우고 로컬 PC (2) 에서 접근을 희망하는 케이스가 되겠다. (아마도 보안적인 요소 때문에 localhost 만 사용할 수 있도록 고정되어 있는 듯 하지만.)여튼, 다른 로컬 PC (2) 에서도 접근이 ..
Google Cloud Platform 은 기본적으로 web 에서 Cloud Shell 을 제공하지만 앞에서 살펴본 것 처럼 Cloud Shell 자체에 대한 사양이 높지가 않다. 또한 GCP 는 은근히 Cloud Shell 에 대한 의존도가 높기 때문에 Web에서 기본 제공되는 Cloud Shell 로 한계가 있겠다. 의존도가 높은 이유에 대해서 깊게 들어갈 필요가 없지만 가장 간단한 이유는 다양한 기능을 웹보다 터미널에서 빠르게 접근할 수 있다는 점이고 인터넷에 수많은 예제가 터미널 기준으로 설명되어 있기 때문이겠다.자, 이런 저런 이유로 GCP 는 사용자의 로컬 PC 에서 Google Cloud 의 모든 기능을 사용할 수 있도록 하기 위해 SDK 를 제공한다. 사실 이게 핵심이다. 이렇게 SDK 가..
Google Cloud Platform 의 매력을 뽑자면 빅쿼리, CloudML, 기계학습 등 여러가지가 있겠지만 그 중에서도 사용자가 가장 쉽게 접근할 수 있는 Vision API ( Google Cloud 기계학습 API ) 에 대해서 다뤄보도록 한다. 사실 Cloud Platform 을 사용하면서 아쉬운 점이 한글화 된 문서가 부족하다는 점이고 그것이 곧 사용장벽을 높게 만든다는 생각이 든다. 또한 어색한 번역 문서도 문제다. 여하튼, 이 글이 누군가에게 정말 쉬운 문서가 되었으면 하는 바람으로 최대한 쉽게 작성해본다. (그리고 대부분의 Vision API 를 설명하는 블로그가 node.js 기준으로 되어 있어서 내게는 쉽지 않았다.)우선 Vision API 를 사용하기 위해서 화면의 좌측 리스트 ..
어쩌면 가장 중요할 수도 있는 결제 메뉴에 대해서 살펴볼 시간이다. 많은 사람들이 Cloud 를 사용하면서 가장 걱정하는 부분이 사용자가 인지하지 못하는 사이에 사용량이 발생해서 청구되는 돈이겠다. 실수로 인스턴스를 종료하지 않았다던지, 버킷을 유지하고 있다던지 등등이 사유가 있겠다. 이런 부분에 대해서 Google Cloud 는 알림 기능으로 꽤 잘 대응하고 있으므로 걱정하지 말고 사용해도 되겠다. ( Amazon web service 도 마찬가지인 부분이다.)우선 결제 메뉴에 진입해서 화면을 살펴보도록 하자.개요에서는 현재 크레딧에 대한 상태와 결제 계정에 대한 정보를 한눈에 살펴볼 수 있겠다. Google Cloud 는 결제를 계정별로 하거나 프로젝트 별로 할 수 있다는 점을 숙지해놓으면 좋다. 우..
Google Cloud Platform 저장소(Storage)에 대해서 살펴볼텐데, 여기 메뉴에는 딱히 어려운게 없다. "난 저장소를 사용할 일이 없는데?" 라고 생각할지 모르지만 여기 저장소는 Cloud 에 다른 compute engine 이나 특히 CloudML 에서 매우 유용하게 사용되므로 익혀두는 것이 좋겠다. 저장소를 사용하기 위해서는 화면 좌측 메뉴에서 Storage 에 접근하도록 한다.그럼 세 개의 메뉴가 보일텐데 설정은 Storage 에 access 할 수 있는 ID 를 제공하고 API 를 설정할 수 있는 메뉴를 제공한다. 전송은 Amazon S3(Simple Storage Service) 나 기타 서버와의 자료 전송을 위해 사용되는 메뉴다. 가장 중요한 브라우저는 기본 페이지로서 버킷을 ..
앞서 Cloud Shell 에 대해서 주섬주섬 살펴봤는데, 잠깐 요점을 remind 하면 Cloud Shell 은 Google Cloud Platform 을 터미널에서 사용할 수 있도록 도와주는 web Shell 이다. 대략 0.6G 의 디스크에 낮은 스펙의 f1-micro 인스턴스로 제공되기 때문에 그 안에서 기본 제공되는 gcloud 명령 이외에 무언가를 개발하거나 테스트하기에는 다소 무리가 있겠다.그런데 최근 datalab 이라고하는 막강한 interactive tool 을 알게되어 잘 사용하고 있었는데, 더 편하게 사용하고 싶어서 datalab 을 백그라운드로 돌리는 과정에서 의문이 시작되었다. 일단 Cloud Shell 에서 datalab 을 백그라운드로 돌리기 위해서 아래와 같은 명령어를 사용..
- Total
- Today
- Yesterday