【SAA-C03】AWS未経験者が1か月で合格するためにやったことまとめ

※Qiita初投稿故、見苦しい文となってしまっているがお許しいただきたい。

先日、AWSの認定試験、AWS Certified Solutions Architect - Associate (以下SAAと記載)を受験し、無事一発合格できた。AWSの中でも一、二を争うメジャーな試験故、既に先人たちのアドバイスが多く寄稿されているが、メモ程度に私も記載してみようと思う。試験当日まで追い込んでギリギリの合格だったため、どちらかというと失敗談の類だと思って反面教師にして頂ければ幸いである。

# この記事を書いてる人
・某通信インフラ企業でサーバ寄りのインフラエンジニア。新卒入社3～5年目(特定避けるためぼかしている)。
・業務では主にLinux（RHEL）、MariaDBや、監視運用ツールとしてZabbix、Ansibleあたりの製品に触ることが多い。NWは正直疎い。
・業務でのAWS経験は皆無。プライベートでお遊びでLambda触った程度。

普段の業務でオンプレサーバとIaaS型社内基盤を触っているので、LB⇒処理インスタンス（EC2）⇒ストレージ/DBみたいなシステムの基本構成や、AZ/リージョンで冗長を取りましょうというのはイメージしやすかった。逆にIAM、OrganizationsのようなAWS独自の権限管理や、ビッグデータ解析に使うサービスは馴染みがなく理解するうえで非常に苦労した。

# 受験の動機
割と適当。
・ITエンジニアならとりあえずAWSの資格持っとけば社内評価でも転職でも箔がつくんじゃね？と思った
・入社1年目からレガシー系システムのDevOpsをずっとやってきたので、埋没せずモチベを維持する意味でも今主流の技術にも触れておきたかった。
・（他部署だが）入社2年目の後輩がAWSのプロフェッショナル資格持ってて、負けてられないと思った


# CLFは受験する必要あるのか？
AWS Certified Cloud Practitioner (CLF) 。SAAが中級とするとCLFは基礎・初級編にあたる資格になる。
CLFを取得してなくてもSAAは受験可能であるが、受けた方が良いかどうかについては正直各人の好みによると思う。ご自身の自信や実務経験で、CLFなしでもいけると判断すれば初めからSAAの勉強に注力してしまってよい。CLFも受験料1万ちょいとなかなか良い値段するしね。

私はAWSの実務経験ゼロだったのと会社から資格の受験料全額支給されるので、ついでにとSAAの1ヵ月前にCLF-C01を受験、取得した。受験前はAWSの基本サービスの名前すら怪しい感じだったので、SAA受験前に基礎知識を習得できてよかったかなと思う。


# 使った教材
### インプット
・[Amazon.co.jp: AWS認定資格試験テキスト AWS認定ソリューションアーキテクト - アソシエイト 改訂第2版](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%88-%E3%82%A2%E3%82%BD%E3%82%B7%E3%82%A8%E3%82%A4%E3%83%88-%E6%94%B9%E8%A8%82%E7%AC%AC2%E7%89%88-NRI%E3%83%8D%E3%83%83%E3%83%88%E3%82%B3%E3%83%A0%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE/dp/4815607389/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2Y493QT8K57CX&keywords=SAA+%E5%8F%82%E8%80%83%E6%9B%B8&qid=1693038941&sprefix=saa+%E5%8F%82%E8%80%83%E6%9B%B8%2Caps%2C154&sr=8-5)
⇒最初にやった。SAAの試験範囲の全容把握のために1周流し読みして終了。まあまあ分かりやすかった。
これを何周も読んで完璧にしても合格できないので、割り切ってとっととアウトプットや他の教材に移るとよい。あと、詳しくは下で書くが**必ずSAA-C03(新試験)対応版の参考書を買うこと**。上記リンクのやつは買ってはいけない。

・[AWS Blackbelt](https://aws.amazon.com/jp/events/aws-event-resource/archive/?cards.sort-by=item.additionalFields.SortDate&cards.sort-order=desc&awsf.tech-category=*all)
⇒AWSが公式に出している開発者/運用者向けの虎の巻。**個人的には、この試験を勉強するうえでこれが一番理解が進んだ資料だった**。AWS所属のエンジニアが直々に、主要サービスの構築・設定方法を分かりやすく解説してくれる上、注意すべきポイントやベストプラクティスについても言及してくれている。
例えるなら、市販のAWS参考書が『高校の認定教科書』で、Blackbeltが『東大の講師が東大入試の過去問の解き方を解説した講義のスライド』といったとこであろうか。Blackbelt自体はAWS認定試験の対策講座ではないが、教科書の丸暗記だけでは解けず知識を使って問題に対する最適ソリューションを選択するという実務的な試験の対策、という意味ではフィットしていると感じた。
（余談だがAWSのスライドは簡潔な文章に図のレイアウト、スライド全体のストーリーとどれをとっても非常に見やすいスライドで参考にしたいと思った）

Associate以上の認定では実務経験があるか、あるいはAWSが提供する試験対策用テスト環境でのハンズオンだったり実際にAWSアカウント作ってとにかく手を動かしてみるのが最良の試験対策と思われるが、時間とのトレードオフを考えるとなるべく避けて通りたいのでそういう場合はこのBlackbeltをオススメしたい。
非常に参考になる公式ドキュメントだが、気を付けて欲しいのはドキュメント自体の数が多いのと、ドキュメント1つ読むのにそこそこ時間がかかる。また、繰り返しになるがAWS認定試験の対策講座ではないので、試験に出ないムダな部分も多く、そこまで完璧に覚えようとすると骨が折れる。
試験日までのリミットとかけてもいい時間を意識したうえで、EC2、S3、EBS、VPCなど頻出サービスや、模試を何回かやった後で理解が浅いと感じた部分に絞って読むと一番効率的かと思う。

・グーグル先生
⇒分からない単語は適宜ググっていた。
ただし、**情報ソースの鮮度には要注意**。2018年に書いたページは論外、2年前投稿の記事でも最新の仕様と変わっていたりすることがある。SAAに限らず、AWSの認定試験の勉強をする上では常に留意いただきたい。

### アウトプット
・[Udemy 【SAA-C03版】AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集（6回分390問）](https://www.udemy.com/course/aws-knan/)
勉強法ググってた時に各所で評判良かった、模試の問題集。アウトプットの練習は主にこれを使った。1周目は参考書片手に答え見ながら解いて出題傾向を知り、2周目以降は解く⇒できなかったところを再復習、という感じ。
結構重箱の隅をつつくようなことを聞いてきており本試験より難しいので、最短クリアを目指すうえでこの模試で正答率80％とか100％まで仕上げる必要はない。が、そういうつもりでハードル高めに勉強してれば自然と本試験もクリアできてるのかなと思う。

# SAA-C02とSAA-C03の違いについて
SAAは2022年8月30日からC03試験に変更され、旧C02試験と比べて試験内容や出題範囲の比重が変更された。
最初C02の参考書を使って勉強していたが、後でやったUdemyのC03対応模試や、本試験を受けてみて結構内容が変わってるなと感じた。なので、ケチって古本屋のSAA-C02の参考書買って済ませる、みたいなのはオススメしない。

例えば、C02の参考書では
>S3は結果整合性を採用している為、データ保存後複製が完全に終わるまでにデータ参照すると、場合によっては保存前の状態が表示される可能性があるので注意が必要。

とあるが、S3は2020年12月1日より追加料金なしで「Strong Consistency（強力な整合性）」をサポートする仕様に変更となっており、データ追加・更新直後でも最新のデータを参照可能である。

※なぜC02の参考書を買ったのか？→CLFの勉強をしたときに使った参考書が分かりやすかったので、何も考えず同じ出版社、シリーズの参考書を購入した。アホである。


# 勉強計画と実績
### 計画
（7/24  CLF合格）
目標：1か月後までにクリア（7/24～8/23）
所要時間：ググったところだいたい60h～80hらしい⇒1週15h～  平日2×4, 土日7
### 実績、スケジュール
平日は仕事で疲れてイマイチ集中できなかったので、土日に集中してやった。土日で半日ずつ、5h×2程度？
8/26  SAA合格

独身で土日ヒマな人間の例なので、家事や育児で時間取られる方、趣味などで土日忙しい方だと2か月、3ヵ月見積もっておくと確実かと。1回不合格になって受け直すのは金銭的にもモチベの面でもしんどいので、きっちり時間をかけて準備して一発合格したほうがいい。

***
（以下、左が計画、⇒以降に書いてあるのが実績。殴り書きなので後日修正する）
7/24 START 
【参考書読んでざっくり把握：15h】
7/28  本を半分読む（AWS認定資格試験テキスト AWS認定ソリューションアーキテクト）
7/30  本を1周読み切る

【アウトプット, 模試をやって分からんところを復習：45h】
Udemy【C03版】AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集（6回分390問）
8/6  1周目おわり（最初から答え見ながら解いてみる）
8/13  2周目おわり（目標：正答率65％以上）⇒40％しかできず。ボロボロ。
表面的な単語だけで、根本の理解ができてないと痛感。
ここから少し時間をかけて、上記『Blackbelt』のスライドを読み漁る。

8/20  3周目おわり（目標：正答率85％以上）⇒まだBlackbelt読んでた
8/21か22あたり　本試験受験⇒8/26で申し込み。
8/26午前　⇒3週目の模試実施。正答率52％（笑）
8/26午後　⇒本試験受験。合格。
合格ライン720に対し、スコア745/1000。ギリギリだった。テストセンターの合格通知はリモート受験より早いらしく、受験後3時間程度でAWS認定試験のサイトで表示された。

# 気をつけたこと

**・問題文の長文に慣れよう**
CLFは2行程度の文を読んで当てはまるサービス名を答えるという形式が多く、はっきり言って暗記ゲーなのだがSAAはそうではない。問題文からして長く、65問を約2時間で回答、とかなりの集中力が必要である。（気になる方は、本屋行ってSAA模試の問題集でも軽く流し読みしてみるとよい）
最初は1日5問、10問とかでも構わない。徐々に慣れて長文を読める問題数を増やしていけるようにしたい。

**・アウトプットを繰り返し、問題のクセを理解する**
上に関連する事項だが、SAAは問題文を読んで脊髄反射的に、秒で即答できる問題はなかなかない。あたかも受験者がソリューションアーキテクトとして実際にお客様の様々な課題を把握し、適切なソリューションを選択することが求められる、そんな実務的な問題形式となっている。
故にインプットだけでなく、自身が持つ知識を問題文の条件と照合したり知識を組み立てて適切な選択肢を選ぶアウトプットの能力も結構問われる。序盤で「市販の参考書だけ完璧に暗記しても合格できない」と述べたのも、このような問題のクセ特有の事情による。

**・先に選択肢に出てくる単語をちらっと眺めておく**
これはテクニック的な話になってくる。問題文の事例からAWSの何に関する知識を問いたいのか？よくわからん、ということが私の場合多々あった。そういう時は選択肢に先に目を通しておき、何を問われそうか想定しながら問題文を読むと頭に入ってきやすいかもしれない。
例
選択肢『Glacier～』⇒問題文の要件に合致するS3の適切なライフサイクルを選べばいい？
選択肢『DynamoDB/RDS』⇒問題文でNoSQLを要求してたりkey-value型のDB構築ならDynamo、MySQLを使いたいとか出てきたらRDSか？

**・頻出トピックを把握し、確実に正解できるようにする**
模試を2周、3周もすれば、頻出トピックはまあまあ見えてくるものである。『オンプレストレージとS3の接続方法』『主要サービスの暗号化の仕様について』『S3の適切なストレージクラス、ライフサイクルポリシー選択』『プライベートサブネット内インスタンスから外部インターネットへのアクセス方法』etc...
最短ルートでSAA合格を目指すのであれば、頻出トピックは100％正解しつつ、マニアックな問題をいくつか取っていく、という戦略が望ましい。頻出トピックを落としているようではまず合格できない。
私の場合は、模試を2周したところで頻出トピックを理解できていないと感じたため、Blackbeltを読み込み頻出トピックに関する部分を自分なりにチートシートを作ってまとめ、暗記していった。

**・マイナーなサービスも簡単な概要ぐらいは覚えておくとベスト**
これは私は準備できてなかったのでどちらかというと反省になる。
参考書には出てこなかった、マイナーなサービス名が本試験の問題で出てきたりすると不安になるものである。そういう時の対策として、簡単な概要程度は覚えておくと消去法で選択肢を絞れるので合格率がよりアップする。（出題対象のサービス一覧は決まっており、ググれば出てくる。）
Udemyの模試とかでは結構マイナーなサービス名が出てきたりするので、そういう時にちょこっと調べて頭の片隅に入れておくといざという時に役立つかも。私が受けた時の本試験は、マイナーなサービスについてはそこまで聞いてこなかった。これもUdemyの模試が本試験より難しいと言われる所以であろうか。
ただし深堀りは禁物。あくまでよく出題されるサービスの知識を完璧にする方が優先。

**・試験はとっとと予約してデッドラインを明確にする。テストセンターで受ける**
理由は簡単、集中できるから。
SAA含め、AWSの認定試験は各地のテストセンターに行くか、自分のPCでリモート受験が可能である。
CLF受験時は、会社でリモート受験するつもりだったがいつまでも試験勉強を合格ラインに仕上げられず、ズルズルと申し込みを引き延ばしてしまっていた。一方、SAAは早めにとっととテストセンター予約し期限を切ったことで、直前でかなり集中力を高めて追い込めたと思う。なんせ受験当日に模試やって52％と合格ライン切ってたぐらいなので(笑)
大学受験の時に塾講師が「追い込みが大事、入試前日まで成績伸びる」と言っていた気がするが、今回はまさに試験前2日間の追い込みでぎりぎり合格ラインに乗せられた感じであった。

あと、CLFをリモート受験した時は会社のWi-Fi通信回線が悪く（~~通信インフラ会社なのに？~~）、試験システムがエラー終了し締め出されては外人の試験監督とやり取りしてカンニングになりそうなものを机に置いてないことを確認してから復帰、というのを3回ぐらい繰り返し40分程度ロスした。
また、リモートだと受験場所からカンニングにつながる物は片付けろと徹底的に命令されるので、私みたいに家が汚い人はそもそも自宅では受験できない（私は違うが、自宅に幼いお子さんがいる家庭なども声でカンニングを疑われてしまうという意味では同様だろうか）。
そういう環境起因のめんどくさいアレコレを排除して試験に集中するという意味でもテストセンター受験をお勧めする。


# 試験後振り返って
・すべての範囲を完璧にできずに試験日を迎えてしまった。データベース系（RDS,Aurora）やコンテナを完璧に仕上げられておらず、特にコンテナの出題比率が高めだったので解きながら内心終わったなと思った。
やっぱり余裕を持たせるなら2か月程度欲しかったかなと思う。引き延ばせばモチベや集中力落ちるというリスクもあるが。
・パブリッククラウドの勉強を通して、システム構築の全体像やセキュリティで気にするべき部分というのを俯瞰的に学べたのは良かったと思う。自社のIaaSをいじる上でも活かせそう。
AWSに少しは詳しくなったが、自身のキャリアプランでどうしてもAWS案件に携わり伸ばしていきたいかというと今はそうでもないかなという感じ。実務で使ってないのでとりあえず一旦AWSの資格はここまでにして、NW等他のウィークポイントも勉強していきたいと思っている。