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などで共有することでチーム開発にも対応できます。