Classi開発者ブログ

教育プラットフォーム「Classi」を開発・運営するClassi株式会社の開発者ブログです。

未経験から約半年でProfessional Cloud Architectを合格した振り返りをする

こんにちは、データAI部 Pythonエンジニアの工藤 ( id:irisuinwl ) です。

この度、Google Cloud の認定資格 Professional Cloud Architect に合格しました。
自分は去年の9月から Classi に join し、それまでオンプレミス中心で開発していたソフトウェアエンジニアでしたが、未経験から半年で資格を取得するに至りました。
本記事では、試験合格までに何を行い、何が効果的であったかを紹介したいと思います。

Professional Cloud Architect (PCA)の説明

PCAに馴染みのない方もいらっしゃると思うので、簡単にどう言った資格なのか、どのような試験範囲が出るのかを紹介します。

PCAとは、GCP を用いてソリューションを構築するクラウドアーキテクトの能力を認定する試験となっております。

Professional Cloud Architect は、Google Cloud の技術を組織が活用するために必要なクラウド アーキテクチャと Google Cloud Platform に関する専門的な知識を活かして、ビジネス目標を推進するスケーラブルで高可用性を備えた堅牢かつ安全な動的ソリューションを設計、開発、管理するスキルを持ったアーキテクトです。 Professional Cloud Architect

試験内容としては、顧客の抱えるビジネス課題・技術課題に対して、GCPのサービスとして何を選択すれば良いのかを選択形式で問われる試験となっております。
例えば、模擬試験の問題を抜粋すると

  • Mountkirk Games は新作ゲーム用にリアルタイム分析プラットフォームを構築したいと考えています。新しいプラットフォームは同社の技術的要件を満たす必要があります。要件をすべて満たすことのできる Google テクノロジーの組み合わせはどれですか。
    • A. Kubernetes Engine、Cloud Pub/Sub、Cloud SQL
    • B. Cloud Dataflow、Cloud Storage、Cloud Pub/Sub、BigQuery
    • C. Cloud SQL、Cloud Storage、Cloud Pub/Sub、Cloud Dataflow
    • D. Cloud Pub/Sub、Compute Engine、Cloud Storage、Cloud Dataproc

と言った問題が出題されます。

出題される試験範囲は GCP のサービス全般と幅広い知識を求められます。例えば、以下のような区分となっております。

区分 GCPの関連サービス
Computing GCE, GAE, GKE, Cloud Run, ...
Network VPC, Cloud Load Balancing, Interconnect, ...
Storage GCS, Cloud SQL, Bigtable, Firestrore, BigQuery, ...
Operation Logging, Trace, Monitoring, Profiler, ...
ML/Bigdata Dataflow, Dataproc, AI Platform, ...

受けようと思ったきっかけ〜 G.I.G. への参加〜

自分は、業務で GCP を初めて利用したため、開発時に色々とスキル不足を感じたので、 Googleさん主催のトレーニングである Google Cloud Innovators Gym( G.I.G. ) を紹介いただき、参加することとしました。

G.I.G. では、講義セッション、 Coursera の選択コース、Professional Cloud Architect or Professional Data Engineerの認定資格取得支援(いずれかの合格もプログラム修了目標)などを用いた、 GCP のトレーニングとなっておりました。
また、G.I.G. 専用の Google Chat チャットルームでのサポート、もくもく会や懇親会など、交流する機会もあり、滞りなく学習を進めることができました。
特に、毎回の講義セッションでは、ハンズオンで扱うサービスの概観とハンズオンと深く GCP を理解できる内容であったことに加えて、受講者全体の学習状況をモニタリングされており、モチベーションにも繋がりました。

全体的に、リモートという状況下でも非常に学習効果が高く、 PCA という目標に向かった学習をよくモチベートするトレーニングで、教育業界に携わる身として非常に参考となりました。

結果として問題なくトレーニングプログラム修了することができました。

どのような学習を行ったか

PCA 受験までに合格に寄与した学習内容を解説します。

ざっくり下記のように学びました。

  • Coursera で GCP 全体のサービスの仕様を理解
  • Qwiklabs を用いた勉強会を開き、演習を通してサービスの理解の解像度をあげた
  • 社内サービスを作って、サービスの細かい仕様やアーキテクチャパターンを実践した
  • 試験の過去問を解いて、理解に不足している箇所を対策した。

詳細を以下では解説していきます。

Coursera

GCP の概観は Coursera の講義で主に学びました。大体 2 ヶ月程度で完了しました。

受けたコースは以下です。

コース名 概要
Google Cloud Platform Fundamentals: Core Infrastructure GCP の基本となるサービスを包括的に紹介するコース
Essential Cloud Infrastructure: Foundation VPC と GCE の詳細を解説するコース
Essential Cloud Infrastructure: Core Services Storage 系サービス, IAM, Cloud Operations の詳細を解説するコース
Elastic Cloud Infrastructure: Scaling and Automation Interconnect, Cloud VPN, Cloud Load Balancing の仕様といった Network 系サービスの詳細と、 Deployment Manager 及び Terraform を利用したインフラ構築の自動化を解説したコース
Reliable Cloud Infrastructure: Design and Process クラウドアーキテクチャを考える上での設計の考慮事項や要件定義を初めとして運用する上でのモニタリングまで、実践的な事項を解説するコース

これらのコースは PCA の試験範囲を網羅しており、GCP の知識が 0 の自分としては非常に有益でした。
範囲の網羅性のみならず、演習問題が豊富であったことと、 Qwiklabs というハンズオンプラットフォームによる GCP を利用した演習もあったので、 GCP サービスを深く理解できるコースとなっておりました。

また、試験のみならず日常業務に有益な内容ばかりでした。
特に、Reliable Cloud Infrastructure: Design and Process はアーキテクトの思想やどのように GCP で構築したサービスの運用を行うかについて言及しており、実際に GCP を用いた開発でも学んだ知識を活用する場面が多くありました。

Qwiklabs

GCP の理解を深めるために、 Qwiklabs を用いた勉強会を1ヶ月間、 GCP のインフラに携わってる方々と実施しました。
Qwiklabs

Qwiklabs は、クラウドサービスのハンズオンプラットフォームです。
ハンズオンの受講を行うと演習用のプロジェクトが自動でクラウドサービス上に配備され、クラウドリソースから自動でハンズオンの進捗と合否を判定できるサービスとなっております。

Qwiklabs の 1ヶ月サブスクリプションを頂く機会があったので、それを利用し、勉強会で目標コースを定め、各自が学んだ内容を発表するということを行いました。
勉強会では、以下のクエスト(ハンズオンの集まり)を行いました。 - Build and Secure Networks in Google Cloud - Perform Foundational Data, ML, and AI Tasks in Google Cloud - Engineer Data in Google Cloud

1ヶ月という期間でしたので 1 週間に 1 クエスト、 1 日 1 つハンズオンを行っていたような気がします。
この中でも Build and Secure Networks in Google Cloud は GCP のネットワーク系サービスを用いたアーキテクチャについて取り扱っており、学びが多かったです。
VPN制限と Identity-Aware Procy (IAP) との使い分けも考えるきっかけとなり、社内サービスを IAP 対応する取り組みなどにも繋がりました。

勉強会については、軽率に興味のある分野の勉強会を開くことができ、学んだことを現状のインフラにフィードバックすることができる環境が Classi にあったことが非常に大きかったように思えます。

GCPでサービスを作る

これが一番理解に繋がりました。実践が最強の学びな気がしてます。
入社してからおよそ以下のようなサービスをスキマ時間や自己啓発で構築してました。

  • Cloud Armor, Cloud Load Balancing, GCE(Instance Group) を用いたドキュメントサービス
  • App Engine, Cloud SQL, Cloud Storage を用いたモデル管理サービス
  • GKEを用いたデータ可視化サービス

それぞれ具体的なアーキテクチャを紹介します。

Cloud Armor, Cloud Load Balancing, GCE(Instance Group) を用いたドキュメントサービス

f:id:irisuinwl:20210326113247p:plain

入社してすぐ作ったサービスです。自動生成した Sphinx ドキュメントをデプロイしたサービスとなっております。
以下のドキュメントを参考に作成しました。

Dockerでアプリケーションを作るのは1日で済みましたが、 VPC, Firewall, Cloud Load Balancing の設定などインフラ構築に1週間ほど手こずった記憶があります。

App Engine, Cloud SQL, Cloud Storageを用いたモデル管理サービス

f:id:irisuinwl:20210326113328p:plain

ある日モデル管理機運が高まって MLflow を構築したものです。
色々と熟れてきて Terraform とか使い始めたり、 App Engine が便利だと知って構築したものです。
Terraform書くのに結構困ったりで1ヶ月くらいかかりました。

また、権限まわりで面倒があったり、 GKE で構築したい気持ちが高まったので terraform destory しました。

GKEを用いたデータ可視化サービス

f:id:irisuinwl:20210330132836p:plain

割と最近作ったやつです。 streamlit による可視化サービスを作りました。
普通に Terraform で管理し、 GKE クラスタを作って誰でも爆速に GKE でプロトタイピングできるようにしようって思いで作りました。
アプリケーションは1日で作れましたが、インフラ構築に1週間ほどかかりました。


そんなこんなで入社して様々なサービスを構築してきましたが、やはり自発的に手を動かすことの学習効果は高いです。
また、GCP サービスを選定し設計する経験にも繋がるため、非常に有益になります。

自分が GCP 未経験から様々なサービスを作れたことは、 Classi が組織として

  • GCPの有識者に気軽に聞ける環境であったこと
  • 監査ログのアラートや Security Command Center といった不味い操作を検知できる体制が整っていたこと
  • IAMで欲しい権限を依頼して迅速に対応してもらえたこと

が起因していると考えております。

試験対策

公式模擬試験と Udemy の Google Cloud Professional Cloud Architect Practice Test を利用しました。

模試を受けて理解の浅い部分を特定し再学習、再度模試を受ける形で対策を取りました。
特に手元で実践が難しかった Peering と Interconnect などは重点的に復習をしました。
試験受験前に公式模試は満点, Google Cloud Professional Cloud Architect Practice Test は6割解けるようになりました。

まとめ

PCA合格のためにどのような学習を行い、何が寄与したかを振り返りました。
包括的な理解と実践と学習を支援する環境が大きな要因と感じました。
特に、貴重な機会をいただけた G.I.G. 事務局の方々に多大な感謝を述べさせていただきます。

資格合格がゴールではなく、ここで習得した知識を活かして Classi をより良いサービスにしていくことに尽力していきたいと思います。

© 2020 Classi Corp.