安全2

趣味のコンピュータ

AWS認定 ソリューションアーキテクト - アソシエイトに合格した(2019/02 受験)

AWS認定 ソリューションアーキテクト - アソシエイトに合格しました。
検索すればQiitaとか個人ブログとかでヒットすると思いますが、2019年に入ってからの受験記事が見当たらなかったので書きます。

ほとんど知識ゼロの状態からの受験で、所要期間はだいたい1ヶ月前後でした。
だらだらと勉強してしまうのが嫌で先に受験日を設定した、という方の意見をよく目にしたのですがちゃんとスケジュールを立ててやりきれる自信があれば是非そうすべきだと思います。
私は計画立ててちゃんとやるのが苦手なのでAWS公式の模擬試験で8割取れたら受験しようと思っていました。

目次

なぜ受けようと思ったか

一年前にAWSを試してみようと思いAWSアカウントを登録したのですが、できることが膨大すぎて手も足も出ず無料利用枠の期間が終わってしまっていました。

半年ほど前から業務で関わるようになった案件で、検証環境としてEC2インスタンスを作ったり壊したりしているうちにEC2以外のサービスを使ってみたくなり -> 体系的に学ぶなら資格対策が手っ取り早いのでは?と受験を考えました。

あとは、しばらく新しい対策本が出てなかったのですがちょうどいいタイミングで出版されたので受けてみることにしました。(「対策本を読む」の項で詳しく触れます)

受験前の自分のレベル

新卒でWeb系に入り2年目、普段はRuby on Railsのアプリケーションの設計・開発をやっています。AWSに関しての経験は業務でEC2インスタンスを立てたことがある程度でした。
EC2以外のサービスはELB, S3, RDS, Lambdaは何ができるか知ってる、他は有名どころは聞いたことある・・・くらいの感じです。

勉強法

試験の概要をつかむ

aws.amazon.com

上記リンクの 試験ガイドのダウンロード から、試験ガイドのpdfが読めます(読みましょう)

推奨される AWS の知識
• 可用性、費用効率、フォルトトレランス性、および拡張性が高い分散型システムを AWS 上で実際に設計した 1 年以上の実務経験。
AWS のコンピューティングサービス、ストレージサービス、およびデータベースサービスを使用した実務経験。
AWS の展開サービスおよび管理サービスに関する実務経験。
AWS 上で動作するアプリケーションに関する技術要件を明確にして定義する能力。
• 特定の技術要件を満たす AWS サービスを判断する能力。
AWS プラットフォーム上でセキュアかつ信頼性の高いアプリケーションを開発する際に推奨されるベストプラクティスに関する知識。
AWS クラウド上で構築するアーキテクチャの基本原則に関する知識。
AWS グローバルインフラストラクチャーに関する知識。
AWS に関連するネットワーク技術に関する知識。
AWS で使用できるセキュリティ機能およびセキュリティツールに関する知識、ならびに AWSのセキュリティ機能およびセキュリティツールと従来型サービスの関連性に関する知識。

これを読んでいる時点では一つも当てはまりませんが大丈夫な気がします。こういうときは無根拠な自信が大事です。

次に出題分野と試験における比重です。

分野 1: 回復性の高いアーキテクチャを設計する 34%
分野 2: パフォーマンスに優れたアーキテクチャを定義する 24%
分野 3: セキュアなアプリケーションおよびアーキテクチャを規定する 26%
分野 4: コスト最適化アーキテクチャを設計する 10%
分野 5: オペレーショナルエクセレンスを備えたアーキテクチャを定義する 6%
合計 100%

各項目で言わんとすることは大体わかりますがAWSの前提知識がないので具体的にどの分野でどういう問題が出るのかイメージできません。
なので、一旦飛ばしてサンプル問題を見てみることにします。

先程のリンクの サンプル問題のダウンロード からサンプル問題が見れます。(見ましょう)

ここに10問のサンプル問題があるのですが、この時点ではまったく解けませんでした。問題文に出てくるサービスを使ったことがないので具体的にイメージできず判断できないという感じ。

このサンプル問題を読んだ時点で、まず自分が対策本に取り掛かるべきか or その前に実際にAWSのサービスを触ってみるべきかという選択をするといいと思います。
例えば「こういう要件を満たすシステムをAWS上で設計してください」とお願いされたとして「あのサービスを使えばよさそうだな」というくらいに前提知識がある方は次のハンズオン形式の動画で実際にAWSを使ってみるは飛ばしてもいいかもしれません。

私は対策本の前に 実際にAWSを触ってみる ことにしました。

ハンズオン形式の動画で実際にAWSを使ってみる

これはAWS公式のトレーニングとかドットインストールとか、あるいはQiitaのハンズオン記事とかに沿ってやってみるとかいろいろ方法があると思うのですが、調べて検討した結果、一定期間でまんべんなく体系的に学べそうという理由でUdemyの以下のコースを受講しました。

手を動かしながら2週間で学ぶ AWS 基本から応用まで

自分はUdemyのセール期間に購入したので¥1400でした。本来は¥15600みたいです。

また、あとで気づいたんですが、講師の方のブログで配布されてるクーポンコードを使うと¥1200で購入できるみたいです。

www.ketancho.net

本来の価格とはいったいなんだったのか。どちらにせよありがたいです。
このコースは基本的にAWSの無料試用枠の範囲で収まるようになっています。

仕事が忙しかった日はサボってしまい結局2週間以上かかりました。
内容は以下の構成で基本的なことは抑えられたと思います。

  • Day1: AWSことはじめ【AWS アカウントの開設、IAM、CloudTrail】
  • Day2: EC2を使ってサーバを立てる【EC2】
  • Day3: VPCを使ってネットワークを構築する(1)【VPC、EC2】
  • Day4: VPCを使ってネットワークを構築する(2)【VPC、EC2】
  • Day5: リレーショナルDBのマネージドサービスRDSを使う【RDS】
  • Day6: Elastic Load Balancer(ELB)を用いて Web レイヤの可用性を高める【ELB】
  • Day7: オブジェクトストレージ S3 を使ってみる【S3、AWS SDK
  • Day8: Route 53 を使ってドメインを登録する【Route 53】
  • Day9: IAMについて理解を深める【IAM】
  • Day10: AWS CLIによるAWSの操作とCloudWatchを用いたシステム監視【AWS CLI、CloudWatch】
  • Day11: AWSにおけるコンテンツキャッシュとインメモリキャッシュの基本【CloudFront、ElastiCache】
  • Day12: Eメール送受信サービスSESとキューイングサービスSQS【SES、SQS】
  • Day13: アプリケーション開発を支援するCodeシリーズ【CodeCommit、CodeBuild、CodeDeploy、CodePipeline】
  • Day14: CloudFormationを用いた環境構築の自動化【CloudFormation】

コースを受けた後に再度サンプル問題を読んでみるとちゃんと意味がわかるようになっててすごいなと思いました。
ここからようやく試験対策に入ります。

対策本を読む

ソリューションアーキテクト アソシエイトの試験は2018年2月に大幅にアップデートされたようなのですが、他の受験記事をいくつか読んだところ、対策本は2016年8月発行の「合格対策 AWS認定ソリューションアーキテクト - アソシエイト」が定番だったようです。

サービスも試験内容もアップデートされているのに新しい対策本が出ていないから受験に踏み切れなかった方も多いと思うのですが、2019年1月末に新しい対策本が出たので私はそちらを購入しました。

この対策本を朝と夕の通勤時間と会社の昼休みに読んで3日くらいで1周目を読み終わりました。
2周通して読み終わったあとで付録の模擬問題を解きました。

正答率集計用に解答用紙を作っていたのでmacのNumbers形式ですが必要な方はお使いください(模擬問題もアップデートするらしいので正答の列が正しくない場合は適宜修正してください)。 (2023/07/17追記: 削除しました)
1回目を解いたときの正答率が66.2%でヘコんでたんですが、1回目はそんなものだと思います。かなりがんばったつもりでいたので8割いくっしょとか思っていた慢心でした。

間違えた箇所の解説はちゃんと読みましょう。
それでもあまり理解できなかった箇所だけ、AWS公式の通称BlackBeltと呼ばれる以下の資料集(スライド形式)の関連項目に目を通すようにしました。

aws.amazon.com

この模擬問題を3回解くつもりが2回目で83.1%取れたのでいけるっしょ感が出てしまい、AWS公式の模擬試験を受けました。

AWS公式の模擬試験(有料)を受ける

AWS公式の模擬試験を受けるには¥2160かかります。が、本試験とほぼ同じ形式の問題が出題されることや、本試験と同じ画面で同じ流れを体験しておくことで当日テンパる要素を少しでも減らしておくために受けておきます。

なお、受験にはAWS認定 アカウントの登録が必要です。AWSアカウントとは別物です。
本試験の際にも必要なのでこのタイミングで登録しておきましょう。(というかこの時点だともうアカウント持ってるのが普通なのかもしれない)

www.aws.training

以下模擬試験概要。

試験時間: 30分間
問題数: 20問
合格ライン: 明記なし
受験料: ¥2160

問題数少ないのであんまりしんどくないですね。

-> 結果

総合スコア:  80%

トピックレベルスコア:
1.0  Design Resilient Architectures: 88%
2.0  Define Performant Architectures: 100%
3.0  Specify Secure Applications and Architectures: 66%
4.0  Design Cost-Optimized Architectures: 0%
5.0  Define Operationally-Excellent Architectures: 100%

コスト最適化アーキテクチャの設計がかなり厳しいです。このあたりは実務経験がないのでなんとも身につきにくいのかもしれない。

が、冒頭で書いていた目標のAWS公式の模擬試験で8割には到達していたのでこの勢いのまま本試験の受験日を予約してしまいます。
受験場所と受験日を選択して、クレジットカードでの支払いを済ませたら予約完了です。

本試験を受ける

午前中ふつうに仕事して、午後休を取得して14:30から受験しました。場所は銀座の歌舞伎座タワーです。

別会場で受験した他の人の記事だと「試験中、カメラで監視されていて、下を向いていたり動きが不穏だと適宜注意が入る」など書いてあって緊張してましたがこの会場はそんなことありませんでした。
カメラも無いようで、下向くと注意されるどころか紙とボールペンが配られましたが一度も使いませんでした。アクセスも東銀座から直結なので近くの方はおすすめです。
30分ほど時間を残してテスト終了。

-> 結果
合格でした。
865 / 1000 点でした。合格ラインは720点とのこと。
(受験後その場でモニターに合否が表示されますが、AWS認定アカウントへの反映および内訳が見れるようになるまで2日かかりました。)

合格したのはいいんですが、やはりコスト最適化アーキテクチャの設計だけ「再学習の必要あり」でした。今後の実務経験でなんとかカバーしていきたい。

所感

情報系の資格試験について色々思うところはあるのですが、AWSはそのサービスの膨大さ、アップデートの早さなどを考えると体系的に学ぶというのがなかなか難しいと思います。
本試験の対策をしていればおのずと基礎的な知識をつけられるという点で良かったです。プロフェッショナル取得を目指すかと言われるとそれはちょっとわかりません。