メインコンテンツまでスキップ

tfファイル

Terraform(.tfファイル)の説明 & 実践チュートリアル

1. Terraformの基本(.tfファイルとは?)

Terraformの設定ファイルは .tf という拡張子を持ち、インフラをコードで記述するためのファイル です。
この .tf ファイルの中に、クラウドのリソース(仮想マシン、ネットワークなど)を定義します。


2. Terraformの基本構成(.tfファイルの中身)

Terraformの .tf ファイルは、大きく以下の3つの要素で構成されます。

要素役割
provider使用するクラウドプロバイダーを指定AWS, Azure, GCPなど
resource実際に作成するインフラリソースEC2, S3, VPC など
variableパラメータを外部から設定可能にするインスタンスタイプ, リージョン

3. Terraformの基本的な.tfファイルの例(AWS EC2の作成)

# Providerの設定(AWSを使用)
provider "aws" {
region = "us-east-1"
}

# 変数定義(外部から値を渡せる)
variable "instance_type" {
default = "t2.micro"
}

# EC2インスタンスを作成する
resource "aws_instance" "example" {
ami = "ami-12345678" # Amazon LinuxのAMI ID
instance_type = var.instance_type # 変数を参照

tags = {
Name = "MyTerraformInstance"
}
}

4. Terraformを実際に使う手順(右上で考慮すべきこと)

Terraformを実際に使う際に、以下の点を考慮しましょう。

🟢 右上で考慮すべきこと(Terraformを使うときの重要ポイント)

1. リソースの管理方法
Terraformは「状態」を管理するため、複数人で作業すると競合が発生する可能性がある

  • リモート状態管理(Terraform Cloud / S3+DynamoDB)を使うべき!
    terraform {
    backend "s3" {
    bucket = "my-terraform-state"
    key = "terraform.tfstate"
    region = "us-east-1"
    }
    }

2. セキュリティを考慮(IAMの適切な設定)
Terraform実行者に最小限の権限を付与する(AWS IAMの権限設定)。

{
"Effect": "Allow",
"Action": ["ec2:RunInstances", "ec2:TerminateInstances"],
"Resource": "*"
}

3. コードのモジュール化(使い回せる設計)
例えば、EC2の構築をモジュール化すれば、複数の環境で再利用できる。

module "ec2_instance" {
source = "./modules/ec2"
instance_type = "t2.medium"
}

4. terraform plan を常に実行し、変更を確認

terraform plan

このコマンドを実行すると、何が変更されるのか事前に確認 できる。

5. 運用・デバッグ方法
Terraformのログを有効にしてデバッグをしやすくする

export TF_LOG=DEBUG
terraform apply

5. Terraformの基本チュートリアル

🛠 ステップ1:Terraformのインストール

# Macの場合
brew install terraform

# Ubuntuの場合
sudo apt-get update && sudo apt-get install -y terraform

インストール確認

terraform version

🛠 ステップ2:Terraformプロジェクトの作成

mkdir terraform_project && cd terraform_project
  1. プロバイダー設定(AWS) provider.tf

    provider "aws" {
    region = "us-east-1"
    }
  2. リソース(EC2インスタンス) main.tf

    resource "aws_instance" "my_ec2" {
    ami = "ami-12345678"
    instance_type = "t2.micro"
    }
  3. 変数(再利用性の向上) variables.tf

    variable "instance_type" {
    default = "t2.micro"
    }

🛠 ステップ3:Terraformの実行

terraform init
terraform plan
terraform apply

terraform apply を実行すると、実際にAWSにEC2インスタンスが作成される!
terraform destroy を実行すると、リソースが削除される。


6. まとめ

Terraformはクラウドインフラをコードで管理するツール(.tfファイルを使う)
リモート状態管理・セキュリティ・モジュール化を考慮することが重要
実際にTerraformを使う流れは、initplanapplydestroy

Terraformを活用すれば、AWSやGCPのインフラ構築を手作業なしで自動化 できるので、運用の効率化に役立ちます!