
리눅스 시스템은 시리얼 포트를 통해 모니터 출력을 제공한다. 직렬 포트로 직역해서 사용하기도 하는데 대충 아래 그림과 같이 생겼다. 아마도 예전 CRT 모니터쯤에서 흔히 봤음직한 포트인데, 이 단자를 통해 리눅스 시스템의 터미널로 접근이 가능하다. putty나 SecureCRT 같이 SSH, Telnet을 지원하는 터미널 에뮬레이터에는 serial port옵션도 제공을 하니 많이들 사용하는 방법이다. 시리얼 포트는 기기에 일반적인 통신이 불가능한 상태에서 사용하게 된다. 보통 공장초기화 상태의 기기나, sshd, telnetd 같은 데몬이 정상적으로 서비스되고 있지 않아서 기기에 접속이 불가능한 경우에 사용하면 용이하겠다. 클라우드로 세상이 바뀌어가면서 시리얼 포트는 점점 잊혀갔지만 여전히 필요한 순간들..

2019년 11월 GA 된 Cloud Run에 대한 이야기를 해볼까 합니다. GCP에는 이미 서버리스에 한축을 담당하는 Cloud Functions가 GA 되었음에도 여전히 부족한 게 사실입니다. 자체적으로는 꽤 쓸만할지 모르겠으나 타사의 서버리스를 사용해본 유저라면 여러 가지로 불편한 게 사실이죠. 더욱이 앞질러가고 있는 서비스(이를테면 AWS)를 흉내 내는 듯한 모양새는 어쩔 수 없는 후발주자의 모습이었습니다. - 관련 글 : Cloud Functions, 이래서 베타다 그러던중 Cloud Next 2019에서 Cloud Run이 소개되었고 서버리스의 새로운 장을 여는 느낌이었습니다. 컨테이너 기반으로 동작하기 때문에 이식성이 좋고 기존에 도커와 같은 툴에 익숙하다면 진입장벽이 한없이 낮습니다. Cl..

Google Cloud를 사용하다 보면 배포나 컴퓨팅 제어 등 여러 가지 이유로 터미널에서 gcloud SDK를 사용하게 됩니다. gcloud에 모든 명령어는 프로젝트 단위로 연결이 되기 때문에 개발/스테이징/상용과 같이 여러 개의 프로젝트를 동시에 사용하는 경우에는 터미널에서 프로젝트를 전환하며 명령어를 사용해야 하는데요, 이번 글에서는 새로운 프로젝트를 시작할 때 그 환경을 gcloud에 연결하는 방법과 전환에 대해서 알아보겠습니다. 일단 제 GCP 계정 안에는 다음과 같이 두 개의 프로젝트가 이미 등록되어 있는데 신규 프로젝트를 생성하는 부분부터 살펴보겠습니다. 우측 상단에 NEW PROJECT 버튼을 누르고 프로젝트 이름을 blog-project로 입력한 이후에 CREATE 버튼을 통해 신규 프로..

이번에는 GCLB( Google Cloud Load Balancer )에 대해서 살펴보는 시간을 갖겠습니다. 일반적으로 LB는 서비스로 유입되는 부하를 분산시키는 역할을 수행합니다. AWS, Google, Azure 퍼블릭 클라우드 3사 모두 해당 기능을 제공하지만 가격 등의 이유로 HAProxy 등을 가상 머신에 설치해서 LB 역할로 사용하기도 합니다. 하지만 이 경우에는 머신의 정해진 스펙 때문에 급격하게 증가하는 트래픽에 빠른 대응이 어렵다는 단점이 있겠습니다. 또한 조직의 누군가가 서버를 관리해야 하는 만큼 고가용성 보장이 어렵습니다. LB는 프러덕트 최전방에 있는 만큼 절대적으로 고가용성이 보장되어야 하는데요, 이런 서비스일수록 클라우드에서는 Managed service, 여기서는 GCLB를 사..

이번에는 GCP( Google Cloud Platporm )의 IaaS를 담당하는 Compute Engine의 인스턴스, 인스턴스 그룹, 인스턴스 템플릿, 이미지의 상관관계에 대해 알아보도록 하겠습니다. 이 과정이 끝나고 나면 GCLB( Google Cloud Load Balancer )까지 자연스럽게 연결이 될 겁니다. 하지만 LB에 대한 건 다음 글에서 살펴보도록 하고 이번 글은 인스턴스에 초점을 맞춰보겠습니다. # 미리 보기 아래 이미지를 떠올리면서 글을 읽으시면 도움이 됩니다. 결국 이미지로 인스턴스 템플릿을 만들고, 템플릿으로 그룹을 생성해서 Auto Scaling시에 사용한다는 건데 여기 인스턴스를 Source로 다시 이미지를 생성할 수 있다는 것이 골자입니다. 그럼 시작합니다. # 인스턴스 ..

GCP( Google Cloud Platform )에는 두 가지 타입의 인스턴스 그룹이 있습니다. 이번 글에서는 아래 두 가지 인스턴스 그룹에 대해서 이야기해보도록 하겠습니다. - New managed instances group ( MIG ) - New unmanaged instances group GCP 콘솔에서 인스턴스 그룹 메뉴의 위치는 Compute Engine에 VM instances 바로 밑에 있습니다. 여기서 Create instance group를 선택하면 아래와 같이 인스턴스 그룹을 생성하는 화면이 나옵니다. 인스턴스 그룹이 필요한 이유는 AWS와 마찬가지로 이종의 인스턴스 간 부하분산이 주된 이유가 될 텐데요. 일단 MIG( Managed Instances Group )에 대해서 살펴..

요즘은 사이드 프로젝트 하나를 하더라도 기획자와 개발자 몇 명이 모여서 팀을 이루는 경우를 많이 보는데요, 프론트, 백엔드, 거기에 데이터 분석까지 하려고 하면 역시 클라우드를 사용하는 것만큼 유리한 게 없겠죠? 이번에는 GCP( Google Cloud Platform )에 사이드 프로젝트 팀원들을 초대하고 함께 개발할 수 있는 환경을 꾸리는 방법에 대해서 알아봅니다. 혹시 GCP에 가입되어 있지 않다면 여기 링크를 참고하셔서 가입하시면 되겠습니다. 우선 GCP에 접속해서 팀원들과 함께 진행할 프로젝트를 생성해야 하는데 아래 그림처럼 화면 상단에 프로젝트를 선택합니다. 버튼을 클릭하면 아래와 같이 프로젝트를 변경하거나 새 프로젝트를 생성 할 수 있는 팝업이 출력됩니다. GCP는 폴더라는 개념 하위에 프로..

Cloud SDK는 구글 클라우드 콘솔(웹 브라우저 화면)에서 행하는 거의 모든것들을 터미널에서 가능하게 해줍니다. 어쩌면 110% 이상 가능할지도 모르겠네요. 아직 콘솔에 붙지 않은 일부 알파 버전은 터미널에만 존재하는 경우도 있으니까요. 더욱이 GUI 버그도 무시할 수 없고, 스크립트로 파이프라인을 구성하는 등의 무언가를 하기 위해서는 SDK는 분명 필수 입니다. 특히 인스턴스에 SSH 접속 할 때는 굉장히 편합니다. 물론 아래처럼 콘솔에서 브라우저를 통해 접속도 가능하지만 다른건 둘째치고 반응속도가 너무 느려서 타이핑하는데 다소 불편함을 감수해야 합니다. 이런 불편함은 SDK를 통해 해결 가능한데요, SDK를 설치하고 인증과정부터 SSH접속까지 알아보도록 하겠습니다. SDK설치 과정은 여기 링크를 ..

4월에 Next'19 Cloud Hero를 놓쳐서 아쉬워하던차에 5월에 진행된 I/O에도 Cloud Hero 게임이 오픈되었다. 뒤늦게 알아차려서 7일은 넘어갔지만 모든 날짜에 진행되는 게임 내용은 같다. 쉽게 이야기하자면 점수가 각 날자별로 다르게 측정된다고 생각하면 된다. 게임은 전세계에 있는 모든 사람들과 경쟁하는 시스템이고 퀵랩(Qwiklabs)에서 진행된다. 다만 일반적인 링크가 아닌 Cloud Hero 게임을 위한 링크가 제공되고 그 위에서 미션을 진행하는 시스템이 되겠다. 그 미션은 아래와 같다. 총 세 가지 미션이 주어지는데 모두 Google Cloud Platform 위에서 서비스를 만들어가는 것인데 기본적인 것은 GCS(Google Cloud Storage)를 생성하고, 생성한 stor..
지난번 글( 서버리스 Cloud Functions 사용하기 ) 에서 Cloud Functions 의 전반적인 내용에 대해서 훑어보았다. 작은 모듈 단위의 프로그램을 서버 구동 없이( 엄밀하게는 사용자가 신경 쓸 필요 없는 / 신경 쓸 수 없는 ) 사용할 수 있는 서버리스의 장점에 대해서 이야기를 했었는데 이번에는 그 한계에 대해 잠시 살펴보고 비판해보도록 하자. 이렇게 비판하는 정보를 공유하는 이유는 한계를 모르는 상태로 Serverless 서비스를 운영하는 것은 매우 위험하다고 생각하고 있기 때문이다.Google Cloud Functions 은 Serverless 의 역할을 충실히 수행하며 작은 모듈 단위를 클라우드 위에서 동작 시키는데, 타사의 FaaS 대비해서 무엇이 좀 많이 부족하다. 그렇기 때문..
이번에는 Cloud Functions 에 대해서 살펴보는 시간을 갖도록 한다. 기능은 단어 그대로 클라우드 위에 함수를 등록하고 트리거 ( Trigger )를 걸고 사용하는 개념이 되겠다. 쉽게 이야기해서 이벤트가 발생되면 등록해놓은 함수가 동작하는 방식이겠다. 이제 더 이상 작은 모듈을 위해 GCE 를 운영할 필요가 없겠다. Cloud Functions 은 서버리스로 동작하니까. AWS 에서는 Lambda 가 같은 개념이 되겠다. 아무튼, 서비스목록에서 Cloud Functions 를 선택해서 기능을 직접 사용해보도록 하자. 한국어로 봤을 때는 "Cloud 기능" 을 확인하면 된다. ( 근데 왜 아직도 베타인지? 는 아래쪽에서 추측해보도록 하자. )Cloud Functions 메뉴에 최초 진입시에는 A..
개인적인 업무 자동화를 위해 GCE 위에 python crawler 를 하나 개발하고 있는데 이게 영 잘 안되는거다. 처음에는 selenium 을 잘못 사용했나 싶기도하고 HTML 을 잘못 파싱했나 싶은 의심도 들었지만 해당 코드가 Local PC 에서는 정상적으로 동작 하는 것이 확인되었다. 무엇이 문제였을까? 문제를 확인하기 위해 에러 포인트 위치에서 아래와 같이 selenium 의 스냅샷 함수를 이용해서 페이지의 실제 화면을 확인해보았다.browser.get_screenshot_as_file('error.png') 확인결과 놀랍게도 아래와 같은 내용이 확인되었다. 왜 계정이 이렇게 되었는지는 알 수 없다. 아니면 Gmail 자체적으로 클라우드에서의 접근을 막고 있는지도 모른다. 일단 로컬에서 htt..
Google Kubernetes Engine (GKE) 관련해서 앞서 2개의 글을 통해 대략적인 이해를 할 수 있었을 것으로 예상된다. 이번 포스팅에서는 더 깊은 이해를 위해 터미널을 통해 실제 앱을 kubernetes 로 배포하고 업데이트를 진행 해보자. 이 예제의 내용은 qwiklabs - Hello Node Kubernetes 를 통해서도 확인할 수 있다. 아래 예제는 모두 클라우드 셸에서 진행한 것이지만 구글 클라우드 SDK 가 설치된 다른 환경에서 진행하더라도 무리는 없다.Node.js 애플리케이션 생성우선 실습에서 사용하는 간단한 Node.js 앱을 작성해보자. 코드는 아래와 같다. // server.js var http = require('http'); var handleRequest = f..
firebase 는 우리의 애플리케이션에 다양한 로그인 방식을 간편하게 붙일 수 있도록 돕는다. 보편적으로 많이 사용하는 이메일 주소를 통한 로그인이나 제휴 ID 제공업체를 통해 로그인하는 방법을 예로 들 수 있는데 아래 화면처럼 다양한 방식을 제공한다. 애플리케이션에 로그인을 붙이기 위해서는 이중에서 사용하고자 하는 제공업체를 선택해서 사용 설정만 ON 해주면 끝이다. 여기 예제에서는 Google 로그인을 사용해보도록 한다. 사용 설정을 활성화 했으면 이제 코드로 구현을 해야 할 텐데 그 예제 샘플은 아래 링크에서 모두 확인이 가능하다. 거의 복사&붙여넣기만 하면 바로 사용할 수 있는 수준이다. https://firebase.google.com/docs/auth/?hl=ko firebase 의 모든 기..
firebase 는 실시간 데이터베이스와 Cloud Firestore 두 가지 타입의 저장소를 제공한다. 현재 (18.04.14) 기준으로 firestore 는 베타 기간이고 공식 문서에 따르면 아직 안정성은 실시간 데이터베이스에 비해 떨어질 수 있다고 하니 상용으로 운영할 생각이라면 여러가지 상황을 고려해야겠다. 하지만 그 강력함을 보면 사용하지 않을 이유가 있을까 싶다.일단 두 종류의 데이터베이스에 대한 비교는 아래 페이지를 통해 확실하게 알 수 있다. https://firebase.google.com/docs/firestore/rtdb-vs-firestore?hl=ko여기서 우리는 node.js 기반으로 firestore 를 사용해 보도록 한다. 우선 firebase 에서 제공되는 데이터베이스는 모..
앱/웹 애플리케이션을 만들 때 우리가 애플리케이션 기능 개발에만 집중할 수 있도록 인증/저장소/분석 등 백엔드의 부가적인 것들을 몽땅 처리해주는 파이어베이스 (Firebase) 서비스를 시작해보자. 파이어베이스는 클라우드 데이터베이스로 시작해서 2014년 구글에 인수되었다. 단순히 구글의 인수 사실만 보더라도 얼마나 대단한 플랫폼인지 가늠할 수 있다. 더욱이 우리가 한참 공부하고 있는 Google Cloud Platform (GCP) 위에서 돌고 있는 서비스인만큼 연동도 손쉽기 때문에 여러가지 다양한 용도로 사용이 기대된다.바로 firebase.google.com 로 접속해서 내용을 살펴보면 되겠다. 주소로 접속하면 아래와 같은 화면을 볼 수 있다. 시작하기 버튼을 통해 접근해보자.구글 계정으로 로그인해..
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..
- Total
- 1,667,903
- Today
- 250
- Yesterday
- 748