IT用語: Terraformとは|インフラをコードで管理するIaCツール
AWSやGCPなどのクラウドリソースをコードで定義・管理するTerraformの仕組みとHCL構文を解説。
Terraformとは
TerraformはHashiCorpが開発したIaC(Infrastructure as Code)ツールで、AWS・GCP・AzureなどのクラウドリソースをHCL(HashiCorp Configuration Language)というコードで定義・管理します。「インフラの構成をGitで管理し、レビュー・バージョン管理できる」ことが最大の価値です。
基本的な書き方
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
tags = {
Name = "WebServer"
}
}
terraform plan で変更内容のプレビュー、terraform apply で実際にリソースを作成します。
stateファイルと冪等性
Terraformは現在のインフラの状態を terraform.tfstate に記録します。次回 apply 時に実際の状態とコードを比較し、差分だけを変更する「冪等性」を保ちます。チーム開発ではstateをS3等のリモートバックエンドに保存します。
関連する用語 (DevOps)
全58件を見るGitOps
Gitをシステムの信頼できる唯一の情報源(Single Source of Truth)として扱う運用手法。インフラやアプリの設定変更をGitのPull Requestで管理し、自動デプロイを行う。ArgoCD・Fluxが普及。
CI/CD
継続的インテグレーション(CI)と継続的デリバリー/デプロイ(CD)の総称。コードをコミットするたびに自動でビルド・テスト・デプロイを行う開発プロセス。GitHub ActionsやJenkins・CircleCIなどのツールで実現する。
Blue-Green Deployment
ゼロダウンタイムデプロイ戦略の一つ。本番環境(Blue)と新バージョン(Green)を並行して稼働させ、トラフィックを切り替えてデプロイする。問題発生時に即座に切り戻せる。
ArgoCD
Kubernetesのための宣言的GitOps継続デリバリーツール。Gitリポジトリ上のマニフェストと実際のK8sクラスタの状態を常に同期させる。変更を検知して自動でデプロイする。
Docker Compose
複数のDockerコンテナを一括定義・実行するツール。docker-compose.ymlに各サービスの設定を記述し、docker compose upコマンドで全コンテナを起動できる。ローカル開発環境の構築に特に有用。
SLO
Service Level Objective(サービスレベル目標)の略。システムの可用性・応答時間などの目標値を定量的に設定したもの。SRE文化における運用品質の指標。例:月間稼働率99.9%。