TerraformとIaCの基本
Terraform(テラフォーム)はHashiCorpが開発したInfrastructure as Code(IaC)ツールです。AWS・GCP・Azureなどのクラウドリソースをコードで宣言的に定義し、自動でプロビジョニング・変更・削除できます。
TerraformとCloudFormationの比較
| 項目 | Terraform | AWS CloudFormation |
|---|---|---|
| マルチクラウド | ○(主要クラウド全対応) | ×(AWSのみ) |
| 言語 | HCL(直感的) | JSON/YAML |
| ステート管理 | tfstateファイル | AWSが管理 |
| コミュニティ | 大(Terraformレジストリ) | AWSコミュニティ |
Terraformの基本コード例(AWS EC2)
provider "aws" {
region = "ap-northeast-1"
}
resource "aws_instance" "web" {
ami = "ami-0123456789"
instance_type = "t3.micro"
tags = {
Name = "WebServer"
}
}
基本コマンド
terraform init # プロバイダをダウンロード
terraform plan # 変更内容を事前確認(ドライラン)
terraform apply # インフラを実際に作成・変更
terraform destroy # リソースを削除
ベストプラクティス
- tfstateをリモート管理:S3+DynamoDB(AWSの場合)でチーム共有
- モジュールで再利用:VPC・セキュリティグループ等を共通化
- variables.tfで変数管理:環境(dev/staging/prod)の切り替えを容易に
- terraform planをCIで実行:Pull Request時に変更差分を自動確認
IaCで「インフラの差分がコードレビューで見える」環境を作ることで、クラウドコストの暴走や設定ミスを大幅に削減できます。





