【GoogleCloud】Associate Cloud Engineer資格受験記

## はじめに
9/24に「Google Cloud Certified - Associate Cloud Engineer」（以降ACE）資格に合格しましたので、その時の勉強法や所感などを残したいと思います。
GCP資格としては初めてですが、これを機に他のも目指していきたいです（業務で案件があれば）

※正式には「Google Cloud」で、今はGCPと言わないですが、「Google Cloud」は長いのと他に適切な略称を知らないので、以降はGCPで通します。

## 取ろうと思ったきっかけ
去年も報奨金狙いで取ろうと思いましたが、AWS資格取得に注力したこともあり結局思っただけで終わっていました。
そんな中、今年から事業部でGCP資格の取得数目標が設定されたので、AWSの方では貢献できないのでこちらで貢献しようと思ったのが大きいです。
（というのは建前で、取る資格が無くてぶっちゃけ暇だったというのもあります）

また業務的にも、直接は関わっていないものの、直近の案件でGCP（AnthosとApigee）のシステムとの連携があり、知っておくと何かの役に立つかもしれないと思ったのも一つです。
（他にもkubernetes使うならGCPという話をどこかで聞いた、という理由もあり）

## GCPとわたし
実務経験はありません。
普段の業務はAWSがメイン（たまにAzure）で、GCPは全く関わっておらず、ハンズオン（Qwiklabsなど）でコンソールは少し触ったことがある程度でした。
いつか勉強して使えるようになりたい願望はあったものの、個人的にサービス名が覚えにくく、とっつきにくいと思っていました。
（「Cloud何とか」とか「Data何とか」みたいな名前ばかり）
あとはkubernetesは実務でやっていた（ここ半年ぐらい）ので基本的なことはわかっているぐらいです。

## 試験概要
【試験の概要】
https://cloud.google.com/certification/cloud-engineer?hl=ja
最初なので、とりあえずエントリーっぽいところから入ろうと思いました。

詳しい試験範囲などは↑のリンク先か他の方の受験記事に譲りますが、試験ガイドを読むのと模擬試験はやっておいた方が良いです。
また、試験を受ける際にはWebassessorのアカウントが必要になります。f

## 参考にした教材
### Whizlabs（Web問題集）
https://www.whizlabs.com/
い　つ　も　の

### Coursera
AWSのBlackbeltにあたるような動画セミナーが見当たらなかったので、自費で申し込みました。（月5000円ぐらい。1週間の無料トライアルあり）
基本的に英語ですが、GCP対策講座には日本語版（字幕）があり、qwiklabsのハンズオンも付いてくるので、とっかかりとしては悪くないと思います。

### 模擬試験
GCPの資格ページから申し込み可能です。
AWSの模擬試験との違いは、こちらは無料なのと、完了した後に自分が選んだ答えと正誤、簡単な解説が表示されることです。
（模擬試験に関してはGCPの方が親切）

### 資格本
「取ろう！GCP Professional Cloud Architect (技術の泉シリーズ（NextPublishing）)   高橋 秀一郎」 
https://www.amazon.co.jp/dp/B08WBQHX2K/ref=cm_sw_r_tw_dp_M8541HGJCECE620QMW82
サービスの概要を掴むという点で、初学者には良い本だと思います。
（ただしあまり時間をかけてまで読む必要はないかな、という印象）

それ以外だとKindle Unlimited対象だったので下記も買いましたが、こちらは読みませんでした（ぶっちゃけ忘れていた）
「Google Cloud Platform　エンタープライズ設計ガイド   遠山 陽介」 
https://www.amazon.co.jp/dp/B07C85YMCW/ref=cm_sw_r_tw_dp_AJ55PSJMHSXQM3QS754E

## 勉強方法
今回に限らずですが、自分の勉強法は基本的に問題を解くのが中心です。
なので、とりあえずWhizlabsで問題を解き、何がわかっていて何がわかっていないかを知った後で他の教材（今回だとCourseraなど）で補う、というやり方でした。
（当然最初は間違えまくってやる気がなくなるので、他人にはあまりおすすめできない）
Associate資格からProfessional資格のように何かの継続ではなく、全く新しいことを勉強する場合はとにかく新しい文脈に慣れることが先決なので、何でも良いのでその資格に関わる技術の用語などに触れるのが良いと思います。（普通は概要的な本をじっくり読むのが良いと思いますが、自分はたるいのでいつもスキップしています）
自分の場合、AWSはチョットワカルという状態だったので、AWSの知識をGCPの文脈に当てはめていく作業でした。
（AWSと何が同じで何が違うのか、がとっかかりでした）

あとはドキュメントや問題の解説などを読みながら、GCPのコンソールを触るのはとても勉強になったと思います。
（ここで言っているのはこのことか、というのが腹落ちできるので）
惜しむらくは、それを始めたのが試験前日だったということですが。

## 試験の所感
- 規約の同意画面で「再受験ポリシーはこちら」的なリンクを押すとGoogleのヘルプページに飛んでしまい、元の画面に戻れなくなる罠がある
    - 試験官に再度立ち上げ直してもらって事なきを得た
- 問題の難易度はAWSのCLPよりちょっと難しいぐらい
    - IAMと請求関連は少し突っ込んだ問題が出たので、やや難しく感じた
- サービス概要の知識とAWSの経験があれば半分ぐらいは解ける
- IAMと請求（Billing）とBigqueryの問題が多かった
    - ログや請求情報をBigqueryにエクスポートして分析、みたいなユースケースが多い
- Data何とか系サービスの違いはぶっちゃけ曖昧だったが、あまり出なかった
- DatastoreとBigtable（どちらもNoSQLのドキュメントDB）は似ているが、BigtableはApache HBase準拠で大規模且つ高スループットが求められる場合に使用する
    - 逆に言うと通常の用途ではDatastore（今だとFirestore？）
- Cloud SpannerはAWSのAuroraに似ているが、こちらも大規模システム向けで、Auroraのように何でもかんでも使うのが推奨というわけではない
- IAMのアーキテクチャーはAWSと若干違うので注意
    - GCPのIAMロールは文字通り「職責」を定義するためのリソースで、AWSのIAMロールとは違う
    - AWSのIAMロールはGCPのサービスアカウントと（ほぼ）イコール
    - サービスアカウントはkubernetesの文脈と近い
- IAMポリシーもプリミティブ（基本）、事前定義（GCP管理）、カスタムと分類分けされているが、そう呼んでいないだけで中身はAWSと同じ
    - AWSに当てはめて考えると↓のようなイメージ
        - プリミティブ：「AdministratorAccess」や「ReadOnlyAccess」
        - 事前定義：「AmazonS3FullAccess」など
        - カスタム：ユーザーで任意で作成するポリシー（そのまま）
- IAMのポリシー名を選ばせる問題は意外と出る（どのポリシーを設定するか、みたいな問題）
    - この手の問題はAWSの試験だとほぼ出ない。Azureの試験では出る
- Network Firewall（AWSのSecurityGroup）はネットワークタグを設定し、そのタグを持っているインスタンス全てに適用する、ということができる
- ネットワークタグはFirewallの適用先で使うこともできるし、ルールのSourceとして使うこともできる（AWSでSecurityGroupIDを指定するのに近い）
- コマンド問題が多いので、Googleがよほどコマンドを使わせたいという意気込みはわかる
    - AWS CLIの構文とはだいぶ違っていて、Bash（Linux）かkubectlの構文に近いイメージ
- kubectlは普通に出る（直接聞かれるかは忘れた）
- AppEngineのフレキシブル環境のどこかフレキシブルだ問題（※個人の感想です）