エンジニアとしての幅を広げるために、インフラ(AWS)を出来るようになると決めた
サーバーサイドのビジネスロジックを書くのをメイン業務としてやってきたが、このままではエンジニアとして出来る領域が広がらず頭打ちになるという焦りが自分の中であった。
エンジニアとしての領域を広げるにあたって、フロントエンド/クライアント(iOS/Android)に広げる手もあるが、インフラ(クラウド)周りに広げるのが、今の仕事や知識と親和性が高いと思い、 AWSの理解を深めることにした。
取り組むなら短期間で、定量的な目標を1つ達成する
新しい技術を学習にあたって、長期的にじっくりやろうと思うと必ず失敗する。
学習に対する熱量は日を追うごとに原則下がっていくし、普段の業務においても忙しい日も多い。
AWSの理解を深めるに当たって、3ヶ月未満で達成出来る目標かつ達成したことを定量的に把握出来る目標を立てることにした。
資格取得は目指しやすい定量的な目標
認定試験は目標として定量的であり、試験日があるため期間も限定して取り組める。
受験日を決めてしまえば〆切駆動型で集中して勉強することになるため、短期間でインプットが出来るためコスパが良い。
国内だけの資格はテンションが上がらないが、AWSの公式資格であれば世界共通なのでテンションが上がる。
AWS ソリューションアーキテクト アソシエイトを取得することにした
AWS ソリューションアーキテクト アソシエイトとは
AWS 認定 ソリューションアーキテクト – アソシエイトはざっくり言うと、インフラ構築系の知識を問われる試験である。
各ジャンルごとにアソシエイト、プロフェッショナルの2段階レベルが用意されており、アソシエイトの方が入門資格である。
取得することで得られる知識レベル
サービス名を聞いた時、
- どのようなサービスか分かる
- どのような課題に対して使うべきか分かる
状態におおよそなれる。
実務で作業するには知識として足りないが、プロダクトのインフラをどうするべきか議論する和に加われる知識が付く。
業務に実際に活きた話
知識が増えて議論に加わりやすくなった
資格を取る前は、エンジニア同士の議論の中でAWSのサービス名が出た時、そもそも何のサービスなのかも分からず、どのような課題にどうアプローチする提案をしているのかさっぱり分からなかった。
資格を取った後は何の話をしているかおおよそ分かるようになり、議論されている内容が分かるようになってきた。
インフラ周りを理解する最初のステップとして、AWS認定試験は有用だったと思う。
プロダクトのレスポンス速度の向上/インフラコスト削減を実現
一通り勉強した上で自分が業務で関わっているプロダクトを見返した時、改善の余地に気付くことができた。
インフラエンジニアに相談を持ちかけて見たところ、感じていた課題だったが、ビジネス要件としてどうするべきかまでは提案できず改善できていなかったとのことで、是非一緒に改善しましょうとなった。
普段ビジネスロジック側を触っていたエンジニアがインフラも勉強したことで生まれた相乗効果だったと思う。
具体的に改善されたのは以下の2つ。
EC2/RDSのアベイラビリティゾーンに改善の余地がある
masterを片方のゾーンに寄せて、待機系を逆のゾーンにおけばレスポンス速度と冗長性を担保出来る。
実際に適用したところ、平均のレスポンス速度は大きく下り目に見えて改善された。
レスポンス速度がユーザー体験に直接影響するサービスだったため大変喜ばれた。
インスタンスサイズに調整の余地がある
実際にサーバーを運用して見ているメトリクスを踏まえると、インスタンスタイプを下げられる
RDSのインスタンスタイプを下げ、月2桁万円単位の費用削減につながった。
資格取得のために勉強したこと
Udemyでのインプット
Ultimate AWS Certified Solutions Architect Associate 2021でざっと動画を流しみて、理解の浅いところを探した。
動画にして24時間ととても長く簡単に挫折するので、全部見ようと思わない方が必要なところだけに時間を使える。
ある程度分かったところで問題集を解くことにした。
問題を繰り返し解く
今回の最終ゴールは試験で合格点を超えることなので、問題を繰り返し解いて精度を上げた。
問題集はAWS認定資格試験テキスト AWS認定ソリューションアーキテクト - アソシエイトを使った。
状態目標
参考書一冊分の例題を、
- 全て解ける
- それぞれの選択肢がなぜ違うか説明できる
状態であれば、合格点に到達できる。
学習する本を広げず、一冊を完璧に仕上げるのが一番コスパが良い。
合格した際の最終スコア
上記勉強方法で1-2ヶ月ほど勉強して望んだところ、
合格ライン720点に対し788点である程度余裕を持って受かることが出来た。
スコアの計算方法は謎が多く、
- 点数は100〜1000点の間で表示される(0点はないということ?)
- 配点は均一でない
らしい。7-8割解けたら安心ということかな。
おまけ:選択肢で迷った時に指針になる考え方
試験は選択肢問題なので、消去法で絞り込むと残り2つで悩むことが出てくる。
多分っこっちだけど、こちらも間違いとは言えないのような問題が私はいくつか出てきた。
その際正当する確率を上げる考え方があるので紹介する。
AWSは優秀であり、最適なサービスを用意している
AWSの認定試験である以上、AWSの良いところ、特性が前面に出た問題となっている。認定試験といえど、一種の宣伝の要素もあるように思える。
その観点でいうと、オンプレで使っているユーザーがAWSに移行できないユースケースはまず出題されないし、必ず最適なサービスが用意されている
ことを踏まえた選択肢が正解になる。
サーバーレスを使うべき場所はサーバーレス
ざっくりいうと、負荷が読めない、サーバー管理者が十分に立てられない場合はサーバーレス一択になる。
問題文を読んで厳密に考えていくとRDSでも要件を満たせそうな問題も出てくるが、課題に対して適切なサービスを選ぶのが間違いない。