AWS認定DevOpsエンジニア - プロフェッショナル 受験レポート

2018年9月27日に [AWS認定DevOpsエンジニア - プロフェッショナル](https://aws.amazon.com/jp/certification/certified-devops-engineer-professional/) を受験し無事合格しました。これから受験される方向けに試験の振り返りと勉強方法などについてまとめたいと思います。

\* プロフェッショナル認定は[2019年2月に試験内容が更新](https://aws.amazon.com/jp/about-aws/whats-new/2019/02/updated-professional-level-aws-certification-exams/)されています。本記事は試験内容が更新される前のバージョンのレポートです。

# AWS認定取得状況
1. ソリューションアーキテクト - アソシエイト (2016年3月19日)
2. ソリューションアーキテクト - プロフェッショナル (2017年6月1日)
3. デベロッパー - アソシエイト (2018年2月2日)
4. クラウドプラクティショナー (2018年9月14日)
5. SysOpsアドミニストレーター - アソシエイト (2018年9月15日)
6. **DevOpsエンジニア - プロフェッショナル (2018年9月29日)**

# 試験結果
総合成績は77%でした。以下は分野別の成績です。

```
1.0  Continuous Delivery and Process Automation: 63%
2.0  Monitoring, Metrics, and Logging: 87%
3.0  Security, Governance, and Validation: 100%
4.0  High Availability and Elasticity: 100%
```

# 試験の感想
全80問、制限時間170分です。大体140分程度で解き終わって、残り30分を見直しに充てました。
NDAの関係上細かいことは書けませんが、サンプル問題のように、4〜5行の問題文でユースケースと優先すべき要件（コスト効率や耐障害性など）が示されて、それにベストマッチするソリューションを短時間で選ぶ能力が求められると思います。
一方で、例えばCloudFormationの場合、cnf-initやテンプレートでの待機条件の作成、カスタムリソースなど、サービス仕様に関する深い理解も必要です。
また、Simple Work FlowやData Pipelineなど、最近のAWS界隈で話に挙がることは少ないサービスについても復習しておくのがベターかもしれません。

# 勉強方法
模擬試験を主体とした方法で勉強しました。業務で中々触れる機会が無い＆頻出と言われているOpsWorksやElastic Beanstalkの学習に結果的に時間が掛かりました。CloudFormationについては普段業務で良く使っているのですが、Lambdaを使ったカスタムリソースなど、業務では使わない機能を色々と学ぶことが出来ました。

### AWS公式サンプル問題 (全10問)
https://d1.awsstatic.com/training-and-certification/docs/AWS_certified_DevOps_Engineer_Professional_SampleExam.pdf

無料。2018年10月6日時点では英語のみ。
Googleで検索すると諸氏が日本語訳や回答例を記載してくれています。ただし、最初は回答例を見ずに解くことをオススメします（理由は後述）。

### AWS公式模擬試験 (全20問)
https://www.aws.training/account/logonoptions

3,240円。日本語。AWS認定ポータルにログイン後、PSI試験の画面から申し込みできます。
自宅からブラウザ上で受験できます。有料ですが本番で類似の問題が出ていたので是非やっておいた方が良いです。
また、2018年2月頃からAWS試験の提供業者がKryterionからPSIに変わったのですが、それに伴って本番試験の画面の作りも変わりました。模擬試験の画面の作りは本番とほぼ同様なので、操作に慣れる意味でもオススメです。

### Udemy模擬試験 (全80問)
https://www.udemy.com/aws-certified-devops-engineer-professional-practice-test/learn/v4/overview

1,400円。英語のみ。正規料金は12,000円らしいですが頻繁にセールをやっています。
[Udemy](https://www.udemy.com/) と [Linux Academy](https://linuxacademy.com/) でDevOps Proの模擬試験を検索してみて、評判が良かったこちらを購入してみました。
各問題の解説がしっかり書かれていますし、内容的に悪くありませんでしたが、ごく一部の問題についてAWSサービスのアップデートに追従できていないように見受けられたため、その辺りは注意が必要だと感じました（DynamoDBの [グローバルテーブル](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/GlobalTables.html) など）。
全文英語ですが、そもそもAWSやITの用語の大半が英語由来ですし、難しい単語もそんなに無かったので、意外とすんなり取り組めました。

## AWS公式サンプル問題＆模擬試験の使い方
AWS公式のサンプル問題及び模擬試験は **学習教材** として使うのがオススメです。
また、模擬試験を始める前に画像などを貼り付けられる **スクラップブック的なサービス** を使えるようにしておくのがオススメです。ちなみに私は昔はEvernoteやOneNoteを使っていたのですが、最近はDropbox Paperを使っています。

### 基本的な進め方
1. 問題のキャプチャを取ってスクラップブックに貼り付ける。
2. 何も見ずに問題を解く。あとで見返せるように回答を控えておく。
3. 全ての問題を解くと合否と分野別の正解率が出るので控えておく。
4. 1問ずつ見返していき、良く分かっていない用語や概念などをインターネットで調べる。その際、役に立ちそうな記事があったらスクラップブックに貼り付ける。問題文と選択肢が完全に理解できたら改めて回答してみる。
5. 4を全問題分繰り返す。

4が学習のキモの部分で、問題の長さによりますが1問当たり最短5分〜最長30分程度掛かるので、トータルで6〜7時間は掛かったと思います。1日で全てやり切るのはしんどいので、数日に分けて学習を進めるのが良いと思います。
なお、模擬試験の結果自体はあまり気にする必要は無いと思います。私は一度も模擬試験で合格表示が出たことはありません。今回のDevOps Proも正答率60%程度だったと思います。多分本番より難しく作られてるんじゃ無いでしょうか。

## AWSサービスの調べ方
1. [AWSクラウドサービス活用資料集](https://aws.amazon.com/jp/aws-jp-introduction/) の中の各サービスのBlack Beltに目を通す
2. 足りない場合は各サービスのユーザーガイド/開発者ガイドに目を通す（以下は一例）
    - [AWS CloudFormation ユーザーガイド](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/Welcome.html)
    - [AWS OpsWorks ユーザーガイド](https://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/welcome.html)
    - [AWS Elastic beanstalk 開発者ガイド](https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/Welcome.html)

ソリューションアーキテクト - プロフェッショナルの場合だとAWSサービス以外にも幅広い知識が問われるので、Google先生を駆使して調べまくる必要があり、それがとても大変でした。
一方、DevOps ProではどちらかというとAWSサービスの深い知識を問われる問題が多かったので、基本は上記リソースを参照することが多かったです。

以上、つらつら書きましたが参考になれば幸いです。