【AWS認定】ソリューションアーキテクト プロフェッショナル（AWS CSA-Pro）に合格してきた【英語重要】

# はじめに
近年の目標であった、AWS認定ソリューションアーキテクトプロフェッショナル（AWS CSA-Pro）に合格してきました。
スコアは82%でした。
これから受験する人の参考になればと思い、体験記をまとめてみます。

ちなみにこの記事は8割がた試験日の午前中に書いてます。
試験は13:30開始にしましたが、緊張と興奮で何も手に付かなかったので、これを書き始めました。


# TL;DR
- 模擬試験でFailedになっても絶望しない（模擬試験は難しいというより悪問が多い）。
- 正攻法は時間がかかるけど、活きた知識がちゃんと身に着く。
- Linux Academyのコースを、素直にカリキュラムに従って勉強すれば普通に合格できる。
- 英語出来ないとExtremely Hard Mode（最低でもTOEIC L&Rで600点ぐらい無いと辛い）

使った有料サービスは下記の2つです。これをちゃんとやれば多分合格できます。
詳細は後述。

- LinuxAcademy
- WhizLabs


# これから取得を目指す方へ
プロフェッショナル認定にチャレンジしようかどうか迷っている方は、恐らく実務でもいろいろなAWSサービスを活用し、アーキテクチャを作り、一定水準以上の知識を身に付けた、自信がある方だと思います。

合格するために**一番重要なファクター**は何か？
それは**英語力**です。
最初に断言します。

試験に合格する、という意味では、インフラ・アーキテクチャ等の知識や技術力よりも重要です。

英語が苦手であれば合格はかなり難しいと思った方が良いです。
逆に、ある程度の実務経験があって英語が苦手でないならば、それほど難しい試験では無いと思います。
TOEIC L&Rで600点ぐらいあれば多分大丈夫でしょう。

理由は以下の通りです。

1. 日本語のオンライン講座が無い
2. 重要なドキュメントは全て英語
3. 日本語版があっても古い

まず、確実に合格するためには、オンラインの有料講座を受講した方が良いですが、2018/4/4現在、日本語の講座はありません。
独学だけでは試験範囲も掴めず、また模擬試験もろくなものが無いため試験対策ができません。

勉強するにしても、試験の出題に直結する重要な情報の幾つかは、Whitepaperに書いてあります。
これらを読み込まないことにはスコアが伸びません。
重要なWhitepaperはすべて英語で、日本語版はありません。

また、日本語版があっても古かったりします。
たとえば、DDoS対策に関するWhitepaperは日本語訳はありますが、これは古いです。

確かに、公式ドキュメントやBlack Belt、公式Blog、一部のWhitepaperなど、日本語情報は豊富ですが、試験範囲に直結するものを短期間に読み込む、というのが難しい状況です。
\# Black Beltシリーズを除く

日本語情報だけでは合格できないとは言いませんが、いばらの道、Extremely Hard Modeに等しいと思います。
なので、もし英語を読むのが苦手、という方であれば、先に英語力を上げるのが合格への近道だと思います。


# バックグラウンド
私個人のバックグラウンドを少し説明します。

- インフラ十数年、アプリ数年、それに経営戦略的な経験を少々。AWSを実務で利用して5年ぐらい。
- 実務において「これはアプリ屋／インフラ屋の仕事だから」といった線引きをして自分の枠を狭めるようなことはせず、未経験の領域でも積極的にチャレンジした。
- 実際ここ数年の開発・保守案件では、AWSを活用した様々なアーキテクチャの検討・実装をしてた。
- 気付いたら名実ともに「アーキテクト」とか「フルスタックエンジニア」呼ばれる人になってた。
- 英語力は高くもないけど低くもなし（TOEIC L&R 735点）

これまでのお話。

| DATE       | Event | Remarks |
|:-----------------|:------------------|:-------------------|
| 2016/2/21 |  Solution Architect Associate認定取得 |  |
| 2018/2/22 |  Solution Architect Associate認定失効 |  |
| 2018/4/4 |  Solution Architect Professional認定取得 | **←いまココ** |

Solution Architect Associateの失効が近かったので、プロフェッショナル認定の取得を目指しました。
実際には、業務の関係上、Associate認定失効までに試験をスケジューリングすることができなかったため、失効後にProfessional認定を取得することとなりました。


## AWSのRecertificationについて
AWSの認定は基本的に2年で失効します。では失効したら全て取り直しかというとそうではなく、1年間の再認定の猶予があります。

AWS Recertification（再認定）
https://aws.amazon.com/jp/certification/recertification/

Professionalの認定取得にはAssociateの認定が必要ですが、Associateが失効しても1年間は再認定の猶予があります。
そのためこの期間であれば、Associateの取り直しは不要です。


# 戦績
## 本試験結果
スコア82%となりました。
試験終了直後、たぶん8割超えぐらいだろうという感触がありましたが、実際その通りでした。
85%に届かなかったのはちょっと悔しい…

```
総合評点： 82%

トピックレベルスコアリング：
1.0  High Availability and Business Continuity: 75%
2.0  Costing: 100%
3.0  Deployment Management: 87%
4.0  Network Design: 75%
5.0  Data Storage: 83%
6.0  Security: 81%
7.0  Scalability & Elasticity: 84%
8.0  Cloud Migration & Hybrid Architecture: 85%
```

## 学習時間・期間

総学習時間はおよそ162時間となりました。
他にも通勤中・入浴中にWhitepaperとかBlack Beltシリーズを読んでいたので、実際にはもう少し多いかと思います。

| Item | Total Amount Hours | Remarks |
|:-----------------|:------------------|:-------------------|
|模擬試験の受験と分析|11.5h|あまりの点数の低さに絶望|
|独学による学習|15.0|あまりの先の見え無さに絶望|
|eラーニング教材による学習（LinuxAcademy）＋独学|85.0h|かなりの手ごたえあり|
|試験対策|50.5h|受験後の復習、Whitepaperなどのドキュメントの読み込みが多分20~25hぐらい|


学習期間は実質的に約4カ月程度となりました。各フェイズでどのよう勉強を行ったかは後述します。

| Phase | Date Period | Description | Remarks |
|:-----------------|:------------------|:-------------------|:-------------------|
| 序盤戦 | 2017/4/中旬 ～ 5/7 | 試験勉強を開始するが、業務多忙により勉強を中断。 | 模擬試験受験1回目。スコア50% |
| 中盤戦 | 2017/12/17 ～ 2018/3/2 | LinuxAcademyをお供に試験勉強を再開。 | 模擬試験受験2回目。スコア62% |
| 終盤戦 | 2018/3/2 ～ 2018/3/26 | WhizLabsで試験対策。 | |


# どのように学習したか
## 基本的な考え方
AWS CSA-Proは資格試験です。とすれば、大きく二つのアプローチが考えられます。

1. **学習範囲をいったん体系的に学んだのち、試験対策にあたる（正攻法）　←こっちを採用**
2. 過去問を中心に解き、弱い点を中心に周辺領域を強化する

合格するだけならば後者のアプローチで十分ですが、それだと再認定の時（2年後）もまた苦労するであろうこと、取得する期限に余裕があったことから、前者のアプローチを選択しました。
実際、きちんと学んで正解でした。
実務を想定し、ハンズオンを交えて手を動かしながら学習していくことで、活きた知識が身に着いたと思います。

## 学習方法
Linux Academyの下記のコースを中心に、以下のように勉強を進めました。

AWS Certified Solutions Architect - Professional Level
https://linuxacademy.com/amazon-web-services/training/course/name/aws-certified-solutions-architect-professional-level

当該コースではStudy Guideというものを提供しています。これに従って素直に勉強することにしました。
ポイントは下記の通りです。

- 動画の視聴は勉強時間の40%とし、60%は自分で考えたり手を動かしたりして理解を深めろ
- 必須Whitepaperは必ず読め（※同Study Guideに一覧が書いてありました）
- 各AWSサービスのFAQを読むのも悪くない
- 準備ができたら試験をスケジューリングしろ。焦ってことを進めるのは、失敗するための最善策。

上記を元に、まずはスケジュールを立てました。

当該コースは、合計18:08:33の学習教材が準備されています。
したがって、総学習時間は最低でも45h（＝18h×100／40）となります。
もう少し余裕を見て60hとしました。（実績は85h）

また、コース・その他資料が全て英語なので、言語のコンテキストスイッチをしない方が脳が疲れないと思い、学習ノートは英語で作ることにしました。
\# 実際、インプットが英語・アウトプットが日本語、の切り替えをするのはしんどかったです。

上記を踏まえ、各Chapterを下記のように進めていきました。

1. コースの受講
    1. 教材動画を見て、自分なりにノートを作る
    2. 対象のAWSサービスを深く知るために、対応するBlack Beltシリーズの資料を読み込む
    3. 対象AWSサービスの公式ドキュメントの必要個所を読み込む。チュートリアルがあればしめたもの
    4. 必要に応じて環境を作ったり検証する
    5. 理解したことをノートにまとめる
2. 重要Whitepapersの読み込み
    1. Study GuideにあるWhitepaperを読み込む
    2. 必要に応じて、関連する公式ドキュメント・Black Beltシリーズを読み込む
    3. 理解したことをノートにまとめる


一通り勉強した後は、ひたすら問題を解いて試験対策をしました。
模擬試験教材としてWhizLabsというサービスを利用しました。

WhizLabs
https://www.whizlabs.com/aws-solutions-architect-professional/


## 学習の記録（※ポエム注意。興味ある方のみお読みください）
### 序盤戦
公式の模擬試験を受験して、弱み／強みを分析しつつ、必要な領域を学ぼうとしました。
模擬試験を解き、分からなかった部分について、Black Beltシリーズや公式ドキュメントを読み、チュートリアルがあれば実際にやってみて理解を深めようとしました。

ちなみにこの時のスコアは50%でした。ひどいものです。

```
総合スコア: 50%

トピックレベルのスコア:
1.0 High Availability and Business Continuity: 16%
2.0 Costing: 50%
3.0 Deployment Management: 75%
4.0 Network Design: 100%
5.0 Data Storage: 16%
6.0 Security: 62%
7.0 Scalability & Elasticity: 33%
8.0 Cloud Migration & Hybrid Architecture: 75% 
```

Storage GatewayやCloudHSMなど、自分にとって全く新たなものについてはここで基礎を身につけましたが、それ以外の領域についてはどこまでやるべきか、どこまで必要なのかが見えてきませんでした。
「このままでは無限の時間がかかる」と思いながらも、他に良い勉強方法が見つからないのでそのまま続けていました。
そんな中、業務が非常に多忙となり、勉強時間を確保できない日々が続きました。


### 中盤戦
勉強時間も確保できるようになっていたため、勉強を再開しました。
なおここで、素直に有料のオンライン講座に頼ることにしました。

良さそうなオンライン講座を探しつつ、合格した個人の体験記やBlogを見ながら、試験範囲・出題傾向をつかんでいきました。

#### 有用な個人Blog - Jayendra's Blog
個人Blogとしては、下記が非常に有用です。

> Jayendra's Blog
> http://jayendrapatil.com/aws-solution-architect-professional-certification-exam-preparation-guide/

実際コメント欄見てみると、「有料のサービスとか使わないでも、あんたの記事だけで合格できたよ」「あんたはロックスターだ！」みたいなコメントが散見されます。
実際合格した身からすると、確かのこのBlogの内容をきちんと（自分なりの読み解き、ハンズオンを踏まえながら）学習することで、必要な力はつくと思います。
読んで理解したうえで、実際に動かしてみて理解を深める、というプロセスを続けられるのであれば、このBlogだけで合格できると思います。

#### Study on Linux Academy
オンライン講座はLinux Academyを利用することにしました。選択した理由は下記の通りです。

- 包括的な内容であり、試験範囲を網羅しているように見える。
- Jayendra氏のBlogでも、広範囲をカバーしている、どれか一つ選ぶとしたらLinuxAcademyにすると書いてあった。
- New Year Sale期間中で安かった（$200/yearだが、他にもたくさん講座があって幾らでも受講できる）

AWS Certified Solutions Architect - Professional Level
https://linuxacademy.com/amazon-web-services/training/course/name/aws-certified-solutions-architect-professional-level

結論としては、これを受講して正解でした。素直に指示に従って学習することで、必要な知識が身に着きます。
学習方法は上述した通りです。

なお、当該コースのハンズオンのうち、"Using Data Pipeline to Copy DynamoDB Data to S3"と、"Hands-On Lab: Analyzing Log Files with EMR"がまともに動きませんでした（結果、諦めました）。
そのため、ここで結構時間を食ってしまいました。

ただ、両ハンズオンがまともに動かなかった結果、その仕組みや動作仕様を散々調べました。
おかげで、Data Pipeline/EMRを使う場合のノウハウが結構身に着いたと思います。

コース終了直後、また模擬試験を受けてみました。
スコアは62%。まだ試験対策が必要です。

```
総合評点： 62%

トピックレベルスコアリング：
1.0  High Availability and Business Continuity: 33%
2.0  Costing: 50%
3.0  Deployment Management: 75%
4.0  Network Design: 100%
5.0  Data Storage: 83%
6.0  Security: 75%
7.0  Scalability & Elasticity: 50%
8.0  Cloud Migration & Hybrid Architecture: 25%
```

##### 他のeラーニング講座
他にいくつか候補があって検討しました。私個人の印象は下記の通りです。

> QwikLabs
> https://amazon.qwiklabs.com/quests/11

範囲狭くない…？


> A Cloud Guru
> https://acloud.guru/learn/aws-certified-solutions-architect-professional

包括的に網羅していて良さそうです。提供も2017年と新しいですし。
ただしハンズオンが無さそうに見えたこと、模擬試験ぽいものが無いこと、少し高い（買い切り$99）ので、選択肢からはずしました。


> AWS Certified Solutions Architect - Professional 2018
> https://www.udemy.com/aws-certified-solutions-architect-professional/?couponCode=AWSJROCKS

包括的に網羅していること、up-to-dateであること、安い（買い切り\4,200）ことから、ベストな選択肢であるように思えました。
ただ、訛りが…
英語字幕が出るので学習する上では問題ないと思いますが、普段慣れている英語のテンポと違うので調子が崩れる…

### 終盤戦
一通りの学習は終えたので、後は模擬試験での試験対策です。
Linux AcademyにもPractice Examはありますが、問題数が少ない（恐らく100問弱程度）なので、どうしても答えを覚えてしまいます。
他に模擬試験を提供しているサービスが無いか探したところ、WhizLabsというものを見つけたのでこれを利用しました。
買い切りで約$30。総問題数は恐らく300～400問程度でしょう。ちなみに、そのうち100問程度はLinux Academyの問題の丸パクリです。

WhizLabs
https://www.whizlabs.com/aws-solutions-architect-professional/

WhizLabsを使ってみての印象。
![shinkensemi.jpg](https://qiita-image-store.s3.amazonaws.com/0/137777/ebf26e6f-7498-dad8-531c-32a2a245fb33.jpeg)

Practice Examは、Linux AcademyとWhizLabsあわせて10回以上やったと思います。
いずれもスコア85%～93%を取ることができました。
今思えばオーバーキルです。

## 試験テクニック
### 時間配分
まず、170分で80問解く必要があります。他の方の体験記にもあるように、悠長にやっていると時間がありません。
そこで、以下のように進めました。

- イテレーションで回答していく。すぐに回答できそうな問題のみ回答し、時間がかかりそうなものは後回しにする。
- 1週目は、1分20秒/問で回答する。（107分）
- 2週目は、飛ばした問題（大体10問程度ぐらいになる）をゆっくり解く。（30分）
- 3週目は、途中でマーク付けた問題を見直す（33分）

1週目は出来るだけ迅速に進めることが肝心です。
長文で時間がかかる問題もありますが、すぐに解ける問題も沢山でますので、1分20秒/問は無理なスピードではないはずです。

ちなみに、本番での実績は以下の通りでした。

- 1週目：77分
- 2週目：26分
- 3週目：9分
- 合計：112分

### 正解を絞る
またPractice Examを受けてみるとわかりますが、出題のクセのようなものがあります。
正解を絞る上でのポイントは下記の通りです。

- 明らかに間違った選択肢を除外する
- 設問後半に重要視するポイントが書いてあるのでこれをおさえる（cost-efficiencyや、durability、elasticityなど）

#### 明らかに間違った選択肢を除外する
単一選択か多肢選択形式で出題されますが、明らかに違うものをまず除外します。
そうするといくつか候補が残るので、その中からしぼります。
最終的に、どの問題も概ね「一番それっぽい選択肢の二択」問題になります。

#### 設問後半に重要視するポイントが書いてあるのでこれをおさえる
まず、どの程度のトラフィックが発生しうるか、ユーザ数・アクセス頻度など、背景となる情報がちゃんと書いてあります。データの機密性が重要であれば、どのような性質のデータでどの程度重要なのか、書いてあります。
これを踏まえて、コストなのか、データ完全性なのか、高可用性なのか、重要視するポイントが必ず書いてありますので、その通りに答えます。

### 英語で受験する
なお今回、日本語で試験を受けましたがひどい文章でした。フォントも見ずらいし…
英語で受けたほうが良いでしょう。


# おわりに
結構大変な試験でしたが、トライしてみて良かったと思います。
特に今回、資料を読みつつ手を動かし、動かなければトラブルシューティングし、という形で学習を進めたため、かなり活きた知識が身に着いたと思います。

たとえばKMSやEBS/S3のServer Side Encryption、Datapipeline、Directory Serviceなどはこれまできちんと使ったことがありませんでしたが、今では自信を持って「使える」ということが出来ます。
また、Identity FederationやSSOはさまざまなバリエーションがありますが、機能としてはToken Vending MachineからCognito、Custom Identity Brokerまで、方式としてはSAML2.0やOpenIdConnectを利用した連携パターンなど、実際に実装できるまでの知識が身に着きました。
この試験でやった範囲の内容は、実務において適用し統合できる、と自信を持って言うことができます。

試験対策だけに終始していた場合、より短時間で合格できたでしょうか、活きた知識は身に付かなかったと思うので、やはり正攻法でやってよかったと思います。
それと、ノートは英語でアウトプットしたため、英語のライティングの精度・速度が上がりました。これは思わぬ副産物でした。

# Appendix
## 活用したサイト・サービス
Jayendra's Blog
http://jayendrapatil.com/aws-solution-architect-professional-certification-exam-preparation-guide/

AWS Certified Solutions Architect - Professional Level
https://linuxacademy.com/amazon-web-services/training/course/name/aws-certified-solutions-architect-professional-level

WhizLabs
https://www.whizlabs.com/aws-solutions-architect-professional/

## 勉強した資料
※これらは一部です。実際にはほかにもたくさん読みました。

### 重要なWhitepapers

Amazon Virtual Private Cloud Connectivity Options
https://media.amazonwebservices.com/AWS_Amazon_VPC_Connectivity_Options.pdf

Using Amazon Web Services for Disaster Recovery
https://media.amazonwebservices.com/AWS_Disaster_Recovery.pdf

Securing Data at Rest with Encryption
https://d0.awsstatic.com/whitepapers/aws-securing-data-at-rest-with-encryption.pdf

AWS Security Best Practices
https://d1.awsstatic.com/whitepapers/Security/AWS_Security_Best_Practices.pdf

AWS Best Practice for DDoS Resiliency
https://d0.awsstatic.com/whitepapers/DDoS_White_Paper_June2015.pdf

Using Amazon Web Services and DFS Replication for Disaster Recovery of File Servers
https://d1.awsstatic.com/whitepapers/implementing-windows-file-server-disaster-recovery.pdf

Managing Multi Tiered Applications with AWS OpsWorks
https://d0.awsstatic.com/whitepapers/managing-multi-tiered-web-applications-with-opsworks.pdf

Performance at Scale with Amazon ElastiCache
https://d0.awsstatic.com/whitepapers/performance-at-scale-with-amazon-elasticache.pdf


### Black Beltシリーズほか

AWS クラウドサービス活用資料集
https://aws.amazon.com/jp/aws-jp-introduction/

AWS Key Management Service Best Practices
https://d1.awsstatic.com/whitepapers/aws-kms-best-practices.pdf

AWS Black Belt Online Seminar 2016 AWS Key Management Service
https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-aws-key-management-service

AWS Black Belt Tech シリーズ 2015 - AWS Cloud HSM & AWS Key Management Service
https://www.slideshare.net/AmazonWebServicesJapan/20150729-aws-blackbeltcloudhsmkmsfix

AWS初心者向けWebinar AWS上でのDDoS対策
https://www.slideshare.net/AmazonWebServicesJapan/awswebinar-awsddos


## 他の合格者の方々の体験記
[AWS 認定 Professional level を大体一ヶ月で取った話](https://qiita.com/yutaChaos/items/081ac5b067856206a2a3)
[AWS認定ソリューションアーキテクト-プロフェッショナルに合格するためにやったことまとめ](https://qiita.com/ta-hoshi/items/68c983e5d44db73508f2)
[AWS 認定ソリューションアーキテクト – プロフェッショナル 合格までに勉強したこと](https://qiita.com/sugiyasu-qr/items/a31bc6f97b06d0996fd5)
[AWS認定ソリューションアーキテクト プロフェッショナル合格してみて](https://qiita.com/miyahang55/items/ac66649b68716646c120)
[AWSソリューションアーキテクト プロフェッショナル 合格メモ](https://qiita.com/hassaku_63/items/8e12cfbd4fbc5aa4c49a)
[AWS認定ソリューションアーキテクト - プロフェッショナルレベルにリベンジして合格した](https://qiita.com/mechamogera/items/b9b658369918290d0889)
[AWS認定 ソリューションアーキテクト プロフェッショナル合格](https://qiita.com/sk565/items/b357196d36e1df3ce0e4)
[ポンコツエンジニアだって頑張ったらAWSソリューションアーキテクトプロフェッショナルに合格できたで！やったこととメモ](https://qiita.com/Yuki_BB3/items/0c82eed8dd6b336caa02)
[AWSソリューションアーキテクト プロフェッショナルに合格した勉強内容と受験の様子](https://qiita.com/migimigi_/items/a76657c12fe68037d822)
[AWSソリューションアーキテクトプロフェッショナルに合格したので勉強法メモ、結構嬉しい、いやかなり嬉しい、超絶嬉しい、嬉しすぎて鼻歌を歌いながら飛び跳ねちゃうね！](https://qiita.com/iron-breaker/items/94a5daf9b3935b77f842)
[AWS ソリューションアーキテクトプロフェッショナル 受けてきました＆勉強法(2017/6版)](https://qiita.com/saitotak/items/804f0fa22a14ea97a12a)