🐈
よく使うTerraformコマンド/設定
概要
Terraformをよく使うことになったので頻繁に利用するコマンドや設定をまとめる。
Terraformとは?
インフラストラクチャの自動化により、あらゆるクラウドまたはデータセンターでリソースをプロビジョニングおよび管理するツール
Github Actions と組み合わせてCI/CDでECSにpushしたりできる。
コマンド
初期化
terraform init
変更の反映
terraform apply
作成したリソースの破棄
terraform destroy
構成のフォーマット
terraform fmt
構成の検証
terraform validate
import 設定済みのあれこれを.tfファイルにする!!!
terraform import
plan 変更差分の確認
terraform plan
.tfファイル
.tfファイルは構成を記述するterraformの核となるファイル
.tf例
terraform {}
provider "aws" {
region = "ap-northeast-1"
}
resource "aws_ecs_cluster" "test" {}
resource "aws_ecs_task_definition" "test" {}
resource "aws_ecs_service" "test" {}
.tfファイルの重要ブロック
ブロック名 | 和名 | 説明 |
---|---|---|
terraform | テラフォームブロック | プロバイダーの定義(ソースレジストリとバージョン)を書く |
provider | プロバイダー | プロバイダーの構成(登録する情報群)を書く。 Terraformに対するプラグイン |
resource | リソース | リソースに登録する情報を書く |
リソース
リソースブロックの例
resource "aws_instance" "web" {
ami = "ami-a1b2c3d4"
instance_type = "t2.micro"
}
構文
例内の単語 | 用語 | 役割 |
---|---|---|
resource | ブロックタイプ | リソースであることの識別子 |
aws_instance | リソースタイプ | リソースの種類 |
web | ローカル名 | 呼び名 |
ami, instance_type | 引数 | リソースに入れる引数 |
プロバイダー
プロバイダーブロックの例
provider "google" {
project = "acme-app"
region = "us-central1"
}
構文
例内の単語 | 用語 | 役割 |
---|---|---|
provider | ブロックタイプ | providerであることの識別子 |
ローカル名 | 呼び名 | |
project, region | 引数 | providerに入れる引数。provider側で指定されている。 |
Discussion