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件を見るカナリアリリース
新バージョンを全ユーザーにいきなり公開せず、まず少数(5〜10%)のユーザーにのみ提供してリスクを最小化するリリース手法。問題があれば即座にロールバックできる。
Lambda
AWSのサーバーレス関数実行サービス(Function as a Service)。コードをアップロードするだけで実行環境を自動管理し、実行時間のみの課金。イベントドリブンな処理やAPIバックエンドに多用される。
サービスメッシュ
マイクロサービス間の通信を管理するインフラ層。サービスディスカバリ・負荷分散・認証・暗号化・可観測性をアプリコードを変更せずにサイドカーパターンで実現する。Istioが代表的。
IaC
Infrastructure as Code(コードとしてのインフラ)の略。インフラ構成をコードで記述・管理することで、自動化・バージョン管理・再現性を実現する考え方。TerraformやAnsibleが代表的ツール。
ConfigMap
Kubernetesで設定値(接続先URLや設定パラメーター等)をコンテナから分離して管理するリソース。環境ごとに異なる設定を外出しにすることで、同一イメージを複数環境で使い回せる。
ELK Stack
Elasticsearch・Logstash・Kibanaの3ツールの組み合わせ。ログの収集(Logstash)・保存・検索(Elasticsearch)・可視化(Kibana)をセットで提供する定番ログ分析基盤。