🗂

Terraform Associate (TA-003)を受験した

に公開

先日、 Terraform Associate (TA-003)に合格したので、勉強内容や受験日当日についてまとめました。

受験前の自身の経験や知識について

自分自身は、バックエンドエンジニアで主にWEB APIの開発やCI/CD周りの構築をメインでおこなっています。Terraform等のIaCツールの利用については、社内のインフラの構築はSREで構築や管理することが多く、あまり利用経験ありませんでした。
ただ、最近のプロジェクトではAmplifyやAWS CDK, AWS SAM等を使用しており、IaC自体の利用経験はあり、概念や思想については一定の理解はありました。

試験範囲

詳細の出題範囲については、下記のリンクに記載されています。
https://developer.hashicorp.com/terraform/tutorials/certification-003/associate-study-003

IaCについての概念やプロバイダー、モジュール、基本的な文法、CLIを使用したリソースの作成といった基本的なものから、手動で作成したモジュールをTerraformで管理する方法や、リソースの論理名を変えるなどの応用的な問題も出題されます。

学習内容

チュートリアルの確認

まずは、公式のAWSとCLIのチュートリアルを2周ほど読み込んで、気になったところは実際にローカルでTerraform CLIを使って確認していきました。
1周目はなかなか頭に入ってこず、結構しんどかったです。。

https://developer.hashicorp.com/terraform/tutorials/aws-get-started
https://developer.hashicorp.com/terraform/tutorials/cli

実際に課題を設定して、Terraformを書いて、リソースを作成してみる

チュートリアルを何回か読み込むと、Terraformの概念や操作になんとくわかるという状態になってくると思います。
次は実際に課題を設定して、実際にリソースを作成していきます。
今回の学習にあたって、Terraformの課題を記載しているサイトを探しましたが、なかなかめぼしいものが見つからなかったので、生成AIを使用して課題を作成しました。
例えば、以下のような課題です。

  1. S3に静的ウェブサイトをホスティングする構成して
  2. ALB経由で2台のEC2にアクセスできる構成で構築して
  3. プライベートサブネットにRDSを置いて、パブリックサブネットのEC2から接続できる構成で構築して
  4. VPCとサブネット(パブリックとプライベートを一つずつ)を定義したローカルモジュールを作成して、それを使用してVPCとサブネットを構築して

自分はVPCから構築した経験がなかったので、まずはAWSコンソールから構築して、その後にTerraformを使用して構築するという手順で理解を深めていきました。
若干時間はかかってしまいますが、最初にコンソールから構築することで各AWSサービスの設定項目とTerraformの定義の関連がイメージしやすく、記憶に残りやすいと思いました。

あまりAWSや他のパブリッククラウドを利用したことがないという方は、一度パブリッククラウドのコンソールからいろいろなリソースを作成してみるのをおすすめします。

試験対策

Terraformの試験対策は、以下の教材を利用しました。
https://www.udemy.com/course/terraform-associate-practice-exam/

全6回分あります。

最初に一通り解いて、その後に間違ったところとスキップした問題を時間を空けて2回ほど復習しました。
試験日当日でも述べますが、体感として7割ほど同じような問題が出たので、↑の教材を一通り理解しておけば、試験対策として十分だと思います。

試験日当日

事前準備、注意事項

自宅(オンライン)で受験しました。
本人確認のため、試験申し込みで使用した名前が書かれている身分証を提示する必要があります。
自分は申し込み時にローマ字で名前を記載したので、パスポートを提示しました。
また、受験前には部屋の中を試験管にカメラで見せて、周りに人がいないことや、デスクの周りや下に不要なものがないことを確認してもらう必要があります。
大道芸人のごとくPCを振り回して部屋の中を確認してもらいました。

受験中

問題の割合としては、簡単問題が3割、問題文を読めばわかる問題が5割、確信はないけど多分合ってるんだろうなというのが1割、自信がないのが1割りという所感でした。
最終的に20分ほど時間を余して、試験完了しました。
Finishを押すと、アンケート画面があるので、回答してブラウザを閉じました。

受験後

アンケートを答えると、すぐに結果が表示されます。
Passとあり、合格していました。
受験後12時間ほどで正式なレポートが見れるようになります。
スコアは発表されず、カテゴリごとの習熟度が3段階(Intense Study, Review Needed, Meets Expectations)で見れます。
今回は全9カテゴリのうち、6カテゴリがMeets Expectationsで、残りの3カテゴリがReview Neededでした。
(スコア教えてください🙇)

まとめ

今回Terraformの学習にあたって、実際に手を動かして色々な構成でリソースを構築したり、同じ構成でもモジュールを使ってみるなどして、手を動かしながら色々と試行錯誤した経験がプラスになったと思いました。

Terraformの難しさは、柔軟なディレクトリ構成やモジュールを活用した分割にあると思うので、色々な設計ガイドを読むなどして、いざ業務で使う日が来た時のためにしっかり準備をしておこうと思います!

最後まで読んでいただきありがとうございました。

Discussion