はじめに
こちらは バイセルテクノロジーズ Advent Calendar 2023 の 13 日目の記事です。 前日の記事は伊与田さんの「開発のボトルネックを解消してチームの生産性を上げた話」でした。
こんにちは、7月にバイセルテクノロジーズ(以下、バイセル)へジョインした岩下(@iwashi623)です。
普段は、バイセルが開発中のリユースプラットフォーム、CosmosのStoreというサービスを開発しています。得意な開発領域はバックエンドです。
現在のStoreチームにはインフラ専任の人員はおらず、主にバックエンドエンジニアのメンバーがインフラのリソースを管理・運用しています。
私も中途としてジョインしたからには、「サービス全体の安定稼働のためにインフラもガッツリ触るぞ!」と意気込んでいました。しかしながら、とある困りごとがありなかなかそこまで踏み込んだ障害対応・環境改善はできていませんでした。
そこで本記事では、私が実際に困った内容やその状況打開のためにやったことと、バイセルのエンジニアが使うことのできる制度(福利厚生)について書いていきます。
困ったこと
Storeのバックエンド・インフラの技術スタックは、
- APIサーバーをGoで開発している
- APIの形式はGraphQL
- インフラにはGoogle Cloud(以下、GCP)を使用している
- アプリケーションの主な実行環境はCloud Run
- RDBにはCloud SQL
- 処理によってはCloud Functionsに切り出されているものもある。
- etc...
といった内容です。
私の困った内容はとてもシンプルで、GCPのサービス・コンソールの操作が全然わからないというものです。
前職ではAmazon Web Service(以下、AWS)を使用していました。また、AWSの認定資格もいくつか持っています。資格だけでなく実務の経験も、自分の持ち合わせているスキル中では多い方です。
一方でGCPのリソースを使った経験は入社した段階でほとんどなく、全くの初心者と言えるレベルでした。そのため、仕様書やドキュメントを見ても理解が進まず、なにか1つキャッチアップするのに想定以上の時間がかかっていました。
具体的には、
- Cloud Runってなんだ? コンテナが動いているんだろうな。
- チームのリリースの切り戻し手順に記載されている「トラフィックを元のリビジョンに戻す」とは?
- サービスアカウント(以下、SA)、IAMロールの概念がAWSと違いすぎて全くわからない。
- これは実際AWSの感覚でコンソールをいじっていたら迷子になりました。
- Cloud Loggingにどんなログが流れてきているのかわからないし、操作方法もわからない。
といった具合で、だんだんGCPのコンソールを触ることも怖くなっていました。
GCPの認定資格を受けることにした
この状況が続けばチームに貢献するのが難しいと感じたため、GCPの認定資格を取得して状況を改善しようと考えました。
GCPの認定資格とは
文字通りGCPが行っている、知識やスキルを問う認定試験のことです。AWSやAzureなどの他のクラウドベンダーも同じような認定資格を用意しています。
今回自分が受験したのはAssociate Cloud Engineer(以下、ACE)というもので、GCPを使うことになったエンジニアの入門的な内容が問われる資格となります。
実務経験のあるエンジニアではない人(ex: ビジネス職の方など)でしたら、Cloud Digital Leaderから受験することが推奨されています。
なぜ認定資格なのか
私が様々ある勉強方針の中で認定資格を選んだのには2つの理由があります。
- GCP自体を網羅的に勉強するのにうってつけなこと
- わかりやすい目標でモチベーションを維持しやすいこと
です。
私の受験したACEは、出題範囲が特定の領域に定まっていません。サーバー(GCE)、コンテナ(Cloud Run)、PaaS(GAE)、DB(Cloud SQL)、ネットワーク(VPC)、その他諸々幅広い範囲のマネージドサービスや、gloud
, bq
, gsutil
, kubectl
、その他のCLIコマンドラインツールのことについて出題されます。つまり、試験範囲が広いです。
仮に認定資格の勉強の過程で直接触れていない問題が実務で発生しても、その問題の周辺には認定資格の勉強の過程で得た知識を活かせる箇所が何かしらあります。問題が起きたときにすべてを0から調べるのはすごく心理的な負荷が高いです。しかし「少しならわかる」状態を作っておけば、そういった不安が多少軽減されると考えました。
実際、前職の新卒入社後に実務でわからないことだらけだったとき、AWSのアソシエイト系の認定資格を取得しました。そうすると、だんだん実務の内容がわかるようになり、その後のインフラ・クラウドを使った業務がとても楽しく・気負わずできるようになった経験があります。そういった経験があったのも、今回まず認定資格取得という勉強方針を選んだきっかけになっています。
また、認定資格の勉強には合格というゴールがあります。ただ闇雲に勉強を続けるのは、モチベーションを保つのが難しいです。
合否というわかりやすい結果が出て、ある程度の達成感を短期間で得られる認定資格の勉強の方が頑張れそうという方も多いのではないのでしょうか? そういう意味でも、未経験の分野を勉強する最初のハードルとしてはとても良いと思ってます。
ちなみにACEの受験には125USD(=執筆現在の円ドルレートで19157円)という費用がかかります。 後で詳しく述べますが、バイセルのTech組織には業務に関連する資格取得にかかる費用を会社が負担する制度があり、一歩目を踏み出す背中を押してもらえました。
勉強の内容
学習時間・勉強場所
- 学習期間: 2023年11月4日-2023年11月23日
- 学習時間: 40時間程度
学習時間については正確には測っていないので概算です。大体毎日、2時間弱勉強していました。ただし仮にも実務経験があり、AWSの認定資格を持っている人間が要した時間です。クラウド未経験の方ならもっとかかるでしょうし、逆に何年もGCPに触れているひとであればもっと短い時間で取得できるかもしれません。
ちなみに、勉強場所はドトールです。ドトールの一人席の机は広いところが多くて、おすすめです。
学習資料
参考書には、GCPの教科書とGCPの教科書Ⅱを使いました。いずれも問題集へ入る前に、ざっくりとした全体像を理解をするために使用しました。
次に以下の問題集・資料を使って学習しました。
- Udemy
これだけで合格!Google Cloud Associate Cloud Engineer模擬試験問題集- 問題量が多くて、1周目はかなり難しいです。2回3回と繰り返して解いていくことで定着させましょう。
- 定期的にセールをやっているので、その時期に買うのが圧倒的におすすめです。
- 公式の模擬試験
- GCPが公式でHPで公開している。実際に試験を作っているGCPが公開しているものなだけあり、本試験に一番近いです。
- 公式ドキュメント
- エンジニアの基本ですが、上記の問題集や参考書で不明な箇所は公式のドキュメントで調べましょう。個人的な感想ですが、GCPのドキュメントは日本語が辛いことも多く、また更新されていないことも多い印象なので、英語版を読むことがおすすめです。
- 先人たちのブログを読む
- AWSほどではありませんが、GCPの認定資格の体験記も蓄積されてきています。合格したら自身が発信することでインターネットに還元していく姿勢は見習っていきたいです。
AWSの認定資格との違い
この部分に言及されているブログは数が少なかったので、AWSの認定資格をいくつか(SAA, DVA, SOA, SAP)持っている自分なりに言及します。
大前提として試験問題そのものに対しては述べることはできないので、その制約の中で比較をするのはなかなか難しいです。
ただ、勉強していて差を感じた部分は、学習のしやすさの違いです。AWSの方が情報や参考書が多く出てくるので、学習ルートがある程度見やすいかなという印象です。
また問題集を進めていく中で感じたこととして、同じアソシエイトのレベルの試験(AWS->SAA, GCP->ACE)で、Kubernetes(以下、k8s)の前提知識があると有利になるのはGCPです。AWSの問題集の中でk8sの知識を問う問題を私の観測範囲では見たことがなく、逆にGCPの問題集や参考書では多く出てきました。
ただし決して難しい内容ではなく、k8sの概要さえ知っていれば即答できるような問題が多く、逆に点数の稼ぎどころです。しっかり学習しましょう。先述したGCPの教科書Ⅱの内容が頭に入っていれば問題ないです。
(余談)受験方法について
全く技術的な話ではありませんが、受験方法はオンライン・オフラインの二種類があります。
私はずっとオフラインで認定資格を受験していますし、人にもオフラインをおすすめしたいです。当日自宅のPCにトラブルがおこるリスクなどを考えると、試験会場が近くにある人はオフラインの方がいいです。
AWSと比較して、GCPの試験会場は東京近郊に固まっているので、地方にお住まいの方はオフラインでの受験が難しいかもしれません。
私は今回池袋西口の近くの会場にしましたが、テストセンターの設備はAWSのものと大差なかったです。また、オフライン受験の方は免許証などの身分証明書を忘れないようにしましょう。忘れるとたぶん受験できません。
受験結果と勉強の効果
結果
合格です。
具体的な点数のレポートなどは返ってきませんでしたが、試験終了後のPCの画面に「合格」の文字がその場で表示されたので安心しました。
学習の効果
合格したのはつい最近なのですが、学習期間の間から早速効果を実感することがいくつかありました。
- IAMロールに紐づいている権限が具体的にどのリソースを対象にしているのかを探してコンソール迷子にならなくなった。
- これはAWSの感覚でIAMを捉えていたのが間違いだったと気づきました。GCPではAWSでいうリソースポリシーを使ってロールやSAと個別のリソースをバインディングするものなので、IAMのコンソールから具体的な対象リソースは閲覧できないのだと知りました。
- データ分析が必要なときにBigQueryのテーブルを作ってサクッとJobを実行できた
- ローカルのPHPで実行が難しかった大きなCSVファイルの分析を、BQにテーブルを作成して迅速に行うことができました。これも、学習の過程で「CSVをCloud Storageに置けばBQの外部リソースのテーブルデータとして扱える」と学習したためです。
Webエンジニアのキャリアと資格
私の経験則でしかありませんが、資格そのものはWebエンジニアの転職やキャリアアップにそれ単体で寄与するものではないと思っています。実際、転職活動中に資格が評価されたことはなかったように思いました。
しかし、資格取得中に得た知識をつかってなにか技術課題を解決したり、そういった活動をアウトプットしたことは間違いなく評価に繋がりました。
「クラウドは難しい」「インフラが怖い、個人の学習では習得するのは難しい」と考えている方にこそ、認定資格の学習はちょうどよいハードルの学習で踏み出しやすい一歩であることが伝わってほしいなと思っています。
バイセルのエンジニアを支える制度
バイセルのTech組織には、エンジニアの自己研鑽にかかる費用面の負担を補助してくれる以下のような制度があります。
- 書籍購入補助
- 資格取得費用補助
- 勉強会・カンファレンス等の参加費用補助
- AWS/GCP学習費用補助
今回私は資格取得費用補助の制度を利用して、ACEの資格を受験しました。GCPには今回受験したACEの上位資格であるProfessional Cloud Architectや、ビジネス要件や技術要件をスケーラブルで費用効果の高いデータベースソリューションに変換する知識が問われる、Professional Cloud Database Engineerなど、他にも様々な認定資格があるので、今後もチャレンジしていきたいなと思っています。
おわりに
私のACE合格体験記のような記事にお付き合いいただきありがとうございました。AWSを初めて勉強したときと同様、勉強するにしたがってこれからGCPのマネージドサービスを触っていくことにワクワクしています。
バイセルではGCPを含むクラウドサービスや、本ブログで紹介されている技術を活用した様々な挑戦を続けています。「転職のことは考えていないけど、中の人と話してみたい!」などの軽い動機でも大歓迎ですので、カジュアルにお話できると嬉しいです。
明日のバイセルテクノロジーズ Advent Calendar 2023 は加藤さんの「データ拡大に伴う長期運用プロダクトの改善事例紹介」です、そちらもぜひ併せて読んでみてください!