Terraformのbackend機能でterraform.tfstateをS3にアップロードする

Terraformのbackend機能でterraform.tfstateをS3にアップロードする

terraform applyするとtfstateファイルができますが、backend機能でS3にアップロードします。

デフォルトはlocalになっておりプロジェクト直下にファイルが作成されます。S3に変更することによりローカルにtfstateファイルが作成されないようになります。

main.tf

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
    random = {
      source  = "hashicorp/random"
      version = ">= 3.1.0"
    }
  }

  required_version = ">= 1.2.0"

  backend "s3" {
    bucket  = "deploy-bucket19993"
    key     = "terraform.tfstate"
    region  = "ap-northeast-1"
    profile = "default"
  }
}

provider "aws" {
  region = "ap-northeast-1"
}

resource "aws_s3_bucket" "example" {
  for_each = toset(["bucketname1", "bucketname2"])
  bucket = each.key
}
項目 意味
bucket バケット名
key オブジェクトキー
region リージョン
profile プロファイル

初期化し、適用します。

$ terraform init
$ terraform apply

バケット直下にtfstateファイルが作成されました。

Terraformのbackend機能でterraform.tfstateをS3にアップロードする

破棄します。

$ terraform destroy

破棄するとterraform.tfstateファイルが更新されます。

Backend Type: s3 | Terraform | HashiCorp Developer
Terraform can store state remotely in S3 and lock that state with DynamoDB.
Backend Configuration - Configuration Language | Terraform | HashiCorp Developer
Use the `backend` block to control where Terraform stores state. Learn about the available state backends, the backend b...

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました