Terraformとは?選ばれる理由と、学びから得た気づき

2025.7.28 (更新日 2025.7.30)

こんにちは、バックエンドエンジニアのカインです。
普段はAWSのコンソールからリソースを作成していましたが、インフラ担当以外の人にとっては、プロジェクトで使っているリソースや環境の内容が分かりにくく、「知りたい」と思っても担当の人に聞かないと分からない、という状況がよくありました。
でも、いつも同じ担当者がいるとは限らないので、他のメンバーがすぐに把握するのは難しいな…と感じることも。
そこで、「将来こういう課題に役立つスキルって何だろう?」と調べていたときにTerraformを発見。
Terraformの知識があれば、インフラの状態をコードで共有できるし、会社の役に立てる場面があるかもしれないと思い、勉強を始めました。
今回は、私が学んだTerraformの概要とその魅力、試験のことまで詳しくお伝えしていきます。
-
カイン スー トウエイ Khaing Su Thwel
バックエンドエンジニア
案件管理システムの構築において、要件定義から進行管理、テスト、リリース対応まで幅広く担当。社内の情シスチームとも密に連携し、スムーズな開発体制を支える。Kubernetes(K8s)やCloud Native Technologiesに関心を持ち、技術領域の探求を日々続けている。
もくじ
Terraformの基本と魅力
① Terraformとは?
Terraform は Infrastructure as Code(IaC) のツールであり、インフラ構成をコードとして記述・管理できます。通常は コンソールで手動操作 してインフラを構築しますが、Terraform を使えば コードを記述することでインフラの作成・変更・管理 を行うことが可能になります。
たとえば、IAMユーザーを100人分作成したい場合、コンソールで一人ずつ手動で作成するのは非常に時間がかかり、ミスが発生する可能性も高くなります。一方、Terraformを使えばコードを実行するだけで短時間で作成が完了するため、効率的かつ正確に管理できます。
② Terraformのメリット
1. チームでの運用
状態ファイル(Terraform State)をチームみんなで使えるため、インフラの設定をがバラバラにならずに、同じルールでそろえて管理できるようになります。さらに、ロック機能で同時に作業するのを防げるため、他の人と作業がぶつからずに安心してチームで使えます。
2. マルチクラウド対応
TerraformはAWSやAzure、GCPなどいろいろなクラウドに対応しているため、ひとつのツールでまとめて管理できて、クラウドごとにやり方を変えずにすみます。そのおかげで、マルチクラウド環境でもスムーズに運用可能です。
3. 構成の再利用性
Terraformの設定ファイルはバージョン管理できるから、いつでも同じ内容で環境を作り直すことができます。そのため、何度も使いまわせたり、同じ環境を容易に再現でき、管理や修正がしやすくなります。
4. コードレビューが可能
インフラ構成もコードレビューできることで、変更内容を事前に確認・共有でき、ミスの防止やナレッジの蓄積につながります。
5. 変更のトラッキング
Terraformの設定はGitなどで管理できるため、誰がいつどんな変更をしたのかがひと目でわかります。そのおかげで、トラブルが起きたときにすぐに原因を見つけたり、前の状態に戻したりしやすくなります。
③ PIVOTでの活用可能性
今のところ、まだ会社全体では使っていませんが、勉強を進める中で「Terraformを使えば、こういう作業ももっと楽にできそうだな」と感じられるようになったので、まずはチームのプロジェクトで使ってみたいと思っています。
Terraformを動かすには?
- Local
- Terraform Cloud
- Remote Backend
などがあります。
個人・検証用途であれば、Local Backendがシンプルで良いですね。
チーム・本番環境では、Terraform Cloud もしくは Remote Backendの使用を推奨します。
比較項目 | Local Backend | Terraform Cloud | Remote Backend (例: S3) |
---|---|---|---|
状態ファイル保存 | ローカルディスク | Terraformのクラウド | S3, GCS, Azure Blob など |
ロック機能 | ❌ なし | ✅ 自動で有効 | ✅ 手動で設定 (例: DynamoDB) |
チーム利用 | ❌ 非推奨 | ✅ 非常に適している | ✅ 適している(要設計) |
実行のホスティング | ローカルマシン | ✅ クラウド上での実行 | ❌ CLIでのローカル実行のみ |
VCS連携 | ❌ なし | ✅ GitHub/GitLab対応 | ❌ なし |
UI操作 | ❌ なし | ✅ Web UIあり | ❌ なし |
セットアップ難度 | ◎ 非常に簡単 | △ アカウント登録など必要 | △ ストレージ設定とIAM設計が必要 |
実装にまつわる基本情報
① Terraformの構成ファイルに使われる言語は?
HCL(HashiCorp Configuration Language)です。
HCLはHashiCorp製ツールで使用されるインフラ構成用のドメイン固有言語(DSL)です。
▼コードの書き方
Terraform公式ドキュメント:AWSプロバイダー
https://registry.terraform.io/providers/hashicorp/aws/latest/docs
② Terraformのファイル拡張子は?
ファイル拡張子は、「.tf」です。
③ 実行フロー(コマンド)は?
基本的に以下の順序でコマンドを実行します。
①terraform init ②terraform fmt ③terraform validate ④terraform plan ⑤terraform apply
例) AWS IAM ユーザをTerraform(IaC)で作成してみます。

versions.tf
Terraform がどのプロバイダーを使うか(AWS など)、バージョンと、あなたの AWS プロファイル名を書くファイルです。
main.tf
実際に作りたいリソース(今回は IAM ユーザー)を書くファイルです。
① terraform init
コマンドは、AWSプロバイダーなど必要なものを自動でダウンロードしてくれます。

② terraform fmt
コマンドは、Terraform のコード(.tf
ファイル)の見た目をきれいにそろえてくれるコマンドです。読みやすくなります。
③ terraform validate
コマンドは、コードに間違いがないかをチェックしてくれるコマンドです。(例:カッコが足りない、名前が変など)
④ terraform plan
コマンドは、「このコードを使うと AWS に何が起きるか」を見るだけのコマンドです。まだ実行はしません。安心して確認できます。

⑤ terraform apply
コマンドは、いよいよ本番です!コードどおりに AWSにIAM ユーザーを作ってくれます。
terraform-iam-user
という名でIAMユーザーが作成されました。

terraform apply
を実行すると、現在のインフラの状態を記録したterraform.tfstate
ファイルが生成されます。

tfstateファイルに含まれる情報
- 作成されたリソースの一覧
例:AWSのIAM、EC2インスタンス、S3バケット、VPCなど
- 各リソースの属性(attributes)
例:IPアドレス、インスタンスタイプ、タグ、IDなど
AWSのWEB画面(コンソール)で IAM ユーザーを見て、ちゃんと作られているか確認できます。

以上、Terraformについての概要でした。
さいごに
PIVOTでは、インフラはAWSで構築するのがスタンダードです。
(一部でAzureを利用することもあります)。
現在、一部の環境ではAWSのサービスCodeBuildでコード化して運用しているものもありますが、多くはまだコンソール画面を使った操作が主流です。
Terraformは、インフラ構成をコードとして記述・管理できるツールで、マルチクラウド対応かつ宣言的な構文を持つツールとして高い人気を誇っています。
実際に、多くの大規模な組織ではTerraformの導入が進んでいます。
こうした背景を踏まえ、私自身もTerraformの重要性を感じ学習をスタート。体系的に知識を深めるため、Terraform認定試験にチャレンジしました。
試験合格後も、引き続きハンズオンで最新情報のキャッチアップを続けています。
将来的にはTerraformを活用したインフラ構築を実現し、PIVOTにおけるスタンダードとして浸透させていきたいと考えています。
<おまけ> Terraform認定試験Q&A
① Terraformの認定試験って?
HashiCorpから提供した試験種類は3つあります。
① Terraform Certified Associate
② Vault Certified Operations Professional
③ Consul Certification Associate
▼詳細は以下のページをご覧ください
HashiCorp公式|認定資格ページ
https://developer.hashicorp.com/certifications
私は「Terraform Associate (003)」を受験し、2025年3月に合格しました。
② 学習時間はどのくらい?
試験は英語のみのため、英語ができる前提でお話します。
(TOEIC600点程度と言われています)
個人差はありますが、Terraformの試験に合格するためには、 100時間以上の学習が必要だといわれています
私の場合、平日夜と土日を使って週に約10時間、合計で約100時間学習しました。
すでに AWS、Azure、Google Cloudなどのクラウドプロバイダーに関する知識がある場合は、100時間程度の学習でも十分に合格を目指せると思います。
ただし、クラウドに関する知識があまりない場合は、100時間以上の学習時間を確保すると、より安心して試験に臨めると思います。
③ 試験形式や注意点は?
試験形式
現在はテストセンターでの受験はできず、自宅からのみ受験が可能で、オンライン形式となります。
試験は、Pearson VUEの「OnVUE」システムを使用し、ライブ監視のもとで実施されます。
事前準備としては、
- WEBカメラ、マイク、安定したインターネット接続
- 静かな部屋、片付いたデスク
- 身分証明書の提示、カメラで部屋を360度映す、などが試験開始前にあります。
注意点
試験中に誰かが部屋に入ると失格になる可能性もあるので、宅配など来客がないようにしておきましょう。
④ 試験結果はいつわかるの?
試験終了直後に、Certiverseシステム上で合否結果が即時表示されます。
Terraform Associate認定資格には、2年間の有効期限があり、期限が切れる前に更新(再認定)が必要です。
「真ん中に『人』がいる
デジタルサービス」をつくりませんか。
お仕事のご相談やお見積もりのご依頼、具体的なご相談は、こちらからお問い合わせください。