GCP認定Professional Cloud Developer(PCD)を2日間で取ってきた
2022年はGCP認定チャレンジの年にしようとProfessional Cloud Developer(PCD)を申し込んで2022年2月7日にゲット。
毎度のごとく記憶が残っているうちに学習方法などを記録。
経歴
- GCP
- 業務でほんの少しだけかじりはじめる
- Associate Cloud Engineer(ACE)、Professional Cloud Architect(PCA)は取得済
学習方法
これまで同様に問題演習で仕上げる方針は変わらないが、久しぶりにQwiklabsも併用。
学習スケジュール
- 1日目:Qwiklabsでハンズオン
- 2日目:Whizlabsで問題演習
- (3日目:受験)
Qwiklabsでハンズオン
前回のPCAは書籍ベースの学習だったので、今回は実機へ触れようと思いQwiklabs活用へ。久しぶりにQwiklabsにアクセスしたらサブスクがなんと月額29ドルになっていた(以前は月額55ドル)。これは嬉しい。
上記の合格体験記をもとに今回は下記2つのクエストを受講
「Cloud Development」の中でも
ラボ「アプリ開発: バックエンド サービスの開発 - Python」
あたりはクイズアプリの中身を色々触りながら進めていくのでわかりやすい。
本当は下記もやっておきたかったが時間の都合で断念。今後やっておきたい。
Whizlabsで問題演習
毎度お馴染みのWhizlabsで問題演習&理解浅いところはググって調べるスタイル
これを2日目に2回分+無料分の計120問実施
参考にした記事(の一部)
- GCP Service Accountを理解する - Qiita
- サービスアカウントキー2種類(GCP-managed KeyとUser-managed keys)の確認など。キーローテーションは地味に運用負荷かかるから、自動化の仕組みを常に意識したいものだ
- Cloud Loggingの概念と仕組みをしっかり解説 - G-gen Tech Blog
- ログルーティングとシンクの概念確認
- GAになったCloud IAPを検証&解説! | apps-gcp.com
- Cloud Run で Identity-Aware Proxy (IAP) を使う
- 今後自分用に簡易サイトを構築した際にもさくっと認証の仕組みを入れられるので便利そう。Croud Run対応は幅が広がるなぁ
- Spot VMの登場でGCPがどう変わるか - Qiita
- プリエンプティブルVMとの違い確認。24時間の起動制限なしなのはありがたい
- GCEのMIGをまとめてみる - Qiita
- MIGのおさらい
- Cloud Endpointsと比較しながらApigee概要を学ぶ | クラウドエース株式会社
GCP認定Professional Cloud Architect(PCA)を3日間で取ってきた
2021年12月にAWS SA&DevOps Pro更新試験を申し込むついでに
GCP認定も申し込んで2022年1月11日にゲットしてきたので、記憶が残っているうちに学習方法などを記録。
本当は年末年始にしっかり学習する予定だったのだが、結局サボってしまい毎度のごとく直前週末3日間に追い込みをかけることに。。
経歴
- GCP
- 業務・プライベートともにほぼ未経験
- Associate Cloud Engineer(ACE)は取得済
学習方法
これまで同様に問題演習で仕上げる方針は変わらないが、インプットとしてちょうど最新のGCP解説書籍が出ていたので下記の方針とした。
学習スケジュール
- 1日目:書籍で最新のサービス全体像の把握
- 2日目:Whizlabsで問題演習
- 3日目:Whizlabsで問題演習(続き)
- (4日目:受験)
書籍で最新のサービス全体像把握
GCP認定Associate Cloud Engineer(ACE)取得後はGCPにもアンテナをほんのり張るようにしていたが、ちょうど良いタイミングで2021年秋にGCP図解即戦力の書籍が発売された。
しかも、著者の中に以前お世話になった先輩の名前があるではないかっ!…ということで速攻でポチり。
とても分かりやすくまとめられており、GCPをこれから学んでいこうという人にはおすすめの1冊であった。
・クラウドとは何ぞや、k8sの基本なども学べる
— Naoya Sugahara (@billest001) 2022年1月8日
・サービス採用基準やメリデメ、BigQueryコスト抑制方法など参考になる実用情報多数
ということで信頼の良書でした https://t.co/Y8w9hzDJTL
Whizlabsで問題演習
毎度お馴染みのWhizlabsで問題演習&理解浅いところはググって調べるスタイル
これを2日目夜と3日目に合わせて4回分(1回あたり50問)実施
参考にした記事(の一部)
GCP学習時
- Workload Identityを試す - Qiita
- GCPサービスアカウント(GSA)とKubernetesサービスアカウント(KSA)の紐付けの図がわかりやすい
- Cloud DLP を使って BigQuery の個人情報を検出してみた。 | DevelopersIO
- DLP(Data Loss Prevention)は馴染みがなかったので利用イメージを把握するための参考とした
その他学習教材
(未実施)Qwiklabsでハンズオン
本当は2日目にハンズオン学習環境のQwiklabsで下記を実施しておく予定であった。
だが2日目日中は家族との時間を優先したのでハンズオンの時間が取れず今回は見送り。今後別の試験を受ける際にゆとりを持ってハンズオンもやっておくとしよう。
Udemy
所属会社の恩恵でUdemy Business受け放題のアカウントを保有。
今回のGCP対策向けというわけではないが、2021年夏頃に一通りコンテナ周りを学習しておかねばと思い以下の「米シリコンバレーDevOps監修」シリーズを受講している。
- 米シリコンバレーDevOps監修!超Docker完全入門(2022)【優しい図解説とハンズオンLab付き】 | Udemy
- 米シリコンバレーDevOps監修!超Kubernetes完全入門(2022)【優しい図解説とハンズオン】 | Udemy
- 米シリコンバレーエンジニア監修!AWS EKS KubernetesハンズオンBest Practices (2022) | Udemy
- 米シリコンバレーDevOps監修!Istio Service Mesh ハンズオン+Kubernetes AWS EKS | Udemy
図解付きで体系的に学べるとてもわかりやすいベストセラー講座なので、これからコンテナを学習する人はとっかかりとしてこれを受講すればバッチリであるといっても過言ではない。
過去にこの講座を受けていたおかげで、今回の試験でKubernetesまわりやAnthos Service Mesh(ASM - マネージド版istio)が出てきても怯むことなく対応できたのかもしれない。
M1 Macで始めるDocker公式チュートリアル
コンテナ技術活用は当たり前となっており、現場でもAWS ECS/Fargateを商用稼働させ日々運用している。チームとしてはコンテナは使えていると言っていい。
一方で自分自身は上流工程やチームビルディング等をメインとして行なっており、がっつり手を動かしてこなかったためにコンテナの理解が不十分だという焦りがある。
「ぜんぜんわからない。俺だけ雰囲気でコンテナをやっている」状態から脱却するために、基礎から学んでいきたいと思う。
学習方針
書籍でがっつりインプットするより、まずは実際に手を動かしてみて分からない所は調べまくる。
そうしているうちに徐々に体系立てて理解が深まってくるというのが今までの経験則。
コンテナ学習記事を調べる中でちょうど「初めての技術要素を学ぶ流れ」を言語化してくれている記事もあったので引用。
ステップ1:実際に技術に触れる
● とりくみやすそうな目標を決め、それに適したgithub上のサンプルや公式のチュートリアルを行う
● 「理解は後からついてくる」という心構えで、深い理解をしていなくてもあまり気にしない。意外と作業しているうちに理解してくることもある
ステップ2:資料で頭を整理する
● ステップ1の中で不明な点は、Qiitaの記事等で調べる
● より深い理解をするために書籍やSlideShareの資料を読む
ステップ3:自分でイチからつくる
● ステップ1、2の知識を使って自分で設計する
● 自分の理解度を測ることができ、復習にもなる
Docker公式チュートリアルのススメ
まずはDockerをきちんと理解しておかねばならない。コンテナオーケストレーションはその後で。
巷にはコンテナ学習向けの記事が色々溢れてはいたが、Dockerの公式チュートリアルが体系的に学べそうであったので利用することにした。
Docker公式チュートリアル(英語)
Orientation and setup | Docker Documentation
公式チュートリアルは英語だが、日本語翻訳プロジェクトがいくつか動いている模様。
その中でも公式と同じUIのまま翻訳されており見やすかった下記を利用することにした(一部未翻訳もあり)
学べること
10部構成になっており、サンプルアプリを用いながら
- Docker Desktop
- 各種Docker基本コマンド
- データ保存方法(名前付きボリューム、バインドマウント)
- Docker Compose利用
などを網羅的に学べるので、とっかかりとしてわかりやすい。さすが公式。
チュートリアルでの詰まりポイントメモ
実行環境などの影響で一部チュートリアルの記述通りにやるとエラーになる箇所があったので、解決方法をメモしておく。
実行環境
MacBook Air (M1, 2020)
Docker Desktop for Mac (Version 3.5.1.7)
「第6部: バインドマウントの利用」でのdocker run時find Pythonエラー
バインドマウントしてコンテナ起動するために下記を実行すると、、、
docker run -dp 3000:3000 \ -w /app -v "$(pwd):/app" \ node:12-alpine \ sh -c "yarn install && yarn run dev"
下記のような「pythonが見つからない」エラー(一部抜粋)が発生する。
gyp ERR! find Python ********************************************************** gyp ERR! find Python You need to install the latest version of Python. gyp ERR! find Python Node-gyp should be able to find and use Python. If not, gyp ERR! find Python you can try one of the following options: gyp ERR! find Python - Use the switch --python="/path/to/pythonexecutable" gyp ERR! find Python (accepted by both node-gyp and npm) gyp ERR! find Python - Set the environment variable PYTHON gyp ERR! find Python - Set the npm configuration variable python: gyp ERR! find Python npm config set python "/path/to/pythonexecutable" gyp ERR! find Python For more information consult the documentation at: gyp ERR! find Python https://github.com/nodejs/node-gyp#installation gyp ERR! find Python **********************************************************
これについてはすでに先人が同じ問題にあたり、解決方法も記録してくれている。
Dockerのtutorialが動かなかった話 - Qiita
yarn前に「apk add --no-cache python make g++」を実行しておくことで解消する。
docker run -dp 3000:3000 \ -w /app -v "$(pwd):/app" \ node:12-alpine \ sh -c "apk add --no-cache python make g++ && yarn install && yarn run dev"
なお、上記の記事の方は第2章でも同様のエラーが発生したとのこと。しかし2021年7月現在、公式チュートリアル側を見ると第2章のDockerfileは正しいものになっている。
どうせなら6章のコマンドもセットで修正しておいて欲しかった。。
「第7部: マルチコンテナアプリケーション」M1 MacでのDocker MySQL起動エラー
チュートリアルに従いMySQLコンテナを起動しようとすると、、、
docker run -d \ --network todo-app --network-alias mysql \ -v todo-mysql-data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=secret \ -e MYSQL_DATABASE=todos \ mysql:5.7
下記のようなエラーに遭遇する。
Unable to find image 'mysql:5.7' locally 5.7: Pulling from library/mysql docker: no matching manifest for linux/arm64/v8 in the manifest list entries. See 'docker run --help'.
これもすでに先人の記事に解決策の情報あり。
M1Mac環境でDockerのMySQLを動かす - Qiita
M1 MacでDockerのMySQLコンテナが立ち上がらない問題の解消法 | 鉄駆ブログ
M1 Macのプラットフォームはarm64。一方でMySQLイメージのサポートプラットフォームがamd64なことに起因。
ということで、以下のように明示的にplatformをlinux/x86_64と指定することで無事にMySQLコンテナ起動。
docker run -d \ --platform linux/x86_64 \ --network todo-app --network-alias mysql \ -v todo-mysql-data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=secret \ -e MYSQL_DATABASE=todos \ mysql:5.7
ちなみにDocker Desktopのコンテナ一覧では警告アイコンが出る。
「Image may have poor performance, or fail, if run via emulation」
CloudFormationでインドVPN用EC2構築してみた(Youtube Premium格安利用を目指して)
Youtube中毒な日々を送っているのでPremiumに登録済なのだが、巷で話題のインドVPN経由で格安でPremium利用する方法を知りつつずっと手をつけていなかった。
そろそろ重い腰を上げてやってみようと思い、せっかくならインドVPNをAWSで構築することにした。
構築方針
AWSのムンバイリージョンにEC2を構築しSoftEther VPNを導入する。
IaC(Infrastructure as Code)を今後学んでいかねばと考えており、今回
- Pulumi:現場で導入中。未経験なのでキャッチアップしてきたい
- CloudFormation:現場で使われている。若干かじっている。
のどちらにするか迷ったが、早く格安Premiumにしたかったので多少わかるCloudFormationを採用することにした。Pulumiはまた次回触ってみよう。
また、せっかくなのでCloudFormationデザイナーを使ってみることにした(こちらは未経験)。
AWSインドVPN構築
最終的な構成イメージ
EC2接続のSession Manager用にIAMRole、InstanceProfileも作成しているが、
EC2 Instance Connectだけで事足りたので実はいらなかった。。詳細は後述
CloudFormationデザイナーでテンプレート作成
IAMRole/InstanceProfileを除いた基本形の
EC2インスタンス構築(VPC、Subnet、IGW、RouteTable込み)
は下記の記事がわかりやすく、基本踏襲させてもらった。
- CloudFormationデザイナーをはじめよう | DevelopersIO
- 【AWS】CloudFormationのデザイナーを使ってEC2インスタンス環境(VPC+Subnet+IGW+RouteTable含む)を構築する手順 | 100%レンタルサーバーを使いこなすサイト
ここまでで構築したリソースは下記となる
- VPC
- Subnet
- EIP
- InternetGateway
- RouteTable
- SecurityGroup
- EC2
参考記事との差分だけ記述しておく
SecurityGroup
鍵管理が不要なEC2 Instance Connectでの接続を想定し、
- タイプ:SSH
- ソース:13.233.177.0/29
を設定する。
このソースIPはムンバイリージョンでEC2 Instance Connectを使う場合のIPレンジとなる。(2021/05/16現在)
このIPレンジはAWS社が公開しているこちらから確認可能。
SoftEther VPNを利用するにあたってのUDPポートも設定しておく。
SGVPNEC2: Type: 'AWS::EC2::SecurityGroup' Properties: VpcId: !Ref VPCVPN GroupDescription: ssh login SecurityGroupIngress: - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: 13.233.177.0/29 - IpProtocol: udp FromPort: 4500 ToPort: 4500 CidrIp: 0.0.0.0/0 - IpProtocol: udp FromPort: 500 ToPort: 500 CidrIp: 0.0.0.0/0
EC2インスタンス
EC2 Instance Connectは下記Linux ディストリビューションがサポートされている。
ということで、
を使うことにした。
EC2YoutubeVPN: Type: 'AWS::EC2::Instance' Properties: ImageId: ami-010aff33ed5991201 InstanceType: t2.micro SubnetId: !Ref SubnetPublic SecurityGroupIds: - !Ref SGVPNEC2
実は当初はArmでやってみようと「64 ビット Arm、t4g.micro」で作ったが、SoftEher導入のmake時にエラーが発生。
下記記事にて類件対処方法もあるが、他にもエラーが出て解決に時間がかかりそうだったので無理せず諦めた。
[softeher] ARM系のCPUのSoC搭載SBCで、ソースからsofteherをビルド – ぷすぅ~ぷすぅ~
スタック作成
ここまでの構築でスタックを流し、無事に「CREATE_COMPLETE」となる
EC2 Instance ConnectでのEC2接続も確認できた。
EC2 Instance Connectではローカル端末からのコピペができないと思っていた(そのような記事があった)ので、SessionManagerでの接続もできるように対応した。
事後でローカル端末のコピーを普通にCtrl+VでEC2 Instance Connectでペーストできることがわかった。。
(オプション)Session Manager接続設定
今回の要件ではEC2 Instance Connectで十分であったが、せっかくなのでSession Managerの設定も記録しておく。
IAM関連だとCloudFormationデザイナーの記事はさくっとは見つからなかったので、通常の下記CloudFormation記事を参考にさせてもらうことにした。
- CloudFormationでEC2にIAMロールを付与する - Qiita
- [小ネタ]Session ManagerでアクセスできるEC2を1発で作成するCloudFormationテンプレート作ってみた | DevelopersIO
Session ManagerはAmazon Linux2ではデフォルトで導入済なので、あとは適切なポリシーを付与してあげるのみ。
IAMポリシーのAmazonSSMManagedInstanceCoreがアタッチされているIAMロールをEC2に付与してあげる必要があるとのことで、下記のように記述
IAMInsProfile: Type: 'AWS::IAM::InstanceProfile' Properties: Roles: - !Ref IAMRole IAMRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - ec2.amazonaws.com Action: - 'sts:AssumeRole' Path: / ManagedPolicyArns: - 'arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore'
これでスタック更新を行い、さっそくSession Managerで接続しようとするが、、
あれ、まだ接続できない。
【初心者向け】Session Manager でインスタンスが表示されない時のトラブルシュート | DevelopersIO
Session Manager初心者なので上記を見ると、再起動するとSSM側に認識されやすくなるとの記載あり。
IAMロールをつけ忘れていた場合に、IAMロールをアタッチしてもすぐにSSMコンソールで表示されないことがあります。早く確認したいときは、インスタンスを再起動すると、SSM側に認識されやすくなることがあります。
ということでさっそくEC2再起動したら無事にいけた!
SoftEther VPNインストール&VPN利用確認
下記記事が詳しいのでこれに従い導入を行った。ここでは割愛。
hacknote.jp
(後日談) SoftEather VPNのDocker版が存在。こっちのほうがスムーズに導入可。
blog.odaryo.com
Macから無事にVPN接続できたので、グローバルIPがEIP (ムンバイリージョン)になっているかここから確認したところ、きちんと変わっていることを確認
YoutubeのPremiumプラン変更
まずはこれまで契約していたPremium(Apple経由)サブスクを解除。YoutubeロゴもIN (インド)に変わっていることを確認、Premium料金もルピー表記になっている!早速ファミリープランで申し込み実施。
注:既存Premium解約して数時間してからやっとPremium再契約可能な画面が出るようになった。
CloudFormationデザイナー所感
テンプレートを可視化した上で、リソースの関連付けも直感的にできるのはわかりやすい。一方で、位置情報などのメタデータが入ってしまうのでそれによるテンプレート肥大化はネックかな。
CloudFormationデザイナーをまとめてくれているスライドがあり、そこでもやはりメタデータのことが書かれている。
CloudFormationデザイナーで、コードを編集するのはやめておいた方がいいです。メタデータが付くため、バージョン管理するときに差異がわかりづらくなります。
(中略)
コードの編集は、テキストエディタを使って図を見たいときにCloudFomationデザイナーを使うのがいいです。
【AWS CloudFormation入門】 初心者が気をつけたいこと5つ|スクショはつらいよ
一時的にサクッと環境作って破棄するならCloudFormationデザイナーでの作成・編集も有用だが、本格的に環境構築・改修を行うようなケースでは上記のように図を見るときだけデザイナー使うのがよいのかもしれない。
GCP未経験者が3日間でGCP認定Associate Cloud Engineer取ってみた
社内勉強会でAWS認定12冠について発表をした際、
「各種認定を取得したいならやることはただ1つ
"試験に申し込む"これのみ。これで自分を追い込めばいいのです。
実践例見せますね、GCP未経験だけど1週間後に試験申し込んでみました」
と勢いでGCP認定に申し込んだので、有言実行すべく学習&取得。
記憶が残っているうちに学習方法などを記録しておこう。
学習方法
AWS認定と同様に問題演習で仕上げる方針は変わらないが、初期インプットをどのように行うかざっとGCP認定の合格体験記を読み漁り、下記の方針とした。
学習スケジュール
- 1日目:書籍で主要サービス全体像の把握
- 2日目:Qwiklabsでハンズオン
- 3日目:Whizlabsで問題演習
- (4日目:受験)
書籍で主要サービス把握
合格体験記を見ると概ね下記2冊のどちらか(あるいは両方)がオススメされていた。
業務上エンタープライズ向けの知見をつけたかったので、書籍名から直感で「エンタープライズ設計ガイド」の方を選択。詳細は下記で記事にしている。
billest.hatenadiary.org
Qwiklabsでハンズオン
未経験なので実機を触ろうと思い、存在だけは知っていたが手をつけていなかったハンズオン学習環境のQwiklabsを使ってみることにした。
ちょっと触ってみて
「なにこれ、コース内容もしっかりしているしめちゃ有用じゃん」
と感動。今後の学習でも積極活用できると確信し、
月額55ドルですべてのラボが利用可能となる「アドバンテージサブスクリプション」プラン
に速攻で申し込んだ。
このプランについてはちょっと古いが紹介記事もある
AWSオンラインラボ『qwikLABS』の月額55ドルですべてのラボが利用可能な「アドバンテージサブスクリプション」プランを試してみた | DevelopersIO
今回やったクエストは時間の都合で入門編2つだけ。。
本当はこのあとに下記もやっておきたかった。今後やっていくとしよう。
Whizlabsで問題演習
毎度お馴染みのWhizlabsで問題演習&理解浅いところはググって調べるスタイル
参考にした記事(の一部)
GCP試験受験に向けて
- 【GCP資格】Associate Cloud Engineer試験勉強〜実施メモ - Qiita
- Qwiklabsの推奨クエストはこちらを参考にした
- 15時間でGCP Associate Cloud Engineer(ACE)に合格したので振り返り - フラミナル
- 短期集中型の学習方針の参考とした
試験当日 - AWS認定試験との違い
つい最近までAWS認定を何度も受けていたので、きっと同じ流れ(身分証明書2つ持参)だろうと事前確認せずにテストセンターに向かう。これが大きな間違いであった。
受験者承認コード
受付「受験者承認コードを見せてください」
自分「ふぁっ!?なんですかそれ」
受付「メールに記載してありましたよね。これがないと受験できません」
大慌てでメールを探し、なんとかコードが見つかり事なきを得る。
良い子のみんなは受験要項をきちんと確認しよう。
その他、AWS認定の時との違い
- 写真撮影と署名がなかった(ので受付処理が早い)
- メモ用のホワイトボードとペンが渡されなかった
所感
合格はしたが、試験中は結構わからない問題もあった。AWSの知識やインフラの知識でなんとかカバーした形。まだまだ「GCPは概要把握レベル」なので、使いこなせるようになるには継続的な学習が必要なことを改めて実感
試験問題は複数人でプロジェクトを適切に運用管理していくためのロールまわりやKubernetes関連が多かったイメージ。Kubernetesも全然触ってないのでこの辺も手を動かしながら学んでいかねばなぁ。
次に目指すはProfessionalだが、資格のためだけの学習とならないようQwiklabsや自分のGCPアカウントで何か作ってみるなどきちんと手を動かした上で臨むことにしよう。
GCP学習開始 - 「Google Cloud Platform エンタープライズ設計ガイド」で主要サービス把握から
GCP学習の機運
実務経験のあるAWSもまだまだ知らなくことは多く学習は継続せねばだが、ニーズの多様化に応えるべくマルチクラウドが当たり前になってくる(なっている)ので、よりよいアーキテクチャ提案のために他クラウドもどのようなものか把握しておかねばならない。
ということで2021年度はちょっくらGCP学習も始めてみることにする。
なぜGCP?
シェア的には急成長中でAWSとの2強になりうるAzureも学習候補ではあるが、
ということで、手をつけすぎても中途半端になるのでまずはGCPから。
ある程度GCPもわかるようになってからAzureにも手を出すとしよう。
GCP学習方針
実務経験のあるAWSと異なり、GCPは全くの未経験者。
手を動かしながら学ぶのが一番なのでその方針で行く予定だが、先に全体象だけは書籍でさくっと把握しておくことにする。
AWS有識者向けに書かれており、
AWSでいうところのXXXサービス
といった記述があるので、すんなりイメージしやすくありがたい。
書籍構成としては
- 主要サービス解説
- エンタープライズ設計シナリオ
となっており、主要サービスの全体概要把握にはちょうどよかった。
(ただし2018年5月刊行なので最新サービスは未掲載なので注意)
エンタープライズ設計シナリオは
- このパターンあるある。課題観点とか妙に親近感湧くなぁ
と思いつつ最後に著書プロフィールみたら納得。所縁がありましたわ。
エンタープライズ設計ガイドを読んで
AWSと比較しつつ、なるほどと思った箇所や気付きなどを記録しておこう
ライブマイグレーション
GCP の仮想マシンについて Google 側がメンテナンスをする際、ライブマイグレーションという機能を用いてサービスを止めずに行われます。
GCPとは何か | クラウドサービス徹底比較・徹底解説 (2021年版)
神機能かっ!
AWSだとインスタンスのリタイア通知受けとると定期リブートしてないようなサーバ群は
リブート計画立てねばとドタバタするが、それがないということか。AWSにも欲しいなぁ
Cloud Storage CDN機能
- 独自のコンテンツ配信ネットワーク(CDN)機能を備える
- 「エッジ」と呼ばれる拠点に自動的にデータが複製
- AWS CloudFrontのようなサービスを内包していることになる
最初からCDN機能あるのは便利やね。
とはいえ、最高のパフォーマンスを求めるならCloud CDNとの連携が推奨とのこと
公式ガイドにCloud Storageの組み込みキャッシュとCloud CDNのどちらにするかを選択するかの検討観点掲載あり
Caching | Cloud Storage | Google Cloud
Cloud SQL 高可用性
ゾーンの停止ではない理由でマスターが停止した場合、フェイルオーバーは発動されないので注意
との記述があり、「え、そうなん?」と思いググると同じ疑問持った人の記事が見つかる。
ゾーン障害以外の異常は自分で監視、フェイルオーバーしなくちゃならないのか、と思いつつ英語版ドキュメントを見ると、下記の通り。
(中略)
ゾーン障害以外だけでなく、 約 60 秒間プライマリが無応答の場合にフェイルオーバーするって書いてあるじゃん……。
【GCP】Cloud SQL for MySQL (高可用性構成) を構築 | ハックノート
どうやら当時(2018年)のGCP日本語ドキュメントの記述がいけてなかっただけなのかな。
今公式ドキュメント見ると日本語でもきちんとインスタンス障害のケースも明記してますな。
フェイルオーバーが発生するのは、プライマリ インスタンスが約 60 秒間応答しない場合、
またはプライマリ インスタンスが配置されているゾーンでサービスが停止している場合です。
高可用性構成の概要 | Cloud SQL for MySQL | Google Cloud
Cloud Spanner
現場でDB運用していると「水平スケーリングしてぇ」と思うこともあるので、
クラウドネイティブの選択肢としてはSpannerはとても魅力的だ。今後の動向も追っていくとしよう。
Spanner導入実績どんなもんかと見てみたら、ドラゴンクエストウォークにも使われてたのか。確かにドラクエは大規模アクセスコンテンツだよな〜
cloud.google.com
Stackdriver Debugger
【GCP入門編・第24回】 Stackdriver Debugger で本番環境のデバッグを行おう! | 株式会社トップゲート
本番稼働中のアプリに動作影響を与えることなくソースコードの特定行においてコールスタックやローカル変数をキャプチャできるデバッグツール
これも使いこなせれば障害切り分け時などの強力なツールになりそうだ
書籍刊行(2018年5月)以降のアップグレード
主要サービスに関して
本書執筆時点ではXXXとYYYが選択可能である
という注釈がついている箇所がいくつかあったので、2021年現在はどうなっているかざっと確認
Cloud SQLのサポートするDBエンジン
書籍では
- MySQL と PostgreSQLが選択可能
とあったが2021年現在は追加でSQL Serverも対応しているようだ。
Oracleのマネージドは今も対応してないのね。
Cloud SQL for PostgreSQL、Cloud SQL for MySQL、Cloud SQL for SQL Server
Cloud Functions
AWSのLambdaに該当。書籍時点ではベータ版であったが、今は立派に正式版。Lambdaが色々と活用の幅が広いので、きっとCloud Functionsも幅が広いのだろう。今後キャッチアップしていくことにしよう。
Cloud AutoMLのプロダクト
- Google提唱「AIの民主化」
- 世の中のさらに広い分野にAI活用を広めるには機械学習に関する人材が不足している企業でも簡単に利用できるようにしていく必要がある
- Cloud AutoMLはこれを目指したサービス
書籍ではAutoML(アルファ版)として「Cloud AutoML Vision」のみの紹介であったが、2021年現在だと当然のごとくサービス展開範囲が増えていますな
- プラットフォーム
- AutoML 統合型 AI Platform(プレビュー版)
- 視覚認識
- AutoML Vision
- AutoML Video Intelligence(ベータ版)
- 言語
- AutoML Natural Language
- AutoML Translation
- 構造化データ
- AutoML Tables(ベータ版)
メガシャキドリブンで挑んだAWS認定12冠達成の軌跡
はじめに
2021年3月20日付でAWS認定全12冠を達成。
最近では12冠も珍しくなく、様々な方が良質なおすすめ学習記事を掲載している。
体系立ててしっかり学習・対策しているそれらを王道とすると、私は短期間での合格を目的とした若干邪道(?)な学習方法だったように思う。
一応目的は達成できたので、記憶が風化しないうちに学習方法などを記録しておこう。
AWS認定取得の経緯
12冠達成時の経歴はエンジニア歴11年、AWS利用歴6年強。
一時期は設計、構築メインな時期もありつつ、最近は上流工程が多くあまり手が動かせてない。
とはいえ現場ではゴリゴリAWS使っているので、それなりの実践経験は積めている。
そんな中でAWS認定取得しようと思ったきっかけは以下の2つ
2019年02月
とあるお客様(SA Pro持ち)から
「みなさんAWS認定持ってないんですね(どやぁ)」
と言われ、
「ぐぬぬ、うちのメンバー誰も持ってない。
メンバーには技術力・構築実績持ってる人もいるのに。
癪なので自分が取ったるわい。どうせなら2つ取って追い越す。」
という"出来らあっ"精神で SA Pro & DevOps Pro取得。
2020年12月
社内チャットで「データ分析と機械学習取った」など
AWS認定資格を連チャン取得する人たちが現れはじめる。
自分も認定バッジ複数持ちに憧れを抱き、どうせなら全冠目指してみようと決意
だらけないように2021年3月末までの取得を目指し、無事に12冠達成
メガシャキドリブンの活用
XXXドリブン(XXXを起点にした/XXXをもとにした)という言葉があるが、自分はよく以下を使っているので、今回も使うことにした。
メガシャキドリブン
メガシャキ先生の力を頼り、短期決戦でアウトプットを出していく方法
この時期の平日は現場プロジェクトが活況で学習余力がなかったので、土日夜間を使ってメガシャキで追い込みをかけるという取得プランである。
受験履歴
※Googleスプレッドシートから表持ってくると表示崩れるな…まぁいっか
学習方法
理想は体系的にじっくり学習・実践で活かせるスキル獲得だが、今回そこまで悠長にやる学習余力確保がなかったため、あえて最短での合格を目標とした。
合格を目標としてもAWS認定なら何かしら得られるものがあるだろうという目論見であった。
やることは極力削ぎ落としシンプルに下記1〜3を主軸とし、業務経験ないものはオプションで追加学習を行った。
- テスト範囲の確認
- AWS BlackBelt確認
(オプション) 認定区分に応じた追加学習 - ひたすら問題演習(Whizlabsを活用)
STEP1 テスト範囲の確認
「試験ガイドのダウロード」を読み、どこが重点的に問われるかを確認する
例)AWS 認定ソリューションアーキテクト – プロフェッショナル
STEP2 AWS BlackBelt確認
試験に出る主要AWSサービス資料をざっと見る
(得意なサービスはすっ飛ばしてNext STEPへGO)
SlideShare/PDF/Youtube形式があるが、
視覚&聴覚インプットとしてYoutube動画版を推奨。
1.5〜1.75倍速&字幕付きで見ればそこまで時間も取らない
STEP3 Whizlabsを活用してひたすら問題演習
問題演習が肝で、今回ほぼこれしかやっていないといえる。
Whizlabs:様々な資格試験の実践テストコースが存在する海外サイト(有料)
全部英語だが、Chrome拡張機能「Google翻訳」でページ全体を翻訳すると捗る
間違えた部分、理解が浅い部分はAWS公式資料や各種記事で理解を深めるべし。
(オプション) 高度なネットワーキング
Twitterで「AWS認定」で検索しながら他の人がどんな学習しているか見ていたところ、NRIネットコム佐々木さん(AWS Top Engineers 2019&Ambassadors 2019)も近い時期に本試験を受けており、学習箇所のアウトプットをブログ記事にされていたためとても参考になった
(オプション) Alexaスキルビルダー
Alexa認定は2021年3月に廃止になってしまったが一応ご紹介
「Alexa道場」がわかりやすく鉄板
これを見ておくことで、簡単なAlexaスキル開発ならはじめられる
(オプション) データ分析
クラスメソッドさんの記事は日々お世話になっているが、
データ分析(Kinesis/Glue/Athena関連)は業務経験が乏しかったので読み漁った
おすすめ記事はこちら。ユーモアがあって好き。
(オプション) 機械学習
AWSが提供するEラーニングを活用。
1)Exam Readiness: AWS Certified Machine Learning - Specialty(Japanese)
https://www.aws.training/Details/eLearning?id=48059
2)The Elements of Data Science(Japanese)
https://www.aws.training/Details/eLearning?id=45311
特に上記の2)が体系的に学べてオススメ。
AWS認定の機械学習は半分以上が一般の機械学習に関する知見を問われるが、
上記2)は機械学習の教材としてとても良質な情報が詰め込まれている。
AWS認定資格を取って良かったこと
AWSベストプラクティスを体系的に学べた
今回は資格のための学習であったが、それでも学べるものがあった。
普段使っていないサービスや機能について把握することができたので、
今後のアーキテクチャ検討時の選択肢の幅が広がりそう
社内のAWS有識者との交流のきっかけになった
社内にAWSつよつよエンジニア(対外発表多数、AWS Top Engineers選出)が何名もいるが、今回の12冠取得体験談を社内AWS勉強会で発表することで交流ができた。
今後は彼らを見習って対外発表活動もしていきたい所存
さいごに
おそらくAWS認定12冠持ちのなかで
日本一(あるいは世界一)メガシャキを飲んでいる自負
がありますが、そんなメガシャキドリブンによる合格体験記でした。
AWS実務経験あり(最低1年以上)で、まずは合格したいという方には
このような邪道学習もありかなと思い事例として記事にしてみました。
今回の記事が誰かのお役に立てると幸いです。