未来は僕以外の手の中

SI屋がIT技術やビジネスのことなどを気ままに書き綴ってみるなど

GCP認定Professional Cloud Developer(PCD)を2日間で取ってきた

2022年はGCP認定チャレンジの年にしようとProfessional Cloud Developer(PCD)を申し込んで2022年2月7日にゲット。
毎度のごとく記憶が残っているうちに学習方法などを記録。

経歴

  • GCP
    • 業務でほんの少しだけかじりはじめる
    • Associate Cloud Engineer(ACE)、Professional Cloud Architect(PCA)は取得済

billest.hatenadiary.org

  • AWS
    • 実務経験7年、AWS認定12冠持ちなのでそれなりの知見あり

billest.hatenadiary.org

学習方法

これまで同様に問題演習で仕上げる方針は変わらないが、久しぶりにQwiklabsも併用。

学習スケジュール

  • 1日目:Qwiklabsでハンズオン
  • 2日目:Whizlabsで問題演習
  • (3日目:受験)

Qwiklabsでハンズオン

前回のPCAは書籍ベースの学習だったので、今回は実機へ触れようと思いQwiklabs活用へ。久しぶりにQwiklabsにアクセスしたらサブスクがなんと月額29ドルになっていた(以前は月額55ドル)。これは嬉しい。

上記の合格体験記をもとに今回は下記2つのクエストを受講

「Cloud Development」の中でも
 ラボ「アプリ開発: バックエンド サービスの開発 - Python
あたりはクイズアプリの中身を色々触りながら進めていくのでわかりやすい。


本当は下記もやっておきたかったが時間の都合で断念。今後やっておきたい。

Whizlabsで問題演習

毎度お馴染みのWhizlabsで問題演習&理解浅いところはググって調べるスタイル
これを2日目に2回分+無料分の計120問実施

参考にした記事(の一部)

所感

前回Professional Cloud Architect(PCA)を取得してから間もあいてないこともあり、そのときの学習+クラウド経験も活かしながら対応できた。
Professional Cloud Developer(PCD)もAWSプロフェッショナルよりは易しい難易度であるな。

最近業務でGCPのNWまわりの整備を進めているのだが、やはり実践になるとまだまだわからないことが多く1歩1歩手探りで進めている。
GCPのNW知見が早急に必要なので、次に取得するとしたらProfessional Cloud Network Engineerかな〜。



GCP認定Professional Cloud Architect(PCA)を3日間で取ってきた

2021年12月にAWS SA&DevOps Pro更新試験を申し込むついでに
GCP認定も申し込んで2022年1月11日にゲットしてきたので、記憶が残っているうちに学習方法などを記録。

本当は年末年始にしっかり学習する予定だったのだが、結局サボってしまい毎度のごとく直前週末3日間に追い込みをかけることに。。

経歴

  • GCP
    • 業務・プライベートともにほぼ未経験
    • Associate Cloud Engineer(ACE)は取得済

billest.hatenadiary.org

  • AWS
    • 実務経験7年、AWS認定12冠持ちなのでそれなりの知見あり

billest.hatenadiary.org

学習方法

これまで同様に問題演習で仕上げる方針は変わらないが、インプットとしてちょうど最新のGCP解説書籍が出ていたので下記の方針とした。

学習スケジュール

  • 1日目:書籍で最新のサービス全体像の把握
  • 2日目:Whizlabsで問題演習
  • 3日目:Whizlabsで問題演習(続き)
  • (4日目:受験)

書籍で最新のサービス全体像把握

GCP認定Associate Cloud Engineer(ACE)取得後はGCPにもアンテナをほんのり張るようにしていたが、ちょうど良いタイミングで2021年秋にGCP図解即戦力の書籍が発売された。

しかも、著者の中に以前お世話になった先輩の名前があるではないかっ!…ということで速攻でポチり。

とても分かりやすくまとめられており、GCPをこれから学んでいこうという人にはおすすめの1冊であった。

Whizlabsで問題演習

毎度お馴染みのWhizlabsで問題演習&理解浅いところはググって調べるスタイル
これを2日目夜と3日目に合わせて4回分(1回あたり50問)実施

参考にした記事(の一部)

GCP学習時

その他学習教材

(未実施)Qwiklabsでハンズオン

本当は2日目にハンズオン学習環境のQwiklabsで下記を実施しておく予定であった。

だが2日目日中は家族との時間を優先したのでハンズオンの時間が取れず今回は見送り。今後別の試験を受ける際にゆとりを持ってハンズオンもやっておくとしよう。

Udemy

所属会社の恩恵でUdemy Business受け放題のアカウントを保有

今回のGCP対策向けというわけではないが、2021年夏頃に一通りコンテナ周りを学習しておかねばと思い以下の「米シリコンバレーDevOps監修」シリーズを受講している。

図解付きで体系的に学べるとてもわかりやすいベストセラー講座なので、これからコンテナを学習する人はとっかかりとしてこれを受講すればバッチリであるといっても過言ではない。

過去にこの講座を受けていたおかげで、今回の試験でKubernetesまわりやAnthos Service Mesh(ASM - マネージド版istio)が出てきても怯むことなく対応できたのかもしれない。

所感

Associate Cloud Engineer(ACE)の時はGCPの仕様、コマンドなどを知識ベースで聞かれて結構わからない問題もあった。
一方で今回のProfessional Cloud Architect(PCA)は要件を満たすための最適なアーキテクチャは何かなど考える問題が多いため、これまでのクラウド(AWS)経験も活かしながら回答することができた。
難易度的にAWSプロフェッショナルより易しいかなといったところ。

とりあえずProfessionalの難易度相場もわかったので、他のProfessionalも勢いつけたままゲットしていくとしよう。



M1 Macで始めるDocker公式チュートリアル

コンテナ技術活用は当たり前となっており、現場でもAWS ECS/Fargateを商用稼働させ日々運用している。チームとしてはコンテナは使えていると言っていい。

一方で自分自身は上流工程やチームビルディング等をメインとして行なっており、がっつり手を動かしてこなかったためにコンテナの理解が不十分だという焦りがある。
「ぜんぜんわからない。俺だけ雰囲気でコンテナをやっている」状態から脱却するために、基礎から学んでいきたいと思う。

学習方針

書籍でがっつりインプットするより、まずは実際に手を動かしてみて分からない所は調べまくる。
そうしているうちに徐々に体系立てて理解が深まってくるというのが今までの経験則。

コンテナ学習記事を調べる中でちょうど「初めての技術要素を学ぶ流れ」を言語化してくれている記事もあったので引用。

ステップ1:実際に技術に触れる
● とりくみやすそうな目標を決め、それに適したgithub上のサンプルや公式のチュートリアルを行う
● 「理解は後からついてくる」という心構えで、深い理解をしていなくてもあまり気にしない。意外と作業しているうちに理解してくることもある
ステップ2:資料で頭を整理する
● ステップ1の中で不明な点は、Qiitaの記事等で調べる
● より深い理解をするために書籍やSlideShareの資料を読む
ステップ3:自分でイチからつくる
● ステップ1、2の知識を使って自分で設計する
● 自分の理解度を測ることができ、復習にもなる

新人がコンテナを理解した学習方法 - Qiita

Docker公式チュートリアルのススメ

まずはDockerをきちんと理解しておかねばならない。コンテナオーケストレーションはその後で。
巷にはコンテナ学習向けの記事が色々溢れてはいたが、Dockerの公式チュートリアルが体系的に学べそうであったので利用することにした。

Docker公式チュートリアル(英語)
Orientation and setup | Docker Documentation

公式チュートリアルは英語だが、日本語翻訳プロジェクトがいくつか動いている模様。
その中でも公式と同じUIのまま翻訳されており見やすかった下記を利用することにした(一部未翻訳もあり)

matsuand.github.io

学べること

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章のコマンドもセットで修正しておいて欲しかった。。

f:id:billest:20210704213022p:plain

「第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」
f:id:billest:20210704214840p:plain

最後に

公式チュートリアルということで初歩中の初歩だが、やはり実際に手を動かしたほうが頭に入りやすい。
チュートリアルでさえも上述のようにエラーが出るケースもあり、その際はトラブルシュートで色々調べたりもするので。

今後はkubernetes理解やクラウド(AWS/GCP)へのデプロイ、CICDパイプラインまわりをやっていく予定。まだまだコンテナの旅は始まったばかりだ〜

CloudFormationでインドVPN用EC2構築してみた(Youtube Premium格安利用を目指して)

Youtube中毒な日々を送っているのでPremiumに登録済なのだが、巷で話題のインドVPN経由で格安でPremium利用する方法を知りつつずっと手をつけていなかった。

ramune-channel.com

そろそろ重い腰を上げてやってみようと思い、せっかくならインドVPNAWSで構築することにした。

構築方針

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込み)
は下記の記事がわかりやすく、基本踏襲させてもらった。


ここまでで構築したリソースは下記となる

  • 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 ディストリビューションがサポートされている。

ということで、

  • Amazon Linux 2 AMI (HVM) ami-010aff33ed5991201 (64 ビット x86)
  • 無料枠のあるt2.micro

を使うことにした。

  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記事を参考にさせてもらうことにした。

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デザイナーをまとめてくれているスライドがあり、そこでもやはりメタデータのことが書かれている。

www.slideshare.net

CloudFormationデザイナーで、コードを編集するのはやめておいた方がいいです。メタデータが付くため、バージョン管理するときに差異がわかりづらくなります。
(中略)
コードの編集は、テキストエディタを使って図を見たいときにCloudFomationデザイナーを使うのがいいです。
【AWS CloudFormation入門】 初心者が気をつけたいこと5つ|スクショはつらいよ

一時的にサクッと環境作って破棄するならCloudFormationデザイナーでの作成・編集も有用だが、本格的に環境構築・改修を行うようなケースでは上記のように図を見るときだけデザイナー使うのがよいのかもしれない。



GCP未経験者が3日間でGCP認定Associate Cloud Engineer取ってみた

社内勉強会でAWS認定12冠について発表をした際、

 「各種認定を取得したいならやることはただ1つ
  "試験に申し込む"これのみ。これで自分を追い込めばいいのです。
  実践例見せますね、GCP未経験だけど1週間後に試験申し込んでみました」

と勢いでGCP認定に申し込んだので、有言実行すべく学習&取得。
記憶が残っているうちに学習方法などを記録しておこう。

経歴

  • GCP
    • 業務・プライベートともに未経験
  • AWS
    • 実務経験6年、AWS認定12冠持ちなのでそれなりの知識あり

billest.hatenadiary.org

学習方法

AWS認定と同様に問題演習で仕上げる方針は変わらないが、初期インプットをどのように行うかざっとGCP認定の合格体験記を読み漁り、下記の方針とした。

学習スケジュール

  • 1日目:書籍で主要サービス全体像の把握
  • 2日目:Qwiklabsでハンズオン
  • 3日目:Whizlabsで問題演習
  • (4日目:受験)

書籍で主要サービス把握

合格体験記を見ると概ね下記2冊のどちらか(あるいは両方)がオススメされていた。

GCPの教科書

GCPの教科書

業務上エンタープライズ向けの知見をつけたかったので、書籍名から直感で「エンタープライズ設計ガイド」の方を選択。詳細は下記で記事にしている。
billest.hatenadiary.org

Qwiklabsでハンズオン

未経験なので実機を触ろうと思い、存在だけは知っていたが手をつけていなかったハンズオン学習環境のQwiklabsを使ってみることにした。

www.qwiklabs.com

ちょっと触ってみて
 「なにこれ、コース内容もしっかりしているしめちゃ有用じゃん
と感動。今後の学習でも積極活用できると確信し、
 月額55ドルですべてのラボが利用可能となる「アドバンテージサブスクリプション」プラン
に速攻で申し込んだ。

このプランについてはちょっと古いが紹介記事もある
AWSオンラインラボ『qwikLABS』の月額55ドルですべてのラボが利用可能な「アドバンテージサブスクリプション」プランを試してみた | DevelopersIO

今回やったクエストは時間の都合で入門編2つだけ。。

本当はこのあとに下記もやっておきたかった。今後やっていくとしよう。

Whizlabsで問題演習

毎度お馴染みのWhizlabsで問題演習&理解浅いところはググって調べるスタイル

参考にした記事(の一部)

GCP試験受験に向けて
GCP学習時

試験当日 - AWS認定試験との違い

つい最近までAWS認定を何度も受けていたので、きっと同じ流れ(身分証明書2つ持参)だろうと事前確認せずにテストセンターに向かう。これが大きな間違いであった。

受験者承認コード
 受付「受験者承認コードを見せてください」
 自分「ふぁっ!?なんですかそれ」
 受付「メールに記載してありましたよね。これがないと受験できません」

 大慌てでメールを探し、なんとかコードが見つかり事なきを得る。
 良い子のみんなは受験要項をきちんと確認しよう。

その他、AWS認定の時との違い

  • 写真撮影と署名がなかった(ので受付処理が早い)
  • メモ用のホワイトボードとペンが渡されなかった

所感

合格はしたが、試験中は結構わからない問題もあった。AWSの知識やインフラの知識でなんとかカバーした形。まだまだ「GCPは概要把握レベル」なので、使いこなせるようになるには継続的な学習が必要なことを改めて実感

試験問題は複数人でプロジェクトを適切に運用管理していくためのロールまわりやKubernetes関連が多かったイメージ。Kubernetesも全然触ってないのでこの辺も手を動かしながら学んでいかねばなぁ。

次に目指すはProfessionalだが、資格のためだけの学習とならないようQwiklabsや自分のGCPアカウントで何か作ってみるなどきちんと手を動かした上で臨むことにしよう。


GCP学習開始 - 「Google Cloud Platform エンタープライズ設計ガイド」で主要サービス把握から

GCP学習の機運

実務経験のあるAWSもまだまだ知らなくことは多く学習は継続せねばだが、ニーズの多様化に応えるべくマルチクラウドが当たり前になってくる(なっている)ので、よりよいアーキテクチャ提案のために他クラウドもどのようなものか把握しておかねばならない。
ということで2021年度はちょっくらGCP学習も始めてみることにする。

なぜGCP

cafe-dc.com

シェア的には急成長中でAWSとの2強になりうるAzureも学習候補ではあるが、

  • 現場でもGCP使い始めていて、今後すぐに活かせる機会がありそう
  • 単純にGCPのテクノロジーどんなものか興味あり

ということで、手をつけすぎても中途半端になるのでまずはGCPから。
ある程度GCPもわかるようになってからAzureにも手を出すとしよう。

GCP学習方針

実務経験のあるAWSと異なり、GCPは全くの未経験者
手を動かしながら学ぶのが一番なのでその方針で行く予定だが、先に全体象だけは書籍でさくっと把握しておくことにする。

AWS有識者向けに書かれており、
 AWSでいうところのXXXサービス
といった記述があるので、すんなりイメージしやすくありがたい。

書籍構成としては

  • 主要サービス解説
    • コンピューティング
    • ストレージ
    • ネットワーキング
    • ビッグデータ
    • 機械学習
    • アカウント管理・請求管理
    • 運用監視
  • エンタープライズ設計シナリオ
    • GCPを活用したWebシステムの設計/構築
    • GCPを活用したハイブリッドクラウド環境の構築
    • Webサイトと業務システムのデータ統合/分析を小さく始める

となっており、主要サービスの全体概要把握にはちょうどよかった。
(ただし2018年5月刊行なので最新サービスは未掲載なので注意)

エンタープライズ設計シナリオは

  • このパターンあるある。課題観点とか妙に親近感湧くなぁ

と思いつつ最後に著書プロフィールみたら納得。所縁がありましたわ。

エンタープライズ設計ガイドを読んで

AWSと比較しつつ、なるほどと思った箇所や気付きなどを記録しておこう

ライブマイグレーション

GCP仮想マシンについて Google 側がメンテナンスをする際、ライブマイグレーションという機能を用いてサービスを止めずに行われます。
GCPとは何か | クラウドサービス徹底比較・徹底解説 (2021年版)

神機能かっ!
AWSだとインスタンスのリタイア通知受けとると定期リブートしてないようなサーバ群は
リブート計画立てねばとドタバタするが、それがないということか。AWSにも欲しいなぁ

Cloud Storage CDN機能

最初から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

  • 高い整合性と大規模水平スケーリングの機能を備えた従来のRDBとNoSQLの"いいとこ取り"を実現
  • 従来型RDBに比べ設計上の制約が存在するので既存RDBからの移行は簡単ではない

現場でDB運用していると「水平スケーリングしてぇ」と思うこともあるので、
クラウドネイティブの選択肢としてはSpannerはとても魅力的だ。今後の動向も追っていくとしよう。

Spanner導入実績どんなもんかと見てみたら、ドラゴンクエストウォークにも使われてたのか。確かにドラクエは大規模アクセスコンテンツだよな〜
cloud.google.com

Stackdriver Debugger

【GCP入門編・第24回】 Stackdriver Debugger で本番環境のデバッグを行おう! | 株式会社トップゲート

本番稼働中のアプリに動作影響を与えることなくソースコードの特定行においてコールスタックやローカル変数をキャプチャできるデバッグツール

これも使いこなせれば障害切り分け時などの強力なツールになりそうだ

書籍刊行(2018年5月)以降のアップグレード

主要サービスに関して
 本書執筆時点ではXXXとYYYが選択可能である
という注釈がついている箇所がいくつかあったので、2021年現在はどうなっているかざっと確認

Cloud SQLのサポートするDBエンジン

書籍では

とあったが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(ベータ版)

cloud.google.com

メガシャキドリブンで挑んだ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をもとにした)という言葉があるが、自分はよく以下を使っているので、今回も使うことにした。

メガシャキドリブン
 メガシャキ先生の力を頼り、短期決戦でアウトプットを出していく方法


この時期の平日は現場プロジェクトが活況で学習余力がなかったので、土日夜間を使ってメガシャキで追い込みをかけるという取得プランである。 

メガシャキ 100ml×6本

メガシャキ 100ml×6本

  • 発売日: 2015/03/09
  • メディア: ヘルスケア&ケア用品
 

 

受験履歴

AWS認定資格 受験日 メガシャキ
ソリューションアーキテクト - プロフェッショナル 2019/02/03 1
DevOpsエンジニア - プロフェッショナル 2019/02/07 1
セキュリティ 2020/12/06 2
データベース 2020/12/28 2
データ分析 2021/01/31 4
ネットワーキング 2021/02/15 3
Alexaスキルビルダー 2021/02/22 1
機械学習 2021/03/07 7
ソリューションアーキテクト - アソシエイト 2021/03/13 1
クラウドラクティショナー 2021/03/13 0
デベロッパー - アソシエイト 2021/03/20 1
SysOps アドミニストレータ - アソシエイト 2021/03/20 1

 ※Googleスプレッドシートから表持ってくると表示崩れるな…まぁいっか

 
 
 
View this post on Instagram
 
 
 

A post shared by NAO S (@billest001)

学習方法

理想は体系的にじっくり学習・実践で活かせるスキル獲得だが、今回そこまで悠長にやる学習余力確保がなかったため、あえて最短での合格を目標とした。
合格を目標としてもAWS認定なら何かしら得られるものがあるだろうという目論見であった。

やることは極力削ぎ落としシンプルに下記1〜3を主軸とし、業務経験ないものはオプションで追加学習を行った。

  1. テスト範囲の確認
  2. AWS BlackBelt確認
    (オプション) 認定区分に応じた追加学習
  3. ひたすら問題演習(Whizlabsを活用)

STEP1 テスト範囲の確認

「試験ガイドのダウロード」を読み、どこが重点的に問われるかを確認する

例)AWS 認定ソリューションアーキテクト – プロフェッショナル

STEP2 AWS BlackBelt確認

試験に出る主要AWSサービス資料をざっと見る
(得意なサービスはすっ飛ばしてNext STEPへGO)

SlideShare/PDF/Youtube形式があるが、
視覚&聴覚インプットとしてYoutube動画版を推奨。
1.5〜1.75倍速&字幕付きで見ればそこまで時間も取らない

aws.amazon.com

STEP3 Whizlabsを活用してひたすら問題演習

問題演習が肝で、今回ほぼこれしかやっていないといえる。

Whizlabs:様々な資格試験の実践テストコースが存在する海外サイト(有料)
全部英語だが、Chrome拡張機能Google翻訳」でページ全体を翻訳すると捗る

www.whizlabs.com

 間違えた部分、理解が浅い部分はAWS公式資料や各種記事で理解を深めるべし。

(オプション) 高度なネットワーキング

Twitterで「AWS認定」で検索しながら他の人がどんな学習しているか見ていたところ、NRIネットコム佐々木さん(AWS Top Engineers 2019&Ambassadors 2019)も近い時期に本試験を受けており、学習箇所のアウトプットをブログ記事にされていたためとても参考になった

blog.takuros.net

(オプション) Alexaスキルビルダー

Alexa認定は2021年3月に廃止になってしまったが一応ご紹介
「Alexa道場」がわかりやすく鉄板
これを見ておくことで、簡単なAlexaスキル開発ならはじめられる

developer.amazon.com

(オプション) データ分析

クラスメソッドさんの記事は日々お世話になっているが、
データ分析(Kinesis/Glue/Athena関連)は業務経験が乏しかったので読み漁った

おすすめ記事はこちら。ユーモアがあって好き。

dev.classmethod.jp

(オプション) 機械学習

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年以上)で、まずは合格したいという方には
このような邪道学習もありかなと思い事例として記事にしてみました。
今回の記事が誰かのお役に立てると幸いです。