文系新卒エンジニアがAWS認定ソリューションアーキテクト – プロフェッショナルに一発合格した話

#概要
まだぎりぎり文系新卒エンジニアを名乗れる社会人1年目の年度末。
この度AWS認定ソリューションアーキテクト – プロフェッショナル（以下SAP）に合格したので、[アソシエイトのとき](https://qiita.com/yuki_ink/items/a7fa95d02e23bdedab70)と同様、合格体験記的なものを書いておこうと思います。
これからSAPを受験される方の参考になれば幸いです。

#対策
まず、SAP対策で何をしたか、ということをまとめます。
前提として、私は2020年12月下旬にSAA合格した後、すぐにSAP対策を始めました。
SAA対策で得た知識は100%残っている状態でのスタートだったので、今考えるとそれがよかったのかなあと思います。
それから約3か月での合格となりました。

さて、その3か月で何をしたかですが、結論だけ言えば、2冊の書籍を読みました。
どちらも良著でしたので、紹介させていただきます。

##AWS認定ソリューションアーキテクト－プロフェッショナル～試験特性から導き出した演習問題と詳細解説～
1冊目。大変お世話になりました。
タイトルに「演習問題と詳細解説」とあるくらいなので、演習問題とその解説は非常に充実していました。
"なぜその選択肢が正解なのか"という点だけでなく、"ほかの選択肢がなぜ不正解なのか"という点にも触れられており、自然とSAPに求められる思考パターンが身に付きます。
難易度的にも丁度よかったです（むしろ本番の試験より少し難しいかも）。

構成はこんな感じ。
>第1章 AWS認定ソリューションアーキテクト-プロフェッショナル試験の概要と特徴
第2章 各種サービスの概要
第3章 試験で問われるシナリオの特性
第4章 「組織の複雑さに対応する設計」分野におけるケース問題
第5章 「新しいソリューションの設計」分野におけるケース問題
第6章 「移行の計画」分野におけるケース問題
第7章 「コスト管理」分野におけるケース問題
第8章 「既存のソリューションの継続的な改善」分野におけるケース問題
第9章 模擬試験

第4章から演習問題に入っていくんですが、その前の第2章、第3章も非常に意義のある内容でした。
SAAとSAPでは、単純に押さえておくべきサービスの幅が広がります。
ですので、演習問題に入る前にそのギャップをある程度埋めておいてくれるのは非常に親切だなあと思いました。
※もちろん本に書いてあるサービスだけ押さえておけばそれでOK、ということでもないんですが。。

あと模擬試験があるのもよかったです。
試験の1週間前に模擬試験を解いたら正答率が50%ちょっとでした。
それが最後の追い込みに繋がったかなと思います笑。

###どのように使ったか
本に書いてある内容だけでSAPを突破できるかといえば、ちょっと微妙です。
「この要件はこのサービスのこの機能使えば実装できるよ～」、、え、それで解説終わり？？ということがちょいちょいありました。
何その機能初見なんだけど、、みたいな。
たとえば、パッケージソフトウェアのライセンス規約上インストール先のハードウェアが固定じゃないといけないときは、EC2の専有ホスト（Dedicated Hosts）を使えばいいんだよ～と書いてあって、何それ知らな～いとなるわけです。
軽く説明はしてくれているけど、いまいちピンとこない。

そんなときは自力で調べました。
お世話になったのは以下。
・[AWS公式ドキュメント](https://docs.aws.amazon.com/ja_jp/)　
　⇒たまに日本語の読解が困難なことがあるが、「公式」の安心感はすごい。絶対最新情報。
・[DevelopersIO: クラスメソッド発「やってみた」系技術メディア](https://dev.classmethod.jp/tags/aws/)　
　⇒公式の読解に困ったらクラメソさんに聞く。いつもありがとうございます。
・[AWS サービス別資料](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/)　
　⇒通称ブラックベルト。YouTubeでサービスの紹介動画を視聴できるので、視聴覚的にサービスを理解できる。

調べるといろんなことが分かります。
その専有ホストってやつは「テナンシー」（テナント属性）ってところで設定するのね！とか、テナンシーって共有（デフォルト）・専用（ハードウェア専有インスタンス）・専有ホストから選択できるんや！とか。
そこまでわかると、じゃあ専有ホストと専有インスタンスの違いって何？？となって、また調べます。
また、テナンシーについてさらに調べていくと、さらにVPCでもテナンシーの設定できることを知ったりします。
もはや沼・・・笑。

**こんな感じで、本で出てきたわからないポイントを調べ、ある程度腑に落ちたら、頭の中で整理し、本の余白に書き込む、ということをしていました。**

試験前にはオリジナルの参考書っぽくなってて、テンションが上がります。
やっぱり紙の本の方が好きやなあ。
Amazonのリンクは[こちら](https://www.amazon.co.jp/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-%E8%A9%A6%E9%A8%93%E7%89%B9%E6%80%A7%E3%81%8B%E3%82%89%E5%B0%8E%E3%81%8D%E5%87%BA%E3%81%97%E3%81%9F%E6%BC%94%E7%BF%92%E5%95%8F%E9%A1%8C%E3%81%A8%E8%A9%B3%E7%B4%B0%E8%A7%A3%E8%AA%AC-%E5%B9%B3%E5%B1%B1-%E6%AF%85/dp/4865942483/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=&sr=)。

##AWSの薄い本　IAMのマニアックな話
2冊目。
直接SAPの対策につながる本ではないのですが、私自身IAMの理解がいまいちだったので購入しました。
もともとは、AssumeRoleとか意味わからんし、SCPとかリソースベースのポリシーとか、え？IAMポリシーと何が違うんですか？というような状態でしたが、この本を読んで、なんとなくその辺りが理解できたと思います。

構成はこんな感じ。
>はじめに
第1章 AWS と IAM
第2章 IAM の機能
第3章 IAM チュートリアル
第4章 IAM ポリシーのデザインパターン
第5章 IAM グループのデザインパターン
第6章 IAM とセキュリティ
第7章 IAM の運用
第8章 IAMとCloudFormation
第9章 IAMのテンプレート集
第10章 IAM以外のAWS サービスの活用
付録 A アカウント開設時の設定チェックリスト

見事なIAM縛り・・・笑。
逆にIAMだけで本一冊書けるんやなあ、IAMぱねえなあと思いました。

この本は全体を通してベストプラクティスに則った記述、解説がなされています。
要件を満たすためには様々な選択肢があって、全部機能的には可能だけど、その中でどれを選ぶのがいいのか。
そのような観点からIAM（というよりポリシー設計）について勉強できるので、非常に役に立ちました。

当然SAPでもIAMに関する問題は多く出てきます。
[「AWS では、クラウドのセキュリティが最優先事項です」](https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/userguide/security.html)とのことですので、それはもうややこしい問題が出題されます。
IAMの理解は必須と言っても過言ではありません。

###どのように使ったか
通勤中に読んでいました。
「薄い本」なのでサラサラっと読めます。
画像も多く、実際のマネジメントコンソールのキャプチャやポリシー設計のイメージ図などが多く掲載されていました。
それを見て、イメージを膨らませていました。

この本を読めば「IAMマニアの称号」が手に入るそうです。
是非。
リンクは[こちら](https://booth.pm/ja/items/1563844)。

#試験のコツ的なもの
あくまで個人的なものですので、ご参考までに。

##①キーワードを探す
SAPの問題はとにかく冗長です笑。
長い問題文の中から重要なキーワードを見つけることが選択肢の絞り込みに繋がります。

例えば「サーバレスアーキテクチャ」。
これが出てきた時点で、EC2とかRDSとか書かれている選択肢は除外することができます。
直接「サーバレス」と書かれていなくても、「高可用性」で「費用対効果が高い」アーキテクチャであれば、それすなわちサーバレス、と考えることもできます。

「グローバルに配信」とくればCloudFrontの利用はほぼ確実です。
CloudFrontはAWS Shield Standardがデフォルトで有効化されており、またエッジロケーションからの配信となることから高い可用性を実現できます。

「IoTデバイス」や「リアルタイム」とあれば真っ先にKinesisの利用が頭に浮かびます。
KinesisはData StreamsかData Firehoseかで悩むことが多いですが、他に「S3」「RedShift」「Elasticsearch」といった記述があれば、Firehoseかな？と考えることができます。

こういう例って結構ありますよね。
キーワードを見つけ、楽に選択肢を絞っていくことがSAPの3時間75問耐久を潜り抜ける術だと思います。

##②プロジェクトで重視されているポイントを把握する
SAPの問題形式として多いのが、「あなたはソリューションアーキテクトで、クライアントからこんな相談を受けています」パターンです。
SAAでは4つの選択肢の中で実現可能なものが1つしかなく、それが正解、というケースが多かった印象ですが、SAPでは、え、この選択肢やろうと思えば全部やれるんじゃね？となることがよくあります。

その時考えなくてはいけないことは「クライアントが何を重視しているか」です。

例えば、オンプレミス環境とAWS環境をつなぎたい、という要件を考えます。
このとき、「安定した」「セキュアな」通信が欲しいなら、答えはDirect Connectになりますし、「低コストで」「なる早で」通信できるようにしたいならVPNになります。

何をもってプロジェクト成功とするのか、という情報はチェックするようにするのがいいかと思います。

①で選択肢を絞り、②で決める。
そんな感じで解き進めるのがコツです。

#所感
3時間耐久は体力的にきつかった。
エンジニアって体力も必要なんやなと感じるこの頃です。

あと、これが文系新卒エンジニアを名乗れる最後の投稿かと思うとしみじみします笑。
未経験でIT業界入ってAWSを触る21卒の人たちに、頑張れば1年目でSAPまで行けると伝わればいいなあ。
それではまた。