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

カイン スー トウエイ
カイン スー トウエイ バックエンドエンジニア

2025.7.28 (更新日 2025.7.30)

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

こんにちは、バックエンドエンジニアのカインです。

普段はAWSのコンソールからリソースを作成していましたが、インフラ担当以外の人にとっては、プロジェクトで使っているリソースや環境の内容が分かりにくく、「知りたい」と思っても担当の人に聞かないと分からない、という状況がよくありました。

でも、いつも同じ担当者がいるとは限らないので、他のメンバーがすぐに把握するのは難しいな…と感じることも。

 

そこで、「将来こういう課題に役立つスキルって何だろう?」と調べていたときにTerraformを発見。
Terraformの知識があれば、インフラの状態をコードで共有できるし、会社の役に立てる場面があるかもしれないと思い、勉強を始めました。

今回は、私が学んだTerraformの概要とその魅力、試験のことまで詳しくお伝えしていきます。

この記事を書いた人
  • profile avatar

    カイン スー トウエイ 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)で作成してみます。

Terraform(IaC)によるAWS IAMユーザの作成

versions.tf
Terraform がどのプロバイダーを使うか(AWS など)、バージョンと、あなたの AWS プロファイル名を書くファイルです。

main.tf
実際に作りたいリソース(今回は IAM ユーザー)を書くファイルです。

terraform init コマンドは、AWSプロバイダーなど必要なものを自動でダウンロードしてくれます。

Terraform(IaC)によるAWS IAMユーザの作成

terraform fmt コマンドは、Terraform のコード(.tfファイル)の見た目をきれいにそろえてくれるコマンドです。読みやすくなります。

terraform validate コマンドは、コードに間違いがないかをチェックしてくれるコマンドです。(例:カッコが足りない、名前が変など)

terraform plan コマンドは、「このコードを使うと AWS に何が起きるか」を見るだけのコマンドです。まだ実行はしません。安心して確認できます。

Terraform(IaC)によるAWS IAMユーザの作成

terraform apply コマンドは、いよいよ本番です!コードどおりに AWSにIAM ユーザーを作ってくれます。

terraform-iam-user という名でIAMユーザーが作成されました。

Terraform(IaC)によるAWS IAMユーザの作成

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

Terraform(IaC)によるAWS IAMユーザの作成

tfstateファイルに含まれる情報

  • 作成されたリソースの一覧

    例:AWSのIAM、EC2インスタンス、S3バケット、VPCなど

  • 各リソースの属性(attributes)

    例:IPアドレス、インスタンスタイプ、タグ、IDなど

AWSのWEB画面(コンソール)で IAM ユーザーを見て、ちゃんと作られているか確認できます。

AWSのWEB画面(コンソール)

以上、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年間の有効期限があり、期限が切れる前に更新(再認定)が必要です。

Next Column
Columnトップへ戻る

「真ん中に『人』がいる
デジタルサービス」をつくりませんか。

お仕事のご相談やお見積もりのご依頼、具体的なご相談は、こちらからお問い合わせください。

でも何から相談して良いかわからない...

無料

よろず相談窓口

「こんなことでも依頼できる?」
 ふわっとした質問・相談大歓迎

予約はこちら 予約ページより、ご都合の良い時間を選んでご予約いただけます。

資料ダウンロード

費用・制作期間など、PIVOTの各サービスの紹介資料を無料でご参照いただけます。