【合格の近道！】AWS ソリューションアーキテクトプロフェッショナルに合格するための勉強法とコツ

### １．はじめに
***

<p>こんにちは！株式会社ジールの@Tsubasa_Tazakiです。<br>
先日、AWS認定資格のソリューションアーキテクトプロフェッショナル(以下SAP)<br>
に合格致しましたので、実際の試験を受けるまでの勉強法や、<br>
実際の試験で活用できるテクニック等をまとめさせて頂きたいと思います。<br>

SAPでなくても、アソシエイト(SAA)・クラウドプラクティショナー(CLF)でも
活用できる情報になると思いますので、<br>これから受験を考えている人のお力になれたら幸いです。</p>

### 筆者について

<p>職種：データエンジニア<br>
AWS歴：1年半程度<br>データ分析基盤構築でよく登場するサービス(S3, Redshift, Glue, IAM等）は実務で触る機会が多いが、<br>その他サービスは実務経験ほぼ無し。<br>
その他資格：応用情報技術者・AWSソリューションアーキテクトアソシエイト・クラウドプラクティショナー、etc.</p>

### ２．勉強時間と結果について
***
<p><b>勉強時間</b>：<font color="#ff0000">40～60時間</font>程度※<br>
※実務でAWSサービスを利用していたことを考えると、合計で100時間程度の勉強量は<br>
こなしていたかな、という気もしています。

<b>結果</b>：<font color="#ff0000">合格！</font><br>751/1000点(750点がボーダー)

足きりラインでの合格となりましたが、試験の最後にしっかりと見直しをしてよかったと<br>思いました。</p>

### ３．勉強に使った教材
***
教材は以下を使いました。

<p><h4>参考書</h4>
<a href="https://amzn.asia/d/26WlKcu">1．AWS認定ソリューションアーキテクト-プロフェッショナル ~試験特性から導き出した演習問題と詳細解説</a><br>

この本はマストで買っておいた方が良いです。

想定される問題ベースで解説をしてくれているので、
余分な知識を詰め込む必要が無く、効率的に勉強することが出来ます。
また、最後に模擬問題も75問ついていて、解説も分かりやすく丁寧です。

<a href="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-%E5%95%8F%E9%A1%8C%E9%9B%86-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%83%97%E3%83%AD%E3%83%95%E3%82%A7%E3%83%83%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB-%E5%B1%B1%E4%B8%8B%E5%85%89%E6%B4%8B/dp/4815609063/ref=pd_bxgy_img_sccl_1/358-8109184-1526164?pd_rd_w=NkZXC&content-id=amzn1.sym.918446e7-72f4-48c7-a672-af3b6ace2b19&pf_rd_p=918446e7-72f4-48c7-a672-af3b6ace2b19&pf_rd_r=TAYKZJTKX26GS53YDY5M&pd_rd_wg=V7xgl&pd_rd_r=6b9038e8-4e4c-49ad-b681-fee209a692ef&pd_rd_i=4815609063&psc=1">２．AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル</a>

こちらの本はあまり使いませんでしたが、最初に紹介した本よりもテキスト感が強い本です。
こちらも模擬試験が75問ついておりますが、問題の質としては最初に紹介した本の方が高いように思いました。
しかし、知識をテキストベースでしっかりと整理したい・もっと問題を解きたい、という人は買って損は無いと思います！
</p>

<h4>問題集</h4>
<a href="https://www.udemy.com/share/1020WG3@7R5DeufYu3yofJHKaek-go4ChON2yrc_PspOOlFbVFcdy1R0POnITXQuTsHqIo9wJg==/">【01版】AWS 認定ソリューションアーキテクト プロフェッショナル模擬試験問題集（全5回分375問）</a><br><br>

鉄板のUdemyの問題集です。
75問×5回分が収録されていて、場数を増やしたいといった場合にピッタリです。
また、回数をこなしていく内に自然にAWSサービスの使い方の知識も身に着けられるのでオススメです。

<p><h4>その他</h4>
・AWS Skill Builderの模擬試験

<a href="https://explore.skillbuilder.aws/learn/course/external/view/elearning/13272/aws-certified-solutions-architect-professional-official-practice-question-set-sap-c02-japanese">AWS Certified Solutions Architect – Professional Official Practice Question Set (SAP-C02 - Japanese)</a>

AWSが公式で実施しているAWS SAPの模擬試験です。無料で受けることが出来ます。
問題数は20問で、解説もちゃんとついているので、模試と言えど勉強の教材として使うことが出来ます。

・AWS SAP サンプル問題
<a href="https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-pro/AWS-Certified-Solutions-Architect-Professional_Sample-Questions.pdf">Professional (SAP-C02) 試験問題サンプル - Awsstatic</a>

こちらもAWSが公式で実施しているAWS SAPのサンプル問題です。
登録は不要で、無料で見ることが出来ます。
問題数は10問ですが、解説もついているので、教材としても利用出来ます。


### ４．勉強法
***
私は1日に長時間勉強が続くタイプではないので、
少しづつでも着実に知識を身に着けていくような勉強を心掛けました。
具体的には、以下の３つを実践していました。

<p><h4>◆毎日コツコツと小出しで問題を解く</h4>

私はほぼ毎日、Udemyや書籍の模擬問題を5～10問程度解くようにしていました。
5～10問ずつ解いた後に、その分の解答＆解説を読み、ネットで調べるという事を繰り返していました。
　
テキストや資料の読み込みなどは、気が向いたら10～15分程度行うようにしていました。
　
最初から書籍やUdemyの問題を見て、<b>最初から通しで全て解く必要は無い</b>と思います。
実際、私は最後まで3時間通しで問題を解いたことがありませんでした。(笑)

自分に無理のないペースで、少しずつ理解度を高めていくことを意識しました。
　
※もちろん、何時間も勉強が続くタイプの人はそのスタイルで問題無いと思います！
<p><h4>◆ベストプラクティスは何かを意識しながら解説を読む</h4>

AWSの認定試験は、ベストプラクティスに沿った形の選択肢が答えになることがほとんどです。
実際の試験はこれほど簡単ではないですが、以下が出題される問題とベストプラクティスの例となります。

<h5>(例):</h5>
・別AWSアカウントから自分のAWSアカウントへのアクセスを可能にしたい。どうすれば安全にアクセスさせることが可能か？<br><font color="#ff0000">⇒アカウント情報が漏洩した場合のリスクが大きいため、IAMユーザーを払い出すのではなく、IAMロールを作成し提供する。</font><br><br>

・アプリケーションをAWS上で起動させたいが、なるべくコストは抑えたい。どうしたら良い？
<font color="#ff0000">⇒コストを抑えたい場合は、基本的にEC2上でアプリケーションは動かさず、Lambdaを使う。</font>

・5日以内にオンプレミスのデータをAWSに移行したいが、ネットワーク回線の速度が遅い。どのように移行する？
<font color="#ff0000">⇒Snowball（物理的なデバイスを使い、AWSクラウドへデータを移行できるサービス）を利用して、ネットワークの影響を受けずにデータを移行する</font>

このように、問題を解いていると、「このパターンならこれが正解だろうな」
という感覚が徐々に身についていきます。
覚えることは多いですが、毎日少しづつ積み重ねていくことで自然と問題が解けるようになっていきます。

また、<b>「なぜその選択肢がベストプラクティスになるのか？」を意識することが大切</b>です。

例えば、その選択肢が正解になる理由は
<b>「コスト効率が下げられるから」</b>なのか
<b>「パフォーマンスが良くなるからなのか」</b>など、
意識を向けることによって勉強する際にイメージが付きやすくなります。


<p><h4>◆理解が追いつかないサービスは構成要素で覚える</h4>

勉強をしていくうちに、どうしても理解が及ばないサービスが出てくると思います。

私が特に苦手としていた部分は、ネットワーク系のサービスについてでした。

VPCエンドポイントやサブネットの話に関しては、実務でも意識することが多いので理解出来たのですが、
実務でほぼ触らないサービス（Direct ConnectやVPN等）の問題をどう解いたら良いかに頭を抱えておりました。

Direct Connectなんて、実務では全く使わないうえに、S3のように手軽に
始められるサービスでもないんですよね。

そのようなサービスがある場合は、最低限、以下の事を抑えるようにするようにしました。

<b>・そのサービスはどのような部品で構成されているかのを見る(ネットで構成図を検索）</b>

<b>・サービスの構成要素の設定方法等は深くまで触れない。
(「こんな部品があって、どんな時に使うんだ～」程度の理解でOK！)</b>

実際にこの勉強法を活用した場合、
どのような問題が出題された時に約に立つのかについて例を交えて説明します。

<b>(例):Direct Connectについて</b>
・VPC内のプライベートサブネットに存在するインスタンスにアクセスしたい場合
<font color="#ff0000">⇒プライベートVIFを使用する</font>

・その他VPCに属さないAWSサービス(S3等)と通信を行う場合
<font color="#ff0000">⇒パブリックVIFを使用する</font>

こうすることで、最低限ではあるものの、問題に対応できる知識を蓄えることが出来ます。
役に立つ場面としては、以下のような問題が出題された時です。

<font color="#ff0000">※以下、あくまで例として自作したものであり、実際のAWS認定試験の内容とは関係ございません。</font>

<b>■問題文：</b>
「Direct Connectを利用して、オフィスとAWSクラウドで専用線を利用した通信を
行いたいと考えています。オンプレミスに設置されているサーバーは、S3と通信可能であることが要件となっています。また、～（省略）～。これを実現するためにはどの選択肢を選べばよいでしょうか。」

<b>■選択肢：</b>
A: S3への通信を実現させるために、プライベートVIFを利用する。また、～（省略）～の設定を行う。
B: S3への通信を実現させるために、プライベートVIFを利用する。また、～（省略）～の設定を行う。
C: S3への通信を実現させるために、パブリックVIFを利用する。また、～（省略）～の設定を行う。
D: S3への通信を実現させるために、パブリックVIFを利用する。また、～（省略）～の設定を行う。

問題文の要件としては、<b>「S3と通信可能であること」</b>があります。

A, Bの選択肢は「プライベートVIF」という単語が出てきている時点で除外することが出来ます。
必然的に、残った選択肢はC,Dとなるわけですが、ここで既に答えを2択で絞り込むことが出来ます。

意外にも、AWS試験はこのように、
<b>選択肢の一部分だけを見て、違う選択肢をすぐに除外できるようなパターンが多い</b>です。

ぱっと見で分からない問題でも、このように知っている単語を照らし合わせるだけで
正答率を上げることが出来ます。

少しテクニック的な部分が混ざる部分ではありますが、少しでも得点率を上げたい方へ
オススメしたい勉強法です。


### ５．試験当日に役立ったテクニック
***

ここでは、実際の試験中に受かるために大切だと思ったコツを紹介します。

<p><h4>◆消去法を利用し、選択肢を絞り込むように考える</h4>

勉強法のセクションにて少し紹介しましたが、
意外にも、サービスの一部分だけ知っているだけで二択に絞り込みが出来る問題が多いように感じました。

例えば、AWS Organizationにて各AWSアカウントが実行可能な権限の制限をかける場合、
IAMポリシーやロールでは無く、SCP(サービスコントロールポリシー）というものを
指定しなければならないのですが、選択肢の中に「IAMポリシーを設定する」や「IAMロールを設定する」
などのかなり基礎的な事が書かれている場合もありました。

ここで「SCPを設定する」ことがイメージ出来ていれば、後は残りの選択肢から一つ選べば良いことになります。

このように、<b>消去法を利用し、選択肢を絞り込む</b>ことで
得点率を上げることが出来るようになります。


<p><h4>◆見直しをちゃんとやる</h4>
75問を3時間で解くという長丁場の試験なので、集中力が徐々に切れてきます。

これから受験する人も、問題を解いている内に、徐々に集中力が切れてくることを実感すると思います。<br>

そのため、私は、2時間で問題を解いた後、1時間はしっかりと見直しに時間をかけるようにしました。
（最後の15問は間に合わなかったですが(笑)）

集中力が切れている時は、「なんとなく・・・」で解答を選んでしまうケースが非常に多いです。

最後に見直しを行い、「なんでこの選択肢を選んだんだっけ？」と、
自分でツッコミをしてみることで、ケアレスミスを減らす事が出来ます。

私がギリギリで合格をすることが出来たのも、このツッコミを怠らなかったからであると考えています。

<p><h4>◆要件と制約を把握し、選択肢と照らし合わせる</h4>

AWSの問題は、殆どの場合、問題文を<b>「要件」と「制約」</b>に分けることが出来ます。

ここでいう「要件」と「制約」とは以下のような事です。

<b>要件:</b>
⇒その問題文中で実現させたい事が書かれている部分。
(例):アプリケーションをAWS上で実行させたい、100TBのデータをオンプレミスからAWSへ移行したい、
オンプレミスとAWSクラウドのハイブリッドアーキテクチャを実現させたい、etc.

<b>制約：</b>
⇒何に気を付けてその要件を実現させるのかについて書かれている部分。
(例):コスト効率を重視したい、コストを最低限に抑えたい、管理に関するオーバーヘッド（負荷）を極力抑えたい、etc.
　
こうすることで、この問題は何を問うているのか？この要件を満たす選択肢はどれか？
を整理しやすくなります。
特に、「制約」の部分では、その記載によっては正解を絞り込める場合もあるので、
しっかりと目を通しておきたいポイントです。

例えば、問題文として、
「コストが重要視される際にアプリケーションをAWS上で稼働したい。その際、コストを極力下げたい。」
という問題があった場合、EC2上でアプリケーションを稼働させるのは一般的にはコストがかかるため、サーバレスのAWS Lambdaを利用してコストを削減することなどを考えることが出来ます。
そのため、選択肢に「EC2」という単語が入っていたら怪しい、と考えることが出来ます。

### ６．終わりに
***
正直、SAPの勉強を始めた時は、その難易度から自信を無くしてしまう事もありました。

しかし、毎日少しずつの積み重ねや、問題の特性を理解するということを重ねた結果、
少ない勉強時間でも合格をすることが出来ました。

<p>今後受験を考えている方も、毎日少しずつの積み重ねできっと受かることが
出来ると思いますので、一度挑戦してみてはいかがでしょうか。</p>