あけましておめでとうございます。七色メガネです。
12月末日に GCP の Professional Cloud Architect 資格を取得しましたので、この試験の所感や対策などについて振り返ろうと思います。
GCP ってなに?
過去記事にてGCPの概要を説明していますので、よろしければそちらをご覧ください。
Professional Cloud Architect 資格ってなに?
Professional Cloud Architect (以下、PCA) とは、GCP における基本的な操作に加え、全体のアーキテクチャ、インフラストラクチャについての造形があることを証明する資格です。
Associate 資格より難易度は高いとされます。その他の資格とは扱われる内容が異なるので一概に比較はできません。
GCP資格全体に関する情報を下記の記事でまとめているので、よろしければご参照ください。
PCA 試験について
筆者のレベル
——————
・エンジニア経験:3年
・クラウド経験:半年
・GCP経験:半年
・業務で触ったことのあるGCPサービス
:GCE, GAE, Cloud SQL, Spanner, IAM
・やる気:そこそこ
——————
Associate 資格をとった時には書くことが全然なかったのですけれども、半年GCPに触って、ちょっと書けることも増えましたね…。
と言ってもまだまだ初級エンジニアの域を出ていません。
誤解の無いように断っておきますが、PCA 試験で出題されたのは私の経験外の問題ばかりでした。その為、不足分は勉強してカバーしています。
ので、経験が全然なくても取れる資格!という訳では無いことをお伝えしておきます。
問題の傾向
最初に書いておくと、GCP 試験の内容に関するレポートを行うことは公式にて禁止されています。したがって、どのような問題が出題されたかを明言することはできません。
ですが、どのようなことを勉強するべきかくらいは書いても良いだろうと思いますので (GCP繁栄の為にも)、オブラートに包みながらつらつら書いてみたいと思います。
まず試験の方向性ですが、公式ページでは以下のようにアナウンスされています。
Professional Cloud Architect は、Google Cloud の技術を組織が活用するために必要なクラウド アーキテクチャと Google Cloud Platform に関する専門的な知識を活かして、ビジネス目標を推進するスケーラブルで高可用性を備えた堅牢かつ安全な動的ソリューションを設計、開発、管理するスキルを持ったアーキテクトです。Google Cloud Certified - Professional Cloud Architect 認定試験では、以下に関する能力が評価されます。
- クラウド ソリューション アーキテクチャの設計と計画
- クラウド ソリューション インフラストラクチャの管理とプロビジョニング
- セキュリティとコンプライアンスに対応した設計
- 技術プロセスやビジネス プロセスの分析と最適化
- クラウド アーキテクチャの実装の管理
- ソリューションとオペレーションの信頼性の確保
大項目として6つの内容が挙げられていますね。これらに関するさらに詳細な情報は、下記ページより確認できます。
* 参考: 試験について https://cloud.google.com/certification/guides/professional-cloud-architect/?hl=ja
ご丁寧に色々説明してくれてはいるものの、正直、何を勉強すれば良いかよく分かりませんね。範囲が広すぎるのです。
ので、PCA 試験の為に重点的に勉強しておくべきいくつかのポイントを独自に列挙してみたいと思います。
個人的な勉強ポイントは4つです。
それは、「サービス全般」「データ移行」「GKE」「アーキテクト」です。
まずはここから >>> 全サービスを把握する
何はともあれ、GCP について知らなければ話は始まりません。
GCE と GAE の違いは分かるでしょうか? Cloud SQL と Spanner の使い分けのポイントは? VPC におけるネットワークコンセプトについての理解は? IoT 機器からの情報を収集するのに適切なサービスは?
GCP 経験が長い人であれば勉強し直す必要は無いかもしれませんが、そうでなければ一度、知識の総整理を行っておいたほうが良いと思います。
一つ一つのサービスが優れた機能を持っていて単体で研究する価値があるのに、そんなサービスが100個くらい、GCP にはありますからね…。
また、PCA は GCP の初級資格である Associate Cloud Engineer(以下、ACE) の上位資格と取れますので、もしそれを持っていなければそちらの取得から目指すのも良いかもしれません。
PCA 試験の内容は、いくつか ACE の問題と重複するところがあります。例えば、「xxx の場合に使用するべき適切なストレージサービスはどれか」のような問題ですね。
もちろん重複しない問題もあります。例えば ACE はエンジニア向けですから実作業に伴うコマンド知識を多く問われますが、PCA ではあまりコマンド問題は問われません。
時代のニーズはクラウド移行 >>> オンプレミスからクラウドへ
以下は GCP のソリューション紹介ページですが、そのトップに Anthos や VM 移行に関するトピックが掲げられています。(Anthos は新しいのでしばらく試験内容にはならないと思いますが)
* 参考:[ソリューション] https://cloud.google.com/solutions/?hl=ja
PCA はアーキテクチャの試験ですが、そもそも GCP でアーキテクトを組むにあたってのシチュエーションとしては、例えば以下のようなパターンが考えられますね。
・オンプレミスにおけるアプリケーションを改修を伴わずに GCP へ移行 (リフト・アンド・シフト)
・オンプレミスにおけるアプリケーションを一部改修して GCP へ移行
・オンプレミスにおけるアプリケーションを全面改修して GCP でネイティブアプリケーションとして移行
・新規で GCP アプリケーションを開発
参考: [GCPへの移行] https://cloud.google.com/solutions/migration-to-gcp-getting-started?hl=ja
一番下の場合であれば、アーキテクトを構成するための知識だけが必要とされます。
しかしそれ以外の場合では、アーキテクトを構成する前に、まずアプリやデータを GCP に移行することについて考える必要があります。
従って、PCA のための勉強をするのであれば、「移行」というテーマに関しても理解を深めておくのが良いと思います。
kube を ctl せよ! >>> GKE を深く理解する
GCP といえば BigQuery と GKE 、と思われることが多いほど、この2つが GCP 内に占めるウェイトは大きいです。
つまりその双翼を担っている GKE についての理解が必須になるのは、言うまでもありませんね。
GKE は、コンテナオーケストレーションツールである Kubernetes をマネージドに提供するサービスです。
ただマネージドであるからと言って Kubernetes についての理解が不要であるかと言えばそんなことはなく、むしろ深く理解していなければ使用することが難しいソリューションです。
「GKE とはこんなサービスである」と説明できる以上の理解が必要でしょう。クラスタとは?ポッドとは?GKE内のネットワークの仕組みは?スケールアウトの論理は?
と言ったものの、Kubernetes についての試験では無いですから、自分で大規模なクラスタを構成できるレベルが必要とされるかと言えば、そんなことは無いかと思います。でも簡単なクラスタを作れるくらいの理解は欲しいかもしれません。
下記の公式ページがとても参考になりますから、これから勉強を始める人は参照してみてください。
* 参考:GKEのコンセプト https://cloud.google.com/kubernetes-engine/docs/concepts/?hl=ja
また、そもそもコンテナって何ぞや、ってところから始める人は、私が個人的にまとめた記事もあるのでよろしければご参照ください。
自分でサービスを並べられるか? >>> システムアーキテクトを知る
言うまでもなく、メインのアーキテクトに関する知識も必要ですね。
どのサービスとどのサービスを繋げるのか。複数サービスが選択肢に上がってきた時にどれを選択するのか。そう言ったことに関する理解を深めておくことはマストだと思います。
公式ページにおけるソリューションの説明でいくつかアーキテクチャ図が示されているものがあったりするので、1つの正解としていくつかインプットしておくのも良いかもしれません。
* 参考:ソリューション https://cloud.google.com/solutions/processing-marketing-submissions-using-video-intelligence?hl=ja
あとは私が個人的にアーキテクチャ図をまとめてみた記事がいくつかあるので、そちらもよければ一緒にご参照してみてください。(ソースは主に公式なので、上のリンク先の内容とは重複しますが)
勉強方法
では私が資格取得のために行った勉強方法について紹介します。以下のような割合でリソースを割きました。
・0割:書籍 >>> 黄色本(Google Cloud Platform エンタープライズ設計ガイド)
・2割:外部教材
・8割:公式ドキュメント
書籍
割合が0となっていますが、これは ACE 資格の時に勉強した知識で乗り切ったために PCA のために改めて読むことは無かったと言うことです。
もしそう言った貯金が無い場合は、書籍での学習から始めることをお勧めします。
特に黄色本と呼ばれる 「GCP エンタープライズ設計ガイド」は、GCP の全サービスを俯瞰する上でとても重宝します。
外部教材
Cousera さんで GCP の Architect に関する講座などが開講されているので、今回はそちらも利用しました。
(https://www.coursera.org/)
この講座では、動画教材とラボ教材が提供されます。
特にラボ教材がよかったです。VPCネットワークを実際に作ってみる講座などは、とても勉強になりました。
動画も良かったのですが、日本語化や UI が微妙だったりしたので、私はドキュメントでいいかなあと思いました。
公式ドキュメント
結局は、これです。
GCP に関する書籍はまだ数も少なく (資格のための書籍は一つもない)、ネット上でのレポートも十分にあるとは言えません。
ですがその代わり公式ドキュメントがとても充実しており、これを隅々まで読むことができたのであれば試験合格は間違いないと言えるほどの完成度です。
ただいかんせん、量が多いです。充実しすぎていて、一つのサービスのドキュメントを全部読もうと思ったらそれだけで1日かかるレベルです。
各サービスには殆ど「概要」や「コンセプト」のページがあるので、それらを中心に読み進めましょう。
全体を俯瞰できたら、重要なサービスについて更に詳細ページを読み進めていく、と言うのがおすすめです。
試験難易度の所感
GCP を業務で触る時間も少し増えて理解が深まっていたと言うこともありますが、個人的には ACE より簡単だったような気がしました。
PCA は 知識と思考で乗り切れる問題が多かったのですけれども、ACE はコマンド問題が多くて、勉強内容を間違えていた私には太刀打ちできない問題が多かったので…。
でも純粋な問題の難易度で言えば、 PCA > ACE だと思います。勉強方法を間違えていなければ、
まとめ
そんなこんなで、Professional Cloud Architect の資格を取得することが出来ました。おめでとう私。
書籍紹介
Google Cloud Platform エンタープライズ設計ガイド
Google Cloud Platform 実践Webアプリ開発 ストーリーで学ぶGoogle App Engine
プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで