ACE 스터디잼 라이브 요약 발췌

  • 세션 일자 : 2020년 1월 30일 19시~20시
  • 세션 진행 : 박기택 (Instructor Google Cloud Platform -APAC)
  • 세션 다시보기 : 유튜브 일부 공개(현재는 비공개)

안내 : 스크립트 요약 발췌 및 공개를 허락 받았음을 알립니다.

우측 하단 검은 박스로 박기택 님의 초상권 지킴

자기소개

  • Keetaek Park(박기택)
  • Instructor Google Cloud Platform -APAC
  • LinkedIn : Keetaek Park

기술적인 질문이 있으면 언제든지 물어보셔도 된다. 가능한 답변 드리겠다.

자신있게 연락처 공개하는 이유는 천명께 알려드려도 세분께 연락 오기 때문.

(메일 주소도 공개하셨으나, 만일의 경우에 대비하여 지웠습니다. 링크드인 통해서 물어보시면 될 것 같습니다.)

Agenda

  • Why get Google Cloud Certified?
  • Google Cloud Certification OverView (10분)
  • Certification Preparation Resources(20분)
  • Practice Exam Question Review(20분)
  • Q&A(10분)

Why get Google Cloud Certified?

  • Gain industry recognition! (많은 이들의 부러움)
  • Validate your technical expertise! (실력 확인, 자격 인증)
  • Take your career to the next level!(커리어에 도움)
  • Wear cool Swag! (선물 드립니다.)

아키텍트나 데이터 엔지니어 같이 클라우드 관련된 수요가 많다.

조사해보니, 전세계에서 Cloud Architect 자격증 가진 분들이 가장 높은 연봉을 받더라. 나중에 연봉 협상하실 때 도움 되실 것이다.

두번째는, Solution architect와 데이터 엔지니어가 링크드인에서 가장 미래지향적인, 수요 많을 직업으로 선정되었다. 계속 IT업종에 계실 분들은 자격증 따는 게 도움될 것 같다.

선물 드린다. 저도 받았는데 따뜻하고 질감도 좋다.

  • 파란색 점 : Coursera.
  • 노란색 점 : Qwiklabs.
  • 초록색 점 : Classroom training. GCP강사가 회사에 직접 찾아가서 강의해준다.(유료)

ACE와 Professional의 차이를 굉장히 많이 물어보셨는데.. 

기본적으로 IT업계에서 3~5년 정도 일하신 분들은 PCA에 도전하셔도 좋을 것 같고, 나는 클라우드가 처음이다, IT쪽이 생소하다 하시는 분들은 ACE에 도전하셔도 좋을 것 같다.

클라우드나 GCP가 처음인 분들은 ACE 도전하시고 다음엔 PCA를 도전 권장드린다.

ACE와 PCA의 가장 큰 차이는 Business Requirement가 있느냐 없느냐의 차이

  • PCA는 case study가 주어진다.
  • ACE는 case study가 없어서, 기술적인 부분만 집중해도 된다.

제가 공부하는데 도움이 될만한 자료를 정리한 링크를 하나 만들었다. 

http://bit.ly/StudyJamResources

What to expect : certification exam details

  • 객관식, 다지선다.
  • 서울의 몇군데 시험장소에 가서 컴퓨터로 응시
  • Closed Book(책X, 인터넷X)
  • 할인 쿠폰(20%) 제공

Q. 쿠버네티스 자격증을 딸까 구글 자격증을 딸까 고민이 됩니다. 구글은 코세라에 쿠버네티스 강좌도 있던데 쿠버네티스 자격증도 있나요?

A. 따로 없습니다. 쿠버네티스 자격증은 따로 없는데, ACE 자격증과 PCA 자격증에서 쿠버네티스에 대한 개념을 물어볼 수 있습니다. (쿠버네티스)관련 내용도 공부하시면 도움 될 것 같습니다. 

Q. 저 곧 못 보는데 (이 영상)따로 저장되지 않죠?

A. 따로 메일로 물어보시면 답해드리겠습니다.

Choosing where to store data on GCP

Choosing where to store data on GCP

지금부터 20분동안 간단한 기본 개념 설명 드리겠다.

GCP는 실제로 제품이 100개 넘게 있고, 저도 하나하나 다 알 수가 없다. 너무 많아서. 그 중에 중요한 제품들만 정리해보겠다. 

데이터 유형에 따라 적절한 제품을 선택해야 한다.

  • Structured Data : 데이터가 잘 정렬되어있다. (예: 행과 열로 이루어진 표.)
  • Unstructured Data : 데이터가 정렬되어 있지 않다. (예: 이미지, 비디오, 오디오, 텍스트..)

Unstructured Data

Unstructured Data가 있으면 Cloud Storage가 적절한 선택이다.

많은 분들이 Datalake 사용하시는데, GCP에서도 Cloud Storage 사용하기 적절하다.

데이터 사용 주기에 따라 할인을 해드린다.

  • 한달에 한번 사용한다 : Nearline Class
  • 분기에 한번 사용한다 : Coldline Class
  • 1년에 한번 사용한다 : Archive Class (New!)

Structured Data

Structured Data는 두개로 나눌 수 있다. 

서비스를 제공한다고 가정해보자.

홈페이지에서 비행기 티켓을 판다. 이 고객의 구매 정보를 저장하려면? : Transactional Worklaod

데이터를 단순 저장하는건 의미가 없다. “데이터를 보니 이코노미석에 관심이 많네?” 분석을 하려면 : Data analytics Workload

Transactional data

Transactional data는 언제나 엉망진창, 원천 데이터(Raw data)는 언제나 엉망진창이다.

중간에 null값도 있고, 데이터 타입도 안 맞고.. 그래서 바로 분석하는데 어려움이 있다.

Transactional data를 복사하고, 복사하는 과정에서 정제하여 ETL이라는 과정을 거쳐 OLAP라고도 부르는 Data 애널리틱스 디비에 저장한다. 

Transactional data는 SQL과 NOSQL 두개로 나눌 수 있다.

SQL

Relational Data는 SQL데이터로 보면 된다.

데이터가 표의 형태로, 행과 열로 이루어져 있는 것들. 그런 것들은 SQL 데이터로 보면 될 것 같다.

여러분이 만약 RDB를 사용하셨거나, PostgreSQL, MySQL을 사용하셨다면, GCP에서는 그대로 Cloud SQL로 마이그레이션을 하시면 된다. 

그런데 RDB는 스케일 아웃이 아니라 스케일 업이다. 내가 가지고 있는 한대의 컴퓨터를 더 좋게 만드는 것이 스케일업이다.

클라우드 SQL은 기본적으로 스케일 업의 방법을 사용한다.기본적으로 몇백기가까지 이 정도까지 저장할 수 있다.

그런데 데이터가 100TB, 페타바이트까지 올라간다면?

구글 유튜브처럼 컴퓨터 하나로는 엄청난 데이터를 감당할 수 없다. → Cloud Spanner

제가 알기로 Cloud Spanner는 현존하는 서비스중 최신 기술이고, 제가 알기로 경쟁자가 없다. 너무 좋다!

굉장히 큰 데이터가 있다. 근데 RDB다. 그럼 Cloud Spanner를 이용하면 좋을 것 같다.

구글의 지메일 등 다양한 서비스들도 대부분 Cloud Spanner를 사용한다.

NoSQL

그리고 표의 형태가 아니라 NoSQL같은 경우, Datastore를 사용하면 된다.

요즘엔 버전업을 해서 Firestore도 제공을 하고있다. 

Data Analytics Workload

OLAP(Online Analytical Processing)라고도 부르는 분석용 DB가 필요하시다면, 크게 Bigtable과 BigQuery로 나눌 수 있다. 

만약의 나의 데이터가 RDB형태다, 표의 형태다 하면 BigQuery에 저장하시면 될 것 같고.

내 데이터가 key-value 폼이다 하면 Bigtable에 저장하면 적절하다.

  • 내가 심도 있는 분석을 하고싶다면 BigQuery에 저장.
  • 간단한 계산만 하거나 혹은 데이터를 읽어오기만 한다면 Bigtable.

BigQuery도 큰 데이터를 저장할 수 있으나..

데이터가 정말 정말 크거나, 24시간 날아오는 타임시리즈(시계열)데이터거나, IoT데이터라면 Bigtable에 저장하는게 적절하다.

Reference Data Pipeline Solution

데이터 엔지니어 시험 볼 때 도움이 많이 되는 아키텍처이나, 아키텍트 시험 볼 때도 도움 많이 된다.

Cloud Pub/Sub

실시간 데이터가 날아올 때 받아주는 역할을 Pub/Sub이 한다.

Pub/Sub의 장점은 무지막지하게 큰 데이터도 받아낼 수 있다.

구글에서도 Pub/Sub을 이용한다.

Cloud Storage

가만히 있는 파일 형태의 데이터는 Cloud Storage에 저장하면 된다.

이런 데이터를 Batch 데이터라고 한다.

Cloud Dataflow

Batch data와 Stream data를 동시에 분석해야 한다. 그런데 동시에 분석하기 상당히 까다롭다.

특히 온프레미스에서 이걸 구현하기는 거의 불가능에 가깝다. 

근데 GCP에서는 Dataflow라는 제품이 이 문제를 해결해준다.

기본적으로 Dataflow는 Apache Beam API를 사용한다.

Apache Beam은 오픈소스고, 구글 엔지니어들이 중심이 되어 만든 제품이다.

Stream data의 ‘eam’ + Batch data의 ‘B’ = Beam

Cloud Dataflow에서는 Apache Beam을 사용해서 데이터를 깨끗하게 Processing 해준다.

아까 간단히 말한 ETL 과정을 거쳐서 더러운 원천 데이터를 잘 정제해준다. 

데이터 타입도 바꿔주고, 필요 없는 것들 삭제해주고.. 등등 다양한 작업을 할 수 있다.

Dataprep

이와 유사하게 데이터를 깨끗하게 해주는 구글 제품이 Dataprep이다.

Dataprep은 UI가 잘 구현되어 있어서 좀 더 쉽게, 마우스 클릭을 통해 할 수 있다.

Datafusion

최근엔 Datafusion이라는 제품을 이용해서도 프로세싱을 진행할 수 있다.

Datafusion의 장점은, 더 많은 소스에서 데이터를 긁어올 수 있다.

타사 클라우드, 온프레미스 등등 다양한 소스에서 데이터가 와도, Datafusion은 잘 integration 해주는데 도움을 준다. 

그리고 BigQuery, Bigtable에 저장해서 분석할 수 있다.

AI platform

나는 더 심도 있는 분석을 하고싶다! → AI Platform  

AI platform을 사용하면, 보기에서 Jupyter 노트북(메모장)이 실행된다. 

거기서 파이썬을 이용해서 분석할 수도 있고, 혹은 TensorFlow를 이용해서 머신러닝을 구동시킬 수도 있다. 

그다음에 화면에 보여주는 도구가 있는데, 구글에서는 Data Studio(GCP제품이 아니라 Gsuite에 포함된 제품)가 있다. 이걸 통해 시각화 할 수 있다.

Dataproc

Dataproc은 기본적으로 온프레미스의 Hadoop이라든지, Spark 같은 제품들 사용할 때, 그것을 Managed Service로 제공하는게 바로 Dataproc이다. 

Dataproc을 이용해서 분석도 가능하다. (예: MapReduce 작업)

이 시험 보실 분들은 이 정도 파이프라인을 거의 암기하다시피 하면 도움 될 것.

Google Global VPC

물리적으로 네트워크를 구성할 땐, 다 선을 연결해야 한다. 그래서 나온 개념이 LAN.

LAN 케이블을 이용해서 연결해야 한다.. 컴퓨터가 다섯대 있어도 다 연결해야 한다. 

LAN : Local Area Network. 특정 지역에서 물리적으로 연결한 것. 

구글 네트워크는 물리적으로 연결된 네트워크를 추상화하여 SDN(Software-Defined Networking)이라는 것을 사용한다.

프로그램으로 라우터를 다 만들어놨다. 이 장점이 뭐냐하면,

라우터 하나에 전세계에 있는 리소스를 하나의 네트워크로 묶을 수 있다.

즉, LAN에선 이게 불가능하다. LAN에선 물리적인 한계가 있다. 

하지만 VPC에서는 물리적인 개념을 뛰어넘어서 하나의 라우터를 가지고 전세계 어디든지 Compute Engine을 생성할 수 있다. 

그럼 얘네들끼리 internal ip로 서로 소통할 수 있다. 

그림에서 왼쪽에 있는 VM과, 오른쪽에 있는 VM은 물리적으로 몇천km 떨어져있다. 미국 동쪽, 미국 서쪽이니까.

하지만 얘네들 가는데 hop이 하나면 충분하다. 아주 편리하게 이용할 수 있다.

Load Balancing

이건 아시는 분은 아실 거고, GCP 내용은 아니다.

예를 들어, 서버를 구축하고, (엄청난 트래픽이 발생하는)서비스를 제공하고 싶다고 가정하자. 

그럼 서버 하나로는 안된다. 동일한 서버를 여러개 만들어야 한다.

그럼 문제가 생긴다. 백만명의 유저들과 수백만개의 서버가 있는데 두개를 어떻게 연결할까?

이 연결을 도와주는 것이 로드밸런서다.

클라이언트들은 트래픽을 로드밸런서로 보내게 되고, 로드밸런서는 각각의 웹서버에 트래픽을 할당한다.

GCP의 장점은 뭐다? 전세계적으로 하나의 로드밸런서만 만들면 된다.

그럼 클라이언트가 어디에서 왔든지 전혀 상관하지 않는다. 하나의 로드밸런서가 다 처리를 해준다.

Autoscaling

저희 클라이언트들은 시간에 따라서 수요가 일정하지 않다.

VM을 늘렸다가 줄였다가 하면 좋겠지만, 물리적으로(온프레미스에서는) 어렵다.

GCP에서는 가능하다. GCP는 고객의 수요에 맞게 자동으로 만들어드린다.

손님이 늘어나면 VM을 더 만들고, 손님이 줄어들면 VM을 알아서 셧다운 시킨다.

이런 것들은 오토스케일링 이라고 부른다.

Container

왼쪽 그림의 경우, 기본적으로 컴퓨터 한대로 사용했다. 

컴퓨터 한대에 여러개의 App(소프트웨어)들을 설치해서 사용했다.

여러분이 사용하시는 노트북 생각하시면 된다. 노트북 1대, 운영체제 1개, 프로그램 여러개.

하지만 서버를 운영할 때 이렇게 하지 않는다.

경우에 따라 어플리케이션들이 서로 충돌이 날 수 있고, 혹은 영향을 미칠 수도 있기 때문이다.

예를 들면 고스펙의 게임을 실행하면 크롬 브라우저가 느려지는 것처럼 서로 영향을 미친다.

(서버 운영하는 데)컴퓨터 한대에 애플리케이션 1개으로 제공? 너무 비효율적이다. 그래서 나타난 개념이 Virtual Machine.

오른쪽 그림을 보면, 하나의 컴퓨터에 두개의 운영체제를 깔았다. 각각의 운영체제 별로 각각의 어플리케이션 설치했다.

많은 회사에선 아직도 이렇게 운영하는 걸로 알고 있다. 그래서 VMware..이런 회사들이 돈을 많이 벌었죠.

구글은 처음부터 이 방법(오른쪽) 사용하지 않았다.

이 오른쪽 방법의 문제는, ‘운영체제가 너무 무겁다.’이다. 부팅 시간도 오래 걸리고, 용량도 많이 차지하고, 버겁다.

구글에선 어떤 방법을 취했냐면, 하드웨어 하나에 운영체제 하나를 깔고, 그 위에 어플리케이션 두개를 서로 독립시켜놨다.

이거 구현하는 게 쉽진 않은데 Docker라는 제품을 통해서 쉽게 구현했다.

하나의 물리적인 컴퓨터 위에, 하나의 운영체제를 깔고, 두 어플리케이션이 작동을 하는데 독립적이다.

각각의 어플리케이션과 디펜던시(라이브러리가 대표적인 예시), 그것을 우리는 컨테이너라고 부르게 된다.

컨테이너 단위에서 우리는 서비스를 제공하게 된다.

잘 모르시는 분들은 코세라 가셔서 <Architecting with Googel Compute Engine> 강의 꼭 들어보시길.

앞으로 10년, 20년을 이끌어갈 기술임이 너무 분명하다.

Lifecycle of Container and Kubernetes

파이썬으로 어플을 만들고 컨테이너화 하도록 도와주는 것이 Cloud Build 이다.

Cloud Build를 통해서 컨테이너를 만드시고, Cloud Container Registry에 등록하셔서 사람들과 공유한다.

잘 이해가 안되시면 GitHub 같은 거라고 생각하시면 된다.

그리고 컨테이너가 필요하실 때 사람들이 Registry에서 다운 받아서, 사용할 수 있게 된다.

그리고 컨테이너를 하나씩 사용하지 않고, 컨테이너 두개를 하나의 Pod라는 개념으로 담게 된다.

Pod에는 컨테이너 하나가 들어갈 수도 있지만 일반적으로 두개 정도, 그 이상이 담겨지게 된다.

그리고 이 Pod를 각각의 VM에 Deploy하는 개념이 되겠다. 

그런데 컨테이너가 너무 많다. 구글에서는 일주일에 컨테이너를 40억개를 만든다. 너무 많다!

관리(예: 이 Pod를 어느 VM에 배치할 것인가?, 스케쥴링)하는게 상당히 까다롭기 때문에, 이 관리를 도와주는 것이 Kubernetes 이다.

구글이 예전에 만들어서 오픈소스 했다. 쿠버네티스는 아무나 다 사용할 수 있다.

그럼에도 불구하고 쿠버네티스는 사용하는게 상당히 까다롭다. 

그래서 쿠버네티스를 좀 더 사용하기 쉽도록 구글이 Managed Kubernetes Service를 제공하게 되고, 그게 GKE(Google Kubernetes Engine) 이다.

꼭 코세라 가셔서 <Architecting with Google Kubernetes Engine>수업을 들으시거나, 제게 메일 보내시면 제가 가능하면 빨리 답을 해드리겠다.

Q&A

Q. Bigtable은 Hbase로 알고 있어요.

A.네. 복잡한 계산 하고싶으실 땐 Hbase 쓰셔도 되고요.

Q. AI Platform과 AutoML은 다른 서비스인가요?

A. AI Platform과 AutoML은 다른 서비스입니다. AI Platform같은 경우는 안에 Jupyter 노트북이 들어가서요. 여러분이 TensorFlow를 통해서 코드를 작성할 수 있고요. 그럼 되게 복잡한 코드도 쓰실 수 있겠죠. 그런데 우리 모두가 자유롭게 TensorFlow를 사용할 순 없잖아요. 데이터 사이언티스트 분들은 사용하시겠지만, 우리들은 사용하기 어렵습니다. 일반적으로 쉽게 머신러닝을 사용할 수 있게 만든 것이 AutoML 이 되겠습니다. AutoML은 코드 짤 필요도 없어요! 그냥 마우스 클릭 굉장히 잘하시면 머신러닝 모델 만드실 수 있습니다. 나중에 실습해보시면 좋을 것 같습니다. 정확도가 상당히 높습니다. Kaggle에서 AutoML 가지고 대회를 해봤는데요. 상위 10%안에 드는 것 같습니다. 

Q. 구글 VPC와 AWS VPC의 차이점이 궁금합니다.

A. 어.. 죄송하지만, 제가 타사 클라우드에 대해서 어떻게 말씀 드리는건 어려움이 있습니다. 좋게 얘기하기도, 안 좋게 얘기하기도 그렇고요..(웃음)네. 정말 궁금하신 분들은 이메일을 보내주시면 제가 개인적으로 답변을 드리도록 하겠습니다. 

Q. AI Platform이 codelab보다 성능이 좋을 수도 있겠군요.

A. 네. codelab의 연장선이라고 보시면 될 것 같고요. 그런데 모델이 커지게 되면 아까 말씀 드린 대로, 스케일 아웃이라는 방법이 필요합니다. 즉 컴퓨터 한대로는 안되고, 여러대의 컴퓨터가 필요하고요. parameter들도 굉장히 많거든요. parameter만 따로 저장하는 parameter서버도 필요합니다. 굉장히 큰 클러스터가 필요하거든요. 그때는 codelab으로는 제한이 있을 수 있고요. AI platform에 있는 기능을 사용하시면 간단하게 분산 환경에서 머신러닝을 구동하실 수 있습니다.

Q. BigQuery DB engine은 뭔지 알 수 있을까요?

A. 질문이 명확하게 이해는 안됐는데요. 빅쿼리가 어떻게 작동이 되는지를 물어보신 것 같은데요.. 네, 나중에 개인적으로 말씀드리겠는데, 기본적으로 저희가 공개하고 있진 않구요. 그 기저에서는 슬롯이라는 개념을 사용하고 있습니다. 슬롯은 CPU와 메모리의 조합인데요. 여러분이 쿼리를 작성하시면 최대한 2000개의 슬롯이 back단에서 작동합니다. 즉 1000개의 컴퓨터가 작동한다고 보시면 되겠습니다. 그래서 그 친구들이 여러분의 쿼리를 뒷받침하게 되구요. 질문하신 분의 의도가 있을것 같은데요. 이메일 주시면 제가 질문 의도에 맞게 상세하게 답변 드릴 수 있는 것은 답변 드리도록 하겠습니다. 

Cloud Architect Practice Exam Questions

(ACE가 아니라 PCA 문제입니다.)

 예시 문제는 홈페이지에서 확인할 수 있다.(http://bit.ly/StudyJamResources 참고)

10개 문제 가져왔고 쉬운 문제부터 하겠다. 보시면서 ‘아, 자격증에는 이런 유형의 문제가 있구나’를 파악하시면 도움 되실 것 같다.

가장 쉬운 문제부터 가져왔다.

Your company wants to deploy several microservices to help their system handle elastic loads. Each microservice uses a different version of software libraries. You want to enable their developers to keep their development environment in sync with the various production services. Which technology should you choose?

A. RPM/DEB

B. Containers

C. Chef/Puppet

D. Virtual machines

(1분 후)

문제는 어렵지 않으셨을 것 같다. 영어라서 부담 느끼실 수도 있다.

마이크로서비스를 사용하고 싶다. 로 이해하시면 될 것 같다.

마이크로서비스를 사용할 때, 반드시 필요한 기술은 당연히 컨테이너가 되겠죠. 

예전 모놀리틱 서비스에서 마이크로서비스로 넘어오면서 VM기준에서 Container 기반으로 구축을 하게 된다.

혹시 이 문제가 어려우셨던 분들은 코세라에 가셔서 <Getting started with GKE>과정을 수강하시면 이 문제는 쉽게 푸실 수 있을 것 같다.

좀 더 난이도를 올려보겠다.

Your company wants to track whether someone is present in a meeting room reserved for a scheduled meeting. There are 1000 meeting rooms across 5 offices on 3 continents. Each room is equipped with a motion sensor that reports its status every second. You want to support the data upload and collection needs of this sensor network. The receiving infrastructure needs to account for the possibility that the devices may have inconsistent connectivity. Which solution should you design?

A. Have each device create a persistent connection to a Compute Engine instance and write messages to a custom application.

B. Have devices poll for connectivity to Cloud SQL and insert the latest messages on a regular interval to a device specific table.

C. Have devices poll for connectivity to Cloud Pub/Sub and publish the latest messages on a regular interval to a shared topic for all devices.

D. Have devices create a persistent connection to an App Engine application fronted by Cloud Endpoints, which ingest messages and write them to Cloud Datastore.

(1분 후) 실제 시험에서는 2시간에 50문제 드린다.

이제부터는 문제 푸는 로직을 같이 보며 풀도록 하겠다.

사실 저희 구글에서 사용하는 시스템이다. 회의실에 사람이 나타나지 않으면, 회의실 안의 카메라가 돈다. 카메라가 자동으로 작동해서, 그 안에는 머신러닝이 들어있다. 카메라가 보고 우리 기계님께서 ‘사람이 없네?’하고 알아서 회의실을 취소하는 그런 시스템이다. 아마 거기서 따온 것 같다.

아까 데이터파이프라인을 보여드렸는데 관련된 제품이 뭐가 있었죠? 실시간 데이터가 오니까, 대충 Pub/Sub에서 데이터를 받아서 dataflow에서 정제를 한 다음에, IoT 데이터니까 빅테이블에 저장하면 적절하겠죠?

그럼 C가 가장 가능성이 높겠다. 

요런 식으로 머릿속에 생각을 해보시면 좋을 것 같다. 

근데 경우에 따라서 다른 보기들이 답이 될 경우도 있다. 다른 게 답이 되긴 되는데, C가 더 좋아서 답이 되는 경우가 굉장히 많다. 그래서 시험이 어렵다. 가장 최적의 것을 고르시면 된다.

“어, A가 맞네?” 하고 A만 보시고 답을 체크하시면 안 되고, 끝까지 다 읽어보시고, 아마 두개 정도가 가능하지만 그 중에 더 최선인 것을 선택하시면 된다.

다른 것도 어떻게 하면 될 수 있지만 가장 최선의 방법은 Pub/Sub을 이용하는 것이다.

비슷한 로직으로 다른 문제도 풀어보겠다.

Your company wants to try out the cloud with low risk. They want to archive approximately 100 TB of their log data to the cloud and test the analytics features available to them there, while also retaining that data as a long-term disaster recovery backup. Which two steps should they take?

A. Load logs into BigQuery.

B. Load logs into Cloud SQL.

C. Import logs into Stackdriver.

D. Upload log files into Cloud Storage.

정답은 A, D.

분석을 하려면 BigQuery.

Long-term disaster recovery 은 Storage.(콜드라인 혹은 아카이브)

다른 것도 답이 될 수는 있다. 하지만 제일 적절한 것은 아니다. 분석에 시간이 더 걸린다든지, 더 비싸다든지..

You set up an autoscaling instance group to serve web traffic for an upcoming launch. After configuring the instance group as a backend service to an HTTP(S) load balancer, you notice that virtual machine (VM) instances are being terminated and relaunched every minute. The instances do not have a public IP address. You have verified that the appropriate web response is coming from each instance using the curl command. You want to ensure that the backend is configured correctly. What should you do?

A. Ensure that a firewall rule exists to allow source traffic on HTTP/HTTPS to reach the load balancer.

B. Assign a public IP to each instance, and configure a firewall rule to allow the load balancer to reach the instance public IP.

C. Ensure that a firewall rule exists to allow load balancer health checks to reach the instances in the instance group.

D. Create a tag on each instance with the name of the load balancer. Configure a firewall rule with the name of the load balancer as the source and the instance tag as the destination.

정답은 C. 어려운 문제였다. 

VM이 자꾸 생겼다, 꺼졌다 하는 일이 계속 생긴다. 왜 이런 일이 생길까? 로드밸런서는 두가지 역할이 있다. 

트래픽이 왔을 때 각각의 VM에게 연결을 시켜줘야 한다. 

근데 만약에 VM이 죽어있으면? 죽어있는 VM에 연결시켜주면? 클라이언트는 서비스를 받지 못하게 된다. 

그래서 로드밸런서는 뭘 하냐면, healthcheck라는 걸 한다. 계속해서 VM에게 “너 살아있어? 너 건강해?”하고 계속 물어본다.

근데 만약 VM이 대답을 안 한다면 로드밸런서는 “얘가 죽었네?”하고 판단을 하고 새로운 VM을 하나 만들게 된다. 

그것을 Autohealing이라고 부른다.

즉 healthcheck와 Autohealing 과정을 통해서 죽어있는 VM을 파악하고 죽어있다면 로드밸런서가 새로운 VM을 하나 만들어주게 된다. 

문제를 보니 VM이 생겼다가, 꺼졌다가 하니까 healthcheck에서 문제가 생긴 것 같다. 정확한 이유는 모르겠다.

왜 healthcheck에서 문제가 생겼을까? 잘 살아있는 VM을 왜 죽었다고 판단할까? healthcheck할 때 커뮤니케이션이 잘 이루어지지 않은 것 같다.

그렇다면 가장 먼저 firewall 설정을 보는 게 의미 있을 것 같다. 

공부를 하신 분들이라면 방화벽 설정이란게 제일 먼저 떠오르셨을 것 같다.

A와 C에서 방화벽에 대한 이야기가 있다. 그럼 둘 중에 하나를 골라야겠죠?

A : 로드밸런서까지 오는 트래픽에 대한 방화벽을 확인한다.

..조금 이상한데? 저희는 로드밸런서에서 VM까지 가는 트래픽을 확인해야 하잖아요. 

C. 이게 더 정확하다.

혹시 코세라를 들으신 분들이라면 더 잘 이해가 되실 것 같다.

코세라 중에 <Architecting with Google Compute Engine>를 가시면 9단원에서 로드밸런서를 굉장히 길게 설명한다. 아마 그걸 들으시면 헬스체크라든지 인스턴스 그룹이라든지 이런 개념에 대해서 잘 이해하실 수 있을 것 같다.

그럼 이 문제를 푸는데 어려움이 없으실 것 같다. 

홈페이지에 가서 다 풀어보시길.

Questions?

혹시 질문 있으신 분은 여기에 연락처를 적어놨으니 나중에 개인적으로 물어보시면 대답드리겠다.

Q. short-term back은 어디로?

A. 제가 문맥이 잘 이해가 안되는데, 아마 아까 그 DR(Disaster Recovery)용도로 사용하는 스토리지 말씀하신 것 같은데. 아마 자주 사용하시는 데이터 같은 경우는, 그냥 일반적인 스토리지에서 스탠다드 사용하시면 되고요. Multi-regional, Regional, Dual Regional 사용하시면 되고요. 가끔 사용하시는 것은 니어라인, 콜드라인, 아카이브를 사용하시면 될 것 같습니다. 

Q. LB가 헬스체크는 기본 아닌가요?

A. 네. 기본입니다. 아까 문제에서는 보기에 좀 문제가 있어서.. firewall을 다시 체크해주는 그런 상황이었습니다. 

Q. 자격증 신청할 때 이름 영어로 써야하나요?

A. 제가 알기론 영어로 하는 걸로 알고 있습니다. 가능하면 영어로 해주시고요. 이왕 하실거면은 여권에 있는 이름이랑 동일한 걸로 해주시면은 좋을 것 같습니다. 나중에 이름 바꾸면 조금 어려움이 있을 수 있거든요. 

Q.Cloud Storage에서 multi-regional과 regional의 기능적 혹은 spec적 차이가 있나요?

A. 기본적으로 멀티리전은 데이터를 저장할 때, 한군데에 저장하기 불안하신 분들이 있거든요. 리전 안에도 세개의 존이 있습니다. 세개의 존이 있는데. 저희가 다 나눠서 저장하지만, 그럼에도 불구하고 좀 불안하신 고객들이 계십니다. 그래서 그런 분들을 위해서 멀티리전 이라는 개념이 있구요. 가장 기본적인 차이는 Availivity의 차이입니다. 혹시나.. 무슨 일 생길 수가 있잖아요. 갑자기 지진이 날 수도 있구요.(생략)그런 것들을 좀 피하기 위해서 두세군데 리전에 보통 저장을 하게 되구요. 다만, 미국같은 경우엔 상관이 없습니다. 같은 나라기 때문에 같은 리전을 사용할 수 있는데. 미국을 제외한 나머지 나라들은.. 데이터가 나라를 벗어날 수 있잖아요. 그래서 이슈가 좀 있습니다. 몇개 나라를 제외하고는, 일반적으로 데이터를 자기 나라 외에 넘어가기 어렵기 때문에 못하는 문제가 있고요. 

Q. GCP시험은 한글로 볼 수 있나요?

A. 볼 수 없습니다. 제가 이걸 한글로 바꾸기 위해서 엄청 노력을 많이 하고 있는데요. 그.. 시험 응시자 수가 많아야 저희가 번역을 할 수가 있습니다. 워낙에 전세계 언어가 많기 때문에.. 그래서 여러분들이 응시를 많이 해주시구요. 주변에 있는 분들께도 추천을 많이 해주시면은, 저희가 번역을 할 수 있을 것 같습니다.

Q. Multi-regional과 Regional이 Standard로 통합된 건가요?

A. 네. 아마 콘솔에서 스탠다드로 보이실 겁니다. 근데 선택을 할 수가 있습니다. 

Q. 합격 점수는 어느 정도인가요? 혹시 상대평가인가요?

A. 합격 점수를 저희가 공개하지 않습니다. 그게 상당히 어렵거든요. 시험을 보시고 나면은, 나중에 제출 버튼을 누르시면 그냥 ‘합격’, ‘불합격’만 나타나게 됩니다. 점수도 안 나타나구요. 아무것도 없습니다. 그 이유는! 저희가 어떻게 뭐.. 시험을 위해서 공부를 하고 있지만, 시험을 위한 시험을 회피하기 위함입니다. 그래서 여러분들이 경험을 많이 쌓고, 지식이 있을 때 그때 응시를 하셔가지고 시험을 보면은 합격을 할 수 있게 만들어 놓은 시험이기 때문에, 그런 부분이 시험 준비할 때 어려움이 있죠. 

Q. 크롬에서 자동 번역으로 볼 수 없나요?

A. 네, 없습니다. 네. 죄송합니다. 저도 최대한 노력을 많이 하겠습니다. 가능하면 한국말로 번역이 될 수 있도록 저도 노력할테니까 여러분들도 시험 많이 응시해주시면은, 다른 분들께, 여러분 후배분들께! 도움이 될 겁니다. 

Q. 일반적으로 pro는 얼마나 공부해야 하나요?

A. 프로페셔널과 어소시에이트의 차이는, 그냥 여러분들의 기본 지식입니다. 여러분들이 IT에서 5년, 10년 이렇게 계셨다면 프로페셔널에 도전해보셔도 좋을 것 같고요. 그렇지 않다면 어소시에이트에 도전할 것을 추천드리도록 하겠습니다. 사실 이거 답변 드리기가 어렵죠, 일반적으로 얼마나 공부해야 하나.. 공부를 열심히 잘하시면 짧게 공부하셔도 되고요. 사람마다 달라서 답변 드리기가 어려운 것 같습니다. 

오늘 이 정도로 마무리 하겠습니다. 추가적으로 질문 있으시면 저에게 링크드인이나 메일로 질문을 주시고요. 그 다음에 저희가 20% 바우처 드리는거 아시죠? 잘 활용하셔가지고 시험 응시하시면 좋을 것 같고요. 3월 2일까지! 코세라 다 들으셔야 합니다. 그리고 시험 뒤에 저희가 굉장히 많은 수혜를 준비를 해놨으니까. 저희 선물 많이 드리니까. 꼭! 응시를 해주시면 좋을 것 같고요. 그리고 계속해서 이메일 통해서 일정들도 보내드리고 여러분들과 커뮤니케이션 하니까.. 질문 있으시면 그 이메일 통해서 저희와 의사소통 하시면 좋을 것 같습니다. 

오늘 세션 마무리하도록 하겠습니다. 퇴근하시고 굉장히 피곤하셨을텐데 이렇게 참여해주시고 적극적으로 공부해주셔서 너무나도 감사드립니다. 아무쪼록 다들 좋은 결과 있길 바라겠습니다. 감사합니다!