入社3ヶ月でSAA取ってきた

初めまして。19新卒エンジニアの市橋といいます。

この度AWS認定 ソリューションアーキテクト アソシエイトを取得したので、 そのことについて話したいと思います。

この記事は誰向け?

次のような人を想定しています

  • AWSをなんとなく使っているが、体系的に学びたいと思っている人
  • AWSを実際に使っていて、一定のレベルまで引き上げたい人
  • これからAWSを使うことになるが、どのような知識があればいいのかわからない人

逆に次のような人は想定していません

  • とにかく資格取りたい人
    • SAAは取るだけなら座学オンリーで取れますので、とにかく資格をとって就職や転職の際のアピールポイントにしたいという場合は短期集中でとってしまうのがいいと思います。
  • オンプレは完全に理解しているが時代に合わせてクラウドもやろうとしている人
    • むしろ教えてください

AWS認定とは

Amazon Web Serviceが提供しているベンダー資格です。
AWSを使ってWebサービスを開発、構築、運用するスキルを身につけているかどうかを示すものとなっています。

f:id:AdwaysEngineerBlog:20190718155031p:plain

※ 上記画像はAWS 認定より引用

2019/07/19現在、AWS認定では11の認定資格が存在します。
基礎的な知識を問うFundational, 設計者としての知識を問われるAssociate, より高度な知識を問われるProfessional, 特定ジャンルについての深い知識を問われるSpecialityの4グループに分けられます。
また、Associate, Professionalについては、設計者むけ、運用者向け、開発者向けに認定が別れています。

今回取得したものについて

今回取得したのは、Associateクラスの設計者むけ資格であるソリューションアーキテクト アソシエイト (略してSAA) です。

世間的にも有名な資格で、書籍も多いのが特徴です。
昨年8/12に試験内容が更新された影響も相まってか、今年に入ってから対策本は5冊 (一つは執筆時点で未発売)も新規に発売されています。

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト

最短突破 AWS認定ソリューションアーキテクト アソシエイト 合格教本

最短突破 AWS認定ソリューションアーキテクト アソシエイト 合格教本

徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書

徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書

  • 作者: ??部昭寛,宮?光平,菖蒲淳司,株式会社ソキウス・ジャパン
  • 出版社/メーカー: インプレス
  • 発売日: 2019/01/18
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

AWS認定アソシエイト3資格対策?ソリューションアーキテクト、デベロッパー、SysOpsアドミニストレーター? 

AWS認定アソシエイト3資格対策?ソリューションアーキテクト、デベロッパー、SysOpsアドミニストレーター? 

  • 作者: 平山毅,岡智也,池田大,原江梨佳,澤田拓也,原俊太郎,仲村勇亮,上村祐輝,鳥谷部昭寛,堀内康弘,福垣内孝造
  • 出版社/メーカー: リックテレコム
  • 発売日: 2019/06/13
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

この1冊で合格! AWS認定ソリューションアーキテクト - アソシエイト テキスト&問題集

この1冊で合格! AWS認定ソリューションアーキテクト - アソシエイト テキスト&問題集

また余談ですが、アメリカでは、IT系資格取得者の収入ランキング4位だそうです。 (参考)
去年は2位だったそうですが、それでも4位です。また、兄弟資格のデベロッパーアソシエイトも5位にいます。
ただ、ライバル資格と言える (?) Google認定プロフェッショナル クラウドアーキテクトが1位に……

話がそれましたが、つまりこれだけクラウド関連資格は注目されているということですね。

取得の経緯

技術レベルを高めたい

今年度入社し、インフラ関係の、クラウドをよく使う部署に配属となりました。
しかしクラウドについての知識は、EC2をアルバイトでちょっと使ったことがある程度だったため、それを業務についていけるレベルまで引き上げること、そしてそれを確認することができればと思い取得しました。

💰

……実はもう一つ目的がありました。です。

アドウェイズでは業務に有用と認められた資格に対する補助制度があります。
これは合格すれば受験料が会社負担となるだけでなく、報奨金まで支払われるという制度です。

というわけで、賞金稼ぎ気分で受験しました。

どのような勉強をしたか

書籍で勉強

こちらの書籍を読み切りました。 (AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト)

対策本は複数読む必要はないと思います。一冊読みきったうえで自信のない部分、演習問題や模擬試験で成績の悪かった部分はWhite PaperやBlack Beltといった、「AWS公式の資料」で適宜保管していくのが良いです。また実際にサービスに触ることも有効です。

私は後述する実践も合わせていたおかげか、一周通読した段階で最後の演習問題も8割超えだったため、復習はあまりせずに試験を受けました。

AWS公式の模試を受ける

2000円 (税別) がかかりますが、模試があります。
20問を30分で解きます。本番の65問130分に比べてかなりタイトです。

書籍での勉強を終えた段階で受けたのですが、初回で正答率83%程度でした。
ほぼそのままで受けた本番が9割くらいだったので、模試よりいい結果が出るくらいの気持ちで良いのかなと思っています。
時間の関係で見直しする余裕がありますからね。

余談: 模試を受ける時のウィンドウサイズ

私が本番を受けたテストセンターでは、問題がフルHDモニタ全画面表示でした。
すると問題文が横に長くなり、結構読みにくいです。それに慣れる意味でも、模試も全画面か、ウィンドウ最大化をして受けるといいと思います。

実際のサービスを触る

座学で吸収できない部分はどうしても出てきます。
量の問題もありますが、やはり実際に触っていないと問題を解く上でのイメージが湧きにくいです。
そのため、サービスは実際に触ってみるのが良いでしょう。
私は会社の開発環境を利用しましたが、新規登録すれば12ヶ月間は一定の無料枠も付与されます。

実際に触ったサービスは

  • IAM
    • ロールとポリシー
  • VPC
    • サブネット、NATゲートウェイ、ルートテーブル
  • EC2
  • AutoScaling
  • ELB
  • ALBのみ
  • WAF
  • EBS
  • S3
  • ElastiCache
    • Redisのみ
  • RDS
    • Aurora, MySQL
  • DynamoDB
  • KMS
  • ACM
  • Route53
  • CloudFormation
    • ALB+EC2+NATをCFnで実際に構築してみたりしました
  • Lambda
    • S3にPutされると、そのkey名をSlackに通知するLambda関数を作りました

といったところです。 私は書籍での勉強に先んじてこれらのサービスを触っていたので、内容もスラスラと入ってきたと感じています。
実際にAWSを利用する予定があるなら、短期取得にこだわらずに実サービスを触りながら学び、結果としてたまたまSAAが取れている……くらいのスタンスがおすすめです。

効果は微妙: クラウドプラクティショナー取得

AWS認定自体になれる、SAAまでの段階を踏む目的でより簡単なクラウドプラクティショナーをSAAの1ヶ月前に取得していました。

あらかじめクラウドプラクティショナーを受けていたおかげで試験会場での手続き、実際の試験の流れを掴めたのはよかったと思いますが、段階を踏むという目的ではかなり微妙です。
問題の雰囲気、出題形式には慣れられるんですが、それは模擬試験でできてしまいます。問題の難易度はSAAに比べてかなり低いです。

エンジニアが技術向上を目的にAWS認定を取得するならば、飛ばしてしまって問題ないです。

実際の試験について

会場選び

ネット上では様々な方の合格体験記がありますが、試験会場の話はほぼ出ます。会場ごとに差が大きいようです。
そのため、受験する地域ごとの会場情報はよく探したほうが良いと思います。

首都圏の方限定のアドバイスとなってしまうんですが、歌舞伎座CBTS テストセンターがオススメです。というかここ以外使ったことがありません。
少々車の音が入りますが、他の体験記にあるようなカメラでの監視や試験官とのチャットも発生しないので快適です。

ただし選挙シーズンだと選挙カーの音が良く聞こえます。選挙シーズンは避けると良いかもしれません。

PSIとピアソンVUEについて

テスト実施業者はPSIとピアソンVUEの2つがあります。

どちらが良いのかはよくわからないのですが、前述した歌舞伎座CBTSはPSIからしか予約できませんでした。

試験内容

SAAは130分で65問の問題を解きます。4択から1つ選ぶ、または、5択から2つ選ぶ、のどちらかです。

65問ありますが、内5問は結果に影響しません。おそらくその結果を元に試験に組み込んだり、修正したりしているのだと思います。
なので、あまりに意味不明な問題があったらそれはこの5問だと思って飛ばすのも手です。
もちろん確証は得られないのですが、ちょっと心の余裕ができます。

点数は100~1000点の範囲で出ます。合格点は720点です。
1問あたり何点と定まっているわけではなく、問題の難易度を元に点数が決まるようです。
そのため、正答数が2/3を下回っていても受かることはあり得ます。
逆に、上回っていても落ちることがあるといえます。
自信を持って答えられた数はあまりあてにしないほうが良いでしょう。

試験対策

問題の特性として、細部の仕様を問う問題は少ないです。(EC2のt2.smallの東京リージョンの料金は? みたいな問題は出ない)

そのためにも、サービスの大まかな仕様は把握しておく必要があります。
また、サービスはだいたいの場合セットで使われるものがあります。
例を挙げるとEC2とEBS、S3とCloudFrontのような組み合わせです。
それらがどうしてセットで登場するのかを理解すると良いです。

AWSのサービス数は100を超えますが、SAA合格のために把握しておくべきものは30くらいです。
書籍に載らないようなものは労力のわりに点数には反映されないです。
絞って学習するのが良いでしょう。

本番での解き方

実際に受験した際の解き方と時間配分を述べます。

  • いったん全部解く (50分)
    • このとき、少しでも迷った問題はフラグをつけました。
    • 一問1分を目安に、わからなければ適当な選択肢を選んでフラグをつけて次へ行きました
      • 流石に絶対あり得ないと思っている選択肢は避けました。時間切れになった時の誤答リスクを減らしたいので。
    • だいたい半分の問題にフラグが立ちました。(ええ……)
  • フラグが立っているものを全部解く (30分)
    • 特に時間制限を設けず、じっくり考えました。
    • 順番に解くのではなく、パッとみてすぐ解けそうな気がする順に解きました。
    • どうしてもよくわからなかったらフラグをそのままにして別の問題へ行きました。
    • このステップでフラグは残り5くらいになりました。
  • さらに残った問題をとく (40分)
    • 同じく時間制限を設けず、じっくりやりました。
    • この段階で残っているような問題は根本的に知識不足なので、どの回答が妥当っぽいかをこじつけの論理でもいいので考えて回答しました。
    • 繰り返しになりますがここまで残るということは知識不足なので、そういう問題に初期段階でじっくり取り組んでしまうと危ないです。

結果

1000点満点中924点でした。受けてる時は微妙な選択肢が多すぎて受かったかどうかすら怪しいと思っていましたが、実際はかなり余裕を持った合格になりました。

感想

実際受かってみると「あれ?こんなもん?」という感じでした。

受けた意味はもちろんあったと思いますが、あくまで「これくらいはわかっているべきだ」

という基準だと感じました。
より高度な技術を身につけるには実践あるのみかなと。

今後の展望

こんなもんかとは思いましたが、一方でさらに先が見えたことで意欲向上になりました。
SysOpsとデベロッパーも取ってしまいたいですし、もっと言えばプロフェッショナルも取りたいですね。
そして何よりも、この知識を実際の業務に生かしていきたいです。

最後までご覧いただき、ありがとうございました。


おまけ

おまけとして重要だと思ったサービスと所感を述べます。 (これが本編という説もありますが、長すぎた)

  • IAM
    • あらゆるサービスに関わる上、関連した出題も多いです。本当に重要。
    • ユーザー、グループ、ロール、ポリシーの違いや、ロールを用いるメリットは押さえましょう
  • KMS
    • 関連する問題がこちらも多かったです。
    • サービスのデフォルトのキーを使うか、ユーザーがアップロードしたキーを使うか、KMS上で生成したキーを使うかを問う問題があります。その問題での前提条件を各パターンが満たせるかどうか考慮して答える必要がありました。
  • EC2
    • 言うまでもないかもしれませんが重要でした。立てる上でVPC, サブネット, セキュリティグループ, ACLといった重要概念がセットで学べるため、絶対に触っておいたほうがいいです。
    • リザーブドインスタンス、スポットインスタンス、Dedicated Hostsも把握しておきましょう。
  • VPC
    • とあるVPCにパブリックサブネットとプライベートサブネットがあり、パブリックサブネットにELBとNATがあり、プライベートサブネットにアプリケーションサーバーが……のような感じで問題が出ます
    • VPCに関する用語とその役割を把握していないと問題文が理解できないことが多いと思います。
  • EBS
    • EC2を使うとセットで使うことになります
    • 他のストレージ (インスタンスストレージ、S3, EFS) とどう違うのか把握しておくべきです。
    • スナップショットからどう復元するか、リージョンをどうやってまたがせるか、といったことも把握しておく必要があります
  • AutoScaling
    • 可用性の高い設計をする問題ではほぼ間違いなく登場します。どういったサービスなのか、どのようなスケーリングができるのかぜひとも把握しておきたいです。
  • S3
    • こちらも非常に重要です。ストレージクラスの違いを理解していなければ解けない問題も多いです。
    • 静的ウェブページを構築する場合、だいたいS3の静的サイトホスティングを利用して、CloudFrontを通して配信するのが正解になります。
    • S3にはVPCエンドポイントがあるということを知っているだけで1~2問正解数が増える気がします。
    • EBSでも書きましたが、他のストレージサービスとどう違うのか把握しておくといいです
  • ELB
    • 超重要です。可用性を問う問題はだいたい登場することになります。細かい仕様はあまり問われなかった気がしますが、何をしてくれるのか、実際利用しようとするとどういった設定が必要か把握していないとイメージがつかないです。
    • ターゲットグループ, ヘルスチェック といった重要概念がセットで学べます。
  • RDS
    • 業務上も超重要ですが、試験でも超重要です。
    • Auroraとその他の違いはよく把握しておいたほうがいいです。どちらが適した選択肢かを問う問題もあります。
  • ElastiCache
    • 業務上も (ry
    • memcachedとRedisだと何が違うのか把握しておくと良いです
    • (印象にすぎませんが、なぜかRedis版ElastiCacheの細かい所を問う問題が多い気がします)
  • DynamoDB
    • 可用性の高いデータベースで、RDBじゃなくて良い場合だいたいこいつが正解の選択肢になります。
    • インデックスの仕組みが書籍などの説明を読んだだけではおそらく意味不明なので、触って確かめたほうがいいです。
    • DynamoDBを使っていて、なおかつキャッシュが必要なケースはだいたいDynamoDB Acceleratorを使う選択肢が正解です。
  • RedShift
    • あんまり中身は問われない印象なのですが、他のDBではなくこれが選ばれる理由を知っておくべきです。分散処理の話があるとだいたいこれです。
  • CloudFormation
    • 「CloudFormationスタック」の意味がわからない場合触っておいたほうがいいです。用語の意味がわからなくて私は最初困惑しました。
    • Infrastructure as Code実践の意味でも触っておきたいサービスですね。
  • Lambda
    • 試験に受かるという観点では触らなくてもどうにかなった気がします。ただ業務上は重要です。
  • CloudWatch
    • 監視に関する問題でよく登場します。兄弟資格のSysOpsでもよく登場するらしい。
    • どういったメトリクスはデフォルトで取れるかといった問題があるのですが、触ってても覚えられません……
  • EFS, Storage Gateway
    • EBSかEFSかS3かStorage Gatewayの中から選ぶ問題が頻出です。
    • EBS, S3に比べて触りにくいところがあるのですが、どういったものかはよく把握しておいたほうがいいです。
  • SQS
    • ぼちぼち登場します。かなり古株のサービスで、非同期な処理を行うシチュエーションで登場します。
    • StandardキューとFIFOキューの違い、ロングポーリングとショートポーリングの違いを把握しておくと選択肢を絞れます。
  • SNS
    • ツイッターではない
    • 変更があったら検知して通知したい、プッシュ通知を実装したい、といったシチュエーションで登場します
    • SQSと連携できたりもします。
  • CloudFront
    • 転送量を削減したい、世界中への配信を高速化したいといったシチュエーションで登場します
    • しばしばS3とセットで登場します
  • Route53
    • ルーティングポリシーがいっぱいありますが、全部は覚えてません。位置的に近いものを選べたり、ヘルスチェックが通らなかったらスタンバイへ流したり、地理的に一番近いものを選んだり、レイテンシの低いところへ流したり……
    • Route53独自のALIASレコードは把握しておきたいです。
  • Elastic BeanStalk
    • デプロイ方式が複数あるのですが、その違いを述べられないと答えられない問題がありました。
    • 素早い開発がしたいという要件の場合、このサービスが選択肢になりやすいです。
  • Codeなんとか系
    • 実は使ったことないですが、ぼちぼち問われます
    • 各サービスがなんのためにあるかくらいは覚えておくといいです