概要
Terraform について
Terraform とは?
Terraform は環境構築を自動化するツールです。
以下のような特徴を持ちます。
インフラのコード化
コードで記述することで、
- 再利用、再実行が可能
- 履歴管理が可能
になります。このあたりは他の Infrastructure as Code 関連のツールと同様です。
provider "aws" {
access_key = "ACCESS_KEY_HERE"
secret_key = "SECRET_KEY_HERE"
region = "ap-northeast-1"
}
resource "aws_instance" "example" {
ami = "ami-bddaa2bc"
instance_type = "t1.micro"
}
実行計画
DRY Run が可能です。
インフラ自動化関連は、動作確認に時間がかかるため DRY Run のサポートは地味に大事です。
更新箇所の検出
実行計画フェーズがあるおかげで、実行前に変更箇所を確認することが可能です。
リソースのグラフ化
リソースをグラフ化できます。
以下は、実際に Terraform で Heroku のアプリケーションを作成した際のグラフです。
より詳しい情報源
- TerraformでHerokuアプリのセットアップ - SOTA
- HashiCorpの新オーケストレーションツールTerraformを試してみた - Developers.IO
- TERRAFORM VS CLOUDFORMATION – A COMPARISON OF INFRA MANAGEMENT TOOLS