Tech Blog

プログラミングと技術の情報サイト

TerraformでインフラをコードとしてAWSを管理する

TerraformでインフラをコードとしてAWSを管理する

Terraform(IaC: Infrastructure as Code)を使うとAWSなどのクラウドリソースを コードで定義・管理できます。手動操作によるミスを防ぎ、同じ環境を再現可能にします。

基本的なTerraformファイル構成

project/
├── main.tf          # メインリソース定義
├── variables.tf     # 変数定義
├── outputs.tf       # 出力値定義
└── terraform.tfvars # 変数の値

EC2インスタンスの定義

provider "aws" {
  region = "ap-northeast-1"
}

resource "aws_instance" "web" {
  ami           = "ami-0d52744d6551d851e"
  instance_type = "t3.micro"

  tags = {
    Name = "web-server"
    Env  = var.environment
  }
}

variable "environment" {
  default = "production"
}

基本コマンド

# 初期化(プロバイダーのダウンロード)
terraform init

# 実行計画の確認
terraform plan

# リソースの作成・更新
terraform apply

# リソースの削除
terraform destroy

ステート管理(S3バックエンド)

terraform {
  backend "s3" {
    bucket = "my-terraform-state"
    key    = "production/terraform.tfstate"
    region = "ap-northeast-1"
  }
}

まとめ

Terraformはplan/applyの2ステップで安全にインフラ変更を行えます。 ステートファイルをS3などで共有することでチーム開発にも対応できます。

← 記事一覧に戻る