Terraform Associateに無事合格できたので、この資格の取得を目指している人向けに「最短で合格する方法」を考えてみました。
基本情報
公式サイトのリンク
基本情報(2021/4/19時点)
- 資格名:HashiCorp Certified:Terraform Associate
- バージョン:Terraform 0.12以上
- 試験タイプ:オンラインによる複数選択、入力方式(ラボはない)
- 問題数:非公開
- 合格ライン:非公開
- 試験時間:1時間
- 言語:英語のみ
- 試験場所:自宅も可
- 資格期限:2年間
- 値段:$70.50 + tax
- 備考:1度合格したら再受験は不可。Failしたら次の受験まで1週間以上あける必要がある。1年の最大受験可能数は3回。
Terraformはバージョン0.12でSyntaxなどが大幅に変わりました。なので0.12以上で学習するのはそれなりに重要なポイント。試験自体はピアソンなどの受験会場に行く必要はなくて自宅で自分のパソコンで受験ができます(CKAもそうでしたね)。でもこのオンライン受験が最も大きな障壁でした(後述)。
言語は英語のみ。オンラインで監視しているプロクターとのやり取りも英語(チャット)のみです。
値段は$70程度と、一般的なIT資格と比較するとリーズナブル。入門資格でも$300とか取られるご時世ですからね。手軽にチャレンジできる範囲ではないでしょうか。
1度合格したら再受験は不可で1年の最大受験可能数は3回ってのは、恐らく試験問題の流出対策でしょう。
試験の難易度
この試験は受験する人の「これまでのIT業界での経験・バックグラウンド」によって難易度が大きく変わる試験だと感じました。詳しくは後述しますが、できるだけ定量的評価ができるように、私がこれまで取得した資格(と合格した試験)の難易度表に追加してみました。
TOEICは更に人によって難易度が変わると思うので、評価対象から除外しました。
【難易度の感覚】
CCIE R&S (ラボ) |
CISSP |
VCIX-NV |
CCIE R&S (筆記) |
CCIE SP (筆記) |
VCP-DCV |
CCNP Route |
Certified Kubernetes Administrator |
VCP-NV |
CCNP-Switch |
AWS Solution Architect |
Terraform Associate |
ITIL Foundation |
VCP-DCM |
CJP |
CCNA |
Python基礎試験 |
ITIL Foundationより少し難しくて、AWS Solution Architectよりは少し簡単だった、って感覚です。
私のTerraform Associateの学習時間
15時間くらい
この記事ではこの「15時間」をどのように配分したかも詳細に紹介します。
勉強方法を紹介する前に
このあと具体的な勉強方法を紹介するのですが、その前に、、、まずはこちらを読んでください。
個人的には以下のいずれに該当していなければ、この資格は受験しない方がいいかと感じています。
クラウド周りの知識をそれなりに抑えている人
terraformはIaC(Infrastructure as Code)を主眼とした製品です。つまり「仮想的なインフラの構築を自動化するツール」と考えていただければよろしいかと。
仮想的なインフラ=クラウドリソースが主体です。AWSのEC2とかセキュリティグループとか、Azure/GCPのそれとかです。
当然、試験でもバンバン上記のような用語が出てきます。「このterraformのコードだと、EC2かELBかセキュリティグループがどの順序で生成される?」みたいな質問です。
これらの知識がある人だと、すんなり意味&イメージがつくでしょう。一方、この手のクラウド周りの知識が乏しい場合は、まずはクラウド周りの知識を付ける必要があります。
そもそもterraformの製品特性上、クラウド知識を持っていることが前提とも言えるのですが、これが一般的なIT資格とは違って「難易度を語るのが難しい」理由でもあります。
CCNAとかCCIEはネットワークに特化した資格なので、ネットワークの知識さえあればなんとかなるわけです。Python試験はPythonの記述さえ知っていればなんとかなる。
でもterraformはそもそも色んな周りの技術との組み合わせが必須な特性を持っているので、単に「terraformのコマンドさえ知っていればなんとかなる」わけじゃないという事を理解しておく必要があります。
自分が受験した感覚としては、最低限以下の技術分野の基本的な内容を理解しておく必要があると感じました。
- クラウド周り(vCenter/AWS/GCP/Azure/IBM Cloud)
- Configuration Automation周り(Ansible/Puppet/Chefなど)
- リポジトリ周り(Gitさえ抑えておいたらいいかと)
- ネットワーク(CIDRとかセグメントとか)
- セキュリティ(Data at restとか)
実際に以下のようなHashiCorpの製品じゃない用語もバンバン出てきました(これは試験要項にも書いてるから、私が書いてもいいはず・・・)
- Security Group
- S3
- Dynamo DB
- BitBucket
- Repository
- Instances
- EC2
- vCenter
- EIP
- Data Store
「え?じゃあ全ての分野を網羅していないといけないの?」と身構える必要はなく、あくまでも上記みたいな用語の意味を理解していたら大丈夫なレベル(が殆ど)なのですが、全く理解できない場合は「そもそも質問の意図がちんぷんかんぷん」となります。
まぁ、上記の用語を初めて聞いた方はterraformを使う機会もないでしょうし、それならもっと別の価値ある資格を目指したほうが良いと思います。
英語が全く出来ない方
少しでもできたら大丈夫ですが、全く英語が出来なければ厳しいです。
2021/4/19時点では、試験自体が英語のみになっています。で、試験ではかなり英語の意味的ないやらしい問題が出てきました。
例えばTrue/Falseの問題で「これは明らかにTrueだろ!」と思ったのに注意深く文章を読んだら「absolutely…」とかが出てきて「絶対必ずしもって言われると・・・」って場合とか。
その辺の勘所は日本語の試験だと慣れてる人も多いかと思いますが、英語だと時間がかかるって人もいるかと思います。
もう一つ理由があります。それは「試験管(プロクター)もサポートも英語で話す必要がある」って事です。私のケースではこれにめちゃめちゃ苦労しました。
まず、プロクターとのやり取りは英語でのチャットになります。自宅ですから、オンラインですから。身分証明書を見せるときも、部屋の状態を見せるときも、身分証明書を後ろに置いたかの確認とかも全て英語です。「部屋のこの部分をもう少しカメラを引いて見せてくれ」とか「これで大丈夫か?」とかのやり取りも英語です。
これが普通の状態だったら「別にどれだけ時間かかってもいいから余裕持ってやり取りしよう」とできるのですが、今回は試験前・試験中です。頭の中はterraformでいっぱいで、試験に集中したいのに、まずはプロクターとの英語のやり取りがあるのです。
人によっては集中力が切れてテスト時のコンディションに影響するでしょう。
でも、これがこの話の終わりではありません。
今回の試験で、私の最も大きな敵は、試験内容でもプロクターとのやり取りでもなく「試験環境のサポート」でした。
具体的に言うと、試験アプリが何度も落ちました。で、障害があった時は、アプリ関係については試験を運営しているPSIという組織に連絡する必要があるのです(terraformはPSIに運営を委託してるっぽい。ピアソンみたいな組織)。
で、連絡方法は「チャット」か「電話」の2択なのですが、私のケースではチャットで30分以上連絡しても応答がありませんでした。ノーレスです。試験中にアプリが何度も落ちたという「もう試験時間がなくなってるのか!?今度もアプリが落ちたらどうしよう!?」とか、もう試験の集中力ゼロ状態なのに、サポートがノーレスなのです。プロクターともコンタクトがとれません。
試験会場で試験していたら、そこの試験官に事情を説明できるのですが、、自宅です。自分を助けてくれる人は物理的には誰もいません。
なので「電話」をすることになるのですが、唯一日本から連絡できる手段は、アプリに表示されている国際電話の番号だけです。ご丁寧に「国際電話でも電話料金はあなた持ちです」と記載されています。
既に試験開始から時間が経っています。このまま料金だけかかって終わってしまうのか?最悪日程の再調整をお願いしないと。。という状況です。完全に追い詰められています。
やむを得ない状態です。国際電話でも連絡するしかありません。
国際電話で電話します。「今担当者が混み合ってるからしばらくお待ち下さい」と英語でのメッセージが流れます。
ふざけんな。
でも他に手段がない追い詰められている状態なので、しばらく待ちます。その間に複数のノートパソコンを持ってきて自分なりのトラシューをします。やはりチャットでもサポートにもプロクターにも繋がりません。前日のアプリの環境チェックは問題なかったのに。
15分経ちます。20分経ちます。まだ同じ「今担当者が混み合ってるからしばらくお待ち下さい」メッセージが繰り返されます。本来だったら試験が終わってる時間が経過しました。
何?terraformじゃなくて英語でのトラシューの能力を試されてるの?
30分くらい経ってついにサポートに繋がりました。なんか英語の発音がアメリカ人・イギリス人とは違う人が出てきました。
そんな時でもめげずに
あのね、今ね、テストの真っ最中だったんだけど、おたくの試験アプリが何度も落ちるのよ。でね、チャットに何度も何度もテキスト送ったけど全くのノーレスなの。でね、仕方ないからあなたに電話してるの。日本から国際電話でだよ。国際電話で、お金すごくかかってるの。わかる?こっちが金と時間をムダにかけてるの。なのに30分も待たされたの。こっちの気持わかる?はっきり言ってめっちゃイライラしているしこのサポートには失望したけど、最短でテストを再開できる状態にしろ。当然俺もできることはするから。
ってことを英語でまくしたてます。「現在の状態(困ってること)」・「相手に対する期待」・「優先度」を明確に、端的に伝えるのです。そうすると向こうも焦って手際よくなんか直してくれました(その辺は守秘義務的に割愛しますが、私は基本的に悪くはなかった)。
上記を試験の真っ最中にやる必要がありました。
全部英語でしたが、そんなことは関係なく、集中力は完全に飛びました。コンディションは最悪でした。
合格したから良かったものの、これでFailだったら当分は寝込んでいたと思います。
まぁ、私のケースは非常にレアなケースだと思います(と信じたい)のですが、最悪は上記みたいな対応をしないといけないのです。日本語に対応している試験との大きな違いですね。
これは愚痴ではありません(愚痴だけど)。最悪は自分も同じような対応が必要になると思って試験に挑んだほうが良いです。
(ようやく)勉強方法について
さて、上記の内容で回れ右しなかった方、いよいよ勉強方法について説明します。
ざっくり言うと、以下の流れで勉強しました。これまでのIT資格と基本的には同じです。
- (2時間)試験範囲を確認する
- (10時間)Udemyで試験対策動画を見て学習
- (3時間)Udemyの試験対策問題&250 questionをマスター
シンプルですがどれも重要な工程です。上から進めていきます。
(2時間)試験範囲を確認する
CCIEとかの試験対策でも書きましたが、最も重要な工程です。
試験を効率的に合格するためには「試験でどんな知識が問われるか」を把握している必要があります。逆に言うと、それ以外の知識を付けても意味がありません。そんな時間があるのなら、試験範囲の知識の深堀りをするべきでしょう。
幸いにもTerraform Certificationの場合はHashiCorpがかなり具体的に試験範囲を明記しています。
この時点では「Moduleとはなに?」とか「Providerって?」とかを全て知っている必要はありません。安心してください。それは次の工程で学ぶので。
重要なのは「現時点の自分が欠けている知識」を理解することです。全体の50%なのか?10%なのか?90%なのか?
ちなみに私は、恥ずかしながら全体の30%くらいしか理解できていないと感じました。でも大丈夫です。具体的な知識は次の工程で得るので。
恐らく受験を想定している人で「全て知ってる」って人は極めて少ないかと。何故なら試験範囲にはそれなりにマニアックな内容も入っているからです。例えばTerraform CloudとかEnterpriseとか、個人で自動化スクリプト作ってる人とかは触れたことないでしょうし、HashiCorpが想定するIaCの回答とかは勉強してみないと感覚はつかめないと思います。
まずは「出題範囲に目を通して必要とされている情報を感覚的に理解する」ことに意識してください。
ふーん、こんな範囲の内容を理解する必要があるのね
と感覚的に理解できたら次の工程に進みます。
(10時間)Udemyで試験対策動画を見て学習
Terraformは製品の特性上「体型だって学習できるネタ」は英語がほとんどです。日本語でterraformを解説しているサイトも有るのですが、それらの殆どが断片的な情報です。
なので、個人的には以下のUdemyの試験対策動画を購入することをオススメします。
理由は以下の通り。
良い点:
Terraform Certificate「専用」の資格対策動画
terraformそのものの解説ではなく、資格自体に対する対策動画です。なので、基本的に出題範囲を網羅した、効率の良い勉強の流れです。
実際に私は「全て」見ました。そして実際に受験して、この動画コンテンツが出題範囲に合っていると感じました。
手を動かしながら学べる
試験範囲にはコマンドの利用方法やパラメータなども出題されます。この手の内容は実際に手を動かしてみないと理解を深めることが困難。
当動画では、実際にコマンドを入力して、実際にterraformの動きが確認できる。講師が実際にCLI画面で何度も何度も内容を解説してくれるので、理解しやすい。
学習環境の準備もかなり丁寧に解説してくれる
terraformを資格対策の観点で考えた場合、最低でも以下の環境の準備が望ましい。
- ローカルのterraform
- AWSなどのパブリッククラウド(リソースプロビジョンテスト用)
- gitなどのリポジトリ(チームコラボレーション対策用)
- Terraform Cloud(Terraform Cloud内容対策用)
これらを全て「ステップバイステップ」で解説してくれます。AWSのアカウント作成方法とかは「これを押すとAWSからメールが来て、このリンクをクリックしてアカウントの認証ができるよ」とか「はじめは無料時間があるからそのクレジットを使って学習したら良い。それぞれのセクションの学習が終わったらterraform destroyで環境消したことを確認するべき。そうしないと金かかるから」とかも丁寧に解説してくれます。
Terraform Cloudも「フリーだとここまでしかできないけど、期間限定でトライアルできるから、Sentinelとかも試すべし」とか、試験範囲の内容を可能な限り無料で効率的に学習する方法も解説してくれます。全て動画に含まれているので、何度も見直すことが可能。
模擬試験も充実している
最後には本番に向けた模擬試験も含まれています。当然ながら全く同じ問題ではないのですが、かなり試験に即した内容だと感じました。
動画中の解説メモ・コードをダウンロードできる
非常に大きい。
解説メモが手元にあれば、あとは好きな時間に何度も目を通すことができる。
更にコードをコピペできるので、解説中は解説に集中して、その後にコードを自分の環境で何度も試してコードの内容を再確認できる。
人によっては課題となる点
英語での学習になる
全て英語です。しかも恐らくインドの講師です。
個人的にはゆっくりとした聞きやすい英語だと思いましたが、人によっては難しく感じるかもしれません。
英語での勉強自体に抵抗がある方は、別の勉強方法を採用したほうが良いでしょう。勉強方法の押しつけで学習自体が嫌になったら元も子もありません。
ただ、試験自体が英語なので、早めに英語の問題などに触れたほうが良いと思います。
具体的な勉強方法
では、当解説動画を使用した具体的な勉強方法を説明します。
基本的に上から順番に学習していく
このコースは「上から順番に学習していく」ことを想定して作られています。上から順番に見ていくと、terraformについて体型だって学習することができる。
例えばはじめに「terraformを取り巻く技術、環境」などが説明しており、その後に「実際にterraformをインストールしてとりあえず使ってみる」ことができ「基本的な使い方をもう少し細かく」理解できていきます。
とりあえず「terraform provisioners」までは全部見て手を動かす
ぶっちゃけ、ここまでが最も重要です。試験の75%くらいだと言っても過言じゃない。
それなりにterraformを知っている人でも、まずはここまでは網羅してください。
恐らくこれで5時間程度です。
「terraform provisioners」までは講師と一緒に手を動かします。自分の端末でterraformコマンドを叩きまくって、コードを書きまくります。
ここまでやったら「terraformでできること、使い方」を体に(それなりに)染み込ませることができると思います。
この段階で再度出題範囲を見てみると、自分が一気にレベルアップしたことを確認できるはずです。
それ以降は「出来たら一緒に手を動かす」「時間がなければ見るだけ」
って感じで良いかと。
でも絶対に全ての動画を見て理解してください。はっきり言って、全てが出題範囲だと思ったほうが良いです。細かい内容は後でメモを見直してください。(例えば、terraform applyでの「~」とはなに?とか、バージョン指定の「~>」とはなに?とか)
「terraform provisioners」以降はどちらかというと情報系なので、コマンドをひたすら叩くよりも「情報を頭に入れる」ほうにフォーカスしたほうが良いと感じました。
「Exam Preparation Section」は何度も見る
特に以下の貴重な情報が入っています。
- 実際のテストのアプリイメージ
- テスト前にどんな事を要求されるか(身分証明書の提示方法、部屋の見せ方など)
- どんな部屋だと受験が許されるか
実際にテストで使用するアプリを使って教えてくれます。更に、どれだけ部屋がキレイだったら基本的に大丈夫なはずとか(後ろにポスターがあったらダメだから隠すとか、画像つきで)教えてくれます。
全部見終わったら、再度出題範囲を見直しましょう
すると、全ての出題範囲の内容を「それなりに把握している」はずです。
ここまで行ったら、次の工程に進みます。
(3時間)Udemyの試験対策問題&250 questionをマスター
最後の工程です。以下を行います。
- 上記のUdemy動画の試験対策問題をやりきる
- ここの問題を完全に把握する
特に250 questionsはやりきることを強く推奨します。無料ですし、出題範囲ごとに記載されています。
これらの問題と全く同じ内容がテストに出るわけではないのですが、問題の感覚は身につくと思います。(Functionは自分で作れないのね、とか。terraform importはtfstateには書いてくれるけど、tfファイルには追記してくれないのね、とか)
全部終わったら、再度出題範囲を見直して、漏れがないかを確認します。
ここまでやって、出題範囲を網羅できたと自信を持てたら、受験するレベルに達しているかと。
試験についてのTips
ここまで書いて「じゃあお前は何点だったんだよ!」と言われそうなので・・・
82%でした。
言い訳を言うと、上記の環境障害がなければもう少しいけたかなと思います。また、恐らくあと4問くらいミスってても合格していたのではと考えています。
そんな私からの試験に挑む前のTipsをご紹介します。
部屋はキレイにしておきましょう
公式の「Exam-Taker Handbook」を見ましょう
当日はできるだけ試験以外の不確定要素を排除するのは正解率を上げる観点からも必須です。
ネット環境が安定している場所を選ぶ
必須です。マジで必須です。
自分のパソコンで受験できるか確認
これも必須です。
以下で実際に自分のパソコンがテストを受験できるかの確認ができます。通信性能とかも色々チェックしてくれます。
ただ、だからといって当日絶対に問題が出ないとは限りません。私は上記のチェックを前日までに何度も何度も繰り返しました。日によってNWの帯域にばらつきがないかも不安だったので数日試していました。
で、毎回問題なかったのですが、それでも当日に上記のような恐怖が襲ってきました。
複数の端末を準備しておこう
最後の最後で私が受験をやりきれたのは、複数のパソコンを準備していたからです。
結局最初のパソコンは諦めて、他のパソコンで色々サポートと試行錯誤してなんとか安定する環境を作り上げられたのでした。
なので、バックアッププランを複数準備しておくべきです。
理想はWindows+Chrome環境、ないならMacのCatalinaか
これは公式じゃないのであくまでも経験談と捉えてください。
MacのBig Surは(サポートとやり取りしているカジュアルチャットなどから)問題が多いっぽい。さらに、Safariは対応していない。FireFoxかChromeなのだが、Chromeが安パイっぽい。
一番安定しているのはWindowsっぽいのですが、とある理由で私はWindowsでダメだったので、結局は以下に落ち着きました。
- Mac
- Catalina
- Chrome
5台くらい準備していたノートパソコンのうち1つが上記に当てはまっていたので、なんとか試験をやり通すことが出来た。
クライアントの環境問題はマジで怖いねぇ。テスト直前で変な動作になったらテストどころじゃないからね。今回みたいに。
国際電話のかけ方を把握しておく
自分の電話からの国際電話のかけ方を調べておくことをオススメします。本当に最悪の事態ではサポートに電話しないといけないので・・・
水入りのコップは持ち込み許されたっぽい
無地のコップ&水は持ち込んでいいとプロクターに言われました。確かに自分を落ち着かせるために水の一杯くらい合ったほうが良いかもしれないのですが、テスト中の1時間はトイレに行くことも許されないので、私は敢えて不要と伝えました。
テスト時の画面について
問題数などは非公開なので解説できないのですが、問題は次に進んでも戻ることが出来ました。また「Flag」を付けることが出来て、そのマークした問題に戻ることも可能。紙やペンの持ち込みも出来ないので、そのくらいはさせてもらえないとね。
あと、最後にアンケートがあるのですが、「テストの内容は期待通りだったか」とか「テスト環境は良かったか?」などの質問がありました。本当はテスト環境のサポートがひどかったと書きたかったのですが、、点数発表前だったので、怖くて「良」を付けてしまった(笑)
まとめ
今回は久しぶりに資格対策の解説記事を書いてみました。
研修コース含めても1万円程度ですし、かなりコスパは良い資格だと思います。
CCNAとかCISSPとかに比べてマニアックな資格なので、需要は少ないと思いますが、受験する人にはマジで「テストを安定して行う環境のトラシュー」が一番難しかった事を強調しておきます。
最も大事なのは「いかなる時にも慌てない平常心」です。頑張ってください。
コメント