お風呂でTerraform Associate(002)を受験した話

２０２２年８月にTerraformの認定試験であるTerraform Associate(002)をお風呂で受験して無事合格することができたので合格体験記として勉強内容や受験時の様子を記述します。

<img width="300" alt="terraform-associate" src="https://images.credly.com/size/680x680/images/99289602-861e-4929-8277-773e63a2fa6f/image.png">

## 1.はじめに
   - 試験について
     - Terraformに関する知識が問われる認定試験(私が受験したバージョンは002)
     - 回答方式は選択式と一部記述
     - 問題数は57問
     - 合格点は非公開
     - 試験時間は1h
     - 言語は英語のみ
     - 受験費用は＄70.5USD
     - 2022年中に新たなバージョンとなる003が公開予定（サイトは[こちら](https://www.hashicorp.com/certification/terraform-associate-next)）
  - 私のバックグラウンド
     - エンジニア歴11年ほど。AP開発やPJマネジメント寄りの経験が多め。
     - Terraform経験は直近の業務で利用しており、支援で触る＋プライベートで触る程度
  - 受験理由
     - Terraformについて理解が曖昧な部分が多かったため、体系的に学習しておきたかった。
  - なぜお風呂で受験するのか
     - オンライン試験では周囲に電子機器等が置けないなど、制約が幾つかあるがこの辺の制約を片付け無しで負担なくクリアできる。
     - 無料（自宅に限る）
 
## 2.全体を通しての感想
   - 普段業務でTerraformを利用されている方は比較的容易に合格することができそう。
   - 試験で求められるレベルとしては、プロジェクト等で複数人でTerraformによるインフラ管理/運用するための知識＋α（Terraform Cloud/Enterprise等のサービスに関する知識）というところ。
   - 問題文及び回答は英語だが、長文はほとんどなかったため英語ダメダメの私でも大丈夫でした。
   - 回答方式に一部記述があったが、普段Terraform書いている方であれば難しくない問題でした。

## 3.勉強内容
試験に向けて実施したのは以下二つです。
   - Hachicorp LearnサイトのAssociate Tutorial List(サイトは[こちら](https://learn.hashicorp.com/collections/terraform/certification-associate-tutorials))
       - 試験範囲をカバーした公式のラーニングサイトです。そこまでボリュームもなく２、３日で実施できました。
   - UdemyのコンテンツであるHashiCorp Certified: Terraform Associate Practice Exam 2022（サイトは[こちら](https://www.udemy.com/course/terraform-associate-practice-exam/)）
     - 本番の試験と問題の雰囲気が近く非常に役に立ちました。
     - 個人的には本番よりもこちらの模擬問題の方が難易度高かったです。
     - 上記に関連して模擬問題の英文の方が複雑で読み辛かったです。
     - 回答間違えたところの解説から公式doc見て理解を深めていくようにしました。
   - 他の方のブログ(特に参考になったのは[こちら](https://jayendrapatil.com/hashicorp-certified-terraform-associate-learning-path/))
     - 記事はやや古いですが、試験範囲の内容をカバーしているので十分参考になると思います。

業務等でTerraformに慣れている方は上記コンテンツを活用するだけで合格レベルに到達するのではないかなと思います。
但し、上記のコンテンツではLearnサイト含めてそこまで手を動かす感じではないのでTerraform未経験の方はもう少し手を動かして理解を深めておくといいのかなと感じました。
Learnサイトをやってみて動かし足りないと感じた方は候補は限られますが書籍をインプットに手を動かしておくといいと思います。

私の場合は業務で触る前に以下の「実践Terraform　AWSにおけるシステム設計とベストプラクティス」という書籍で学習していました。([こちら](https://nextpublishing.jp/book/10983.html))
2019年の書籍なので書籍どおりに進めて動作するかは不明ですが、しっかり触れるのと後半19章以降についてはAWSというよりはTerraformでインフラ管理/運用していくためのノウハウが記載されているので今改めて読んでも役に立ちました。
<img width="200" alt="zissen-terraform" src="https://nextpublishing.jp/wp-content/uploads/2019/09/N00917.jpg">

### 3-1.学習のポイント
簡単ですが、以下を抑えておくといいなと感じました。
- 基本的なコマンド（init/plan/apply/destroy/state）の動作やコマンドオプションを理解しておく
    - terraform -h で出力される内容や公式docを読んでおくと良いと思います。
- 複数人で開発するためにはstateファイルをどうするか、クラウドインフラを操作するためのシークレット情報はどう持つべきか。
- stateファイルとクラウドインフラのリソースに乖離が出ている時はどうすれば良いか。
    - クラウドインフラに存在するリソースを新たにstateファイルに反映するには？
    - リソースのパラメータに差分がある場合は？
    - 逆にTerraformで管理しているリソースを管理対象外にするには？
    - 乖離が出ている状態でapplyするとどうなるか。
- リソース作成時のcountとfor_eachの用途の違い
- provisionersの用途
- terraform workspaceの用途、コマンドオプション
- Terraform　Cloud,Enterprise各プランの機能差異
- sentinel,vaultとの連動方法、用途
などなど


## 4.試験時の様子
他の方の合格体験記を読んで個人的に試験におけるハードルは試験官との英語での音声会話が求められることでしたが、実際はテキストチャットでの会話のみでした。
仮に試験中にサイトが落ちたり問題が発生した際は音声によるChatや国際電話による会話が必要になるようですが、特に問題がなければ口を開く必要はありませんでした。

試験開始前に準備が幾つかあり、試験開始予約時間の30min前から実施することができて以下の作業を行います。
- PSIの専用アプリのインストール及び起動(以降の作業は専用アプリ上で行います)
- 専用アプリ以外のアプリの起動チェック→専用アプリ以外終了する必要あり。
- 本人確認書類のカメラ撮影→PCに接続したカメラで撮影します。私はパスポートを撮影しました。
- 部屋/自身の身の回り/腕&耳/キーボードをそれぞれ15秒以内に撮影してアップロード
    - もうちょっとあったかも。
    - アップロードしたら次の撮影って感じなのですが、画面遷移したのかが分かりづらかったです。英語の指示をちゃんと読みましょう。
- 試験官による上記の確認、問題があればテキストチャットでの追加指示

ここまで完了すれば試験が開始されます。
試験の内容については全体を通しての感想に書いた通りで、試験終了後にアンケート回答するとそのまま結果が表示されます。
その後、すぐにメールで結果とバッジが通知されました。

<img width="400" alt="zissen-terraform" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727512/c7b1f718-fa55-1fae-4e18-f0a4d0a2b517.png">

記事は以上になります。これから取得することを検討されている方の参考になれば幸いです。
ありがとうございました。