Terraformとは?クラウドインフラをコードで管理するIaCツールの基本についてのおさらい!

  • 2025年10月1日
  • 2025年10月1日
  • 未分類

インフラエンジニアやクラウドエンジニアの間で広く利用されているのが Terraform です。TerraformはHashiCorp社が開発したInfrastructure as Code(IaC)ツールであり、クラウドリソースの構築や管理をコード化して、自動化・再現性を高めることができます。

従来はAWSコンソールやCLIを使って手作業で設定していたサーバーやネットワークを、Terraformでは宣言的に定義ファイルへ書き込むことで、同じ構成を何度でも再現可能にします。

基本的なファイル構成

Terraformプロジェクトは、通常以下のようなファイル構成を持ちます。GitHubの terraform レポジトリにも main.tf などが含まれていると思います。

  • main.tf
    メインの定義ファイル。AWS EC2やVPC、GCPのStorageなど具体的なリソースを記述します。
  • variables.tf
    パラメータ(リージョンやインスタンスタイプなど)を変数として定義。環境ごとに柔軟に切り替え可能にします。
  • outputs.tf
    Terraform実行後に出力したい値を定義。例えば作成したEC2インスタンスのパブリックIPや、GCPのプロジェクトIDなど。
  • terraform.tfstate
    実際のクラウド環境とコードの状態を保持するファイル。バージョン管理には含めず、S3やGCSなどリモートで管理するのが一般的です。
  • provider.tf(main.tfに含める場合もあり)
    使用するクラウドプロバイダ(AWS、GCP、Azureなど)を指定します。

Terraformの基本処理の流れ

Terraformの実行は大きく以下のステップで進みます。

  1. init(初期化)
    terraform init を実行し、使用するプロバイダやモジュールをダウンロードして環境を初期化します。
  2. plan(実行計画の確認)
    terraform plan を実行すると、コードと現在のクラウド環境との差分が表示されます。
    • 新規作成されるリソース
    • 更新されるリソース
    • 削除されるリソース
      これを確認して、意図しない変更がないかチェックします。
  3. apply(リソースの適用)
    terraform apply を実行すると、実際にクラウドにリソースが構築されます。
  4. destroy(リソースの削除)
    terraform destroy を実行すれば、作成したリソースを一括削除可能です。検証環境をすぐに片付けたいときに便利です。

AWSとGCPでの利用例

Terraformはマルチクラウドに対応しているため、同じ構成管理方法でAWSやGCPを扱えます。

  • AWSの場合
    • providerで aws を指定
    • aws_instanceaws_vpc などのリソースを定義
    • 例:EC2インスタンスを構築し、そのパブリックIPを outputs.tf に出力する
  • GCPの場合
    • providerで google を指定
    • google_storage_bucketgoogle_compute_instance を記述
    • 例:GCSバケットを作成し、オブジェクトアップロード権限をIAMで付与する

いずれも、記述方法は宣言的でシンプルなので、クラウドごとに異なる操作感を抽象化して統一的に管理できます。

まとめ

Terraformはインフラをコード化し、クラウドリソースの管理を効率化する強力なツールです。

  • IaCで再現性と自動化を実現
  • main.tf / variables.tf / outputs.tf などの基本ファイル構成
  • init → plan → apply → destroy の流れ
  • AWSやGCPを問わず利用可能

GitHubリポジトリにコードを置いておけば、チーム開発やCI/CDとも連携しやすくなります。特に、金融や大規模インフラ案件では変更管理の透明性が重要になるため、Terraformの導入は今後も拡大していくでしょう。

最新情報をチェックしよう!