🐈

よく使うTerraformコマンド/設定

2023/11/14に公開

概要

Terraformをよく使うことになったので頻繁に利用するコマンドや設定をまとめる。

Terraformとは?

インフラストラクチャの自動化により、あらゆるクラウドまたはデータセンターでリソースをプロビジョニングおよび管理するツール
https://www.terraform.io/

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であることの識別子
google ローカル名 呼び名
project, region 引数 providerに入れる引数。provider側で指定されている。
GitHubで編集を提案

Discussion