본문 바로가기
INFRA/Operation

terraform backend 설정 - local

by BTC_뚜벅이 2022. 12. 22.

ABTCEFG♪  안녕하세요, 여러분!

 

BTC_뚜벅이입니다.

 

지난 시간에 이어 local에 backend 구성하는 방법을 알아볼게요.

backend를 local로 지정하고 동시에 tfstate 파일을 지정하는 것이기에 data 구문으로 간단히 불러오도록 할게요.

 

먼저 테라폼 폴더 구조는 아래와 같습니다.

backend를 local로 설정해주고 path를 ec2는 terraform.tfstate, vpc는 terraform.tfstate2로 지정했습니다.

 

1. ec2

# aws.tf
=
provider "aws" {
  region              = "ap-northeast-2"
  profile             = "<test>" 
  allowed_account_ids = ["<aws_account_id>"] 
}
=

# backend.tf
=
terraform {
  backend "local" {
    path = "../terraform.tfstate"
  }
}
=

# ec2.tf
=
data "aws_instance" "ec2" {
  instance_id = "i-0906122dd1164aec7"
}
=

위 코드에서 profile은 .aws경로에 있는 credentials profile과 맞게 allows_account_ids는 aws console id 입니다.

backend path를 "../terraform.tfstate"로 지정했기 때문에 .terraform/terraform.tfstate에 path가 "../terraform.tfstate"로 지정되어 있습니다.

 

data로 불러온 결과 backend/terraform.tfstate 파일을 확인해보면 아래처럼

"mode": "data", "type": "aws_instance", "name": "ec2"를 확인할 수 있습니다. 

 

 

2. vpc

# aws.tf
=
provider "aws" {
  region              = "ap-northeast-2"
  profile             = "<test>" 
  allowed_account_ids = ["<aws_account_id>"] 
}
=

# backend.tf
=
terraform {
  backend "local" {
    path = "../terraform.tfstate2"
  }
}
=

# ec2.tf
=
data "aws_vpc" "vpc" {
  id         = "vpc-0c9dfb02525fc5af4"
  cidr_block = "172.31.0.0/16"
}
=

backend path를 "../terraform.tfstate2"로 지정했기 때문에 .terraform/terraform.tfstate에 path가 "../terraform.tfstate2"로 지정되어 있습니다.

 

data로 불러온 결과 backend/terraform.tfstate 파일을 확인해보면 아래처럼

"mode": "data", "type": "aws_vpc", "name": "vpc"를 확인할 수 있습니다.

 

backend를 지정하지 않으면 local이 자동으로 지정이 되는데 이 때 terraform.tfstate 파일 하나에 state 정보가 모두 담깁니다.

local에서 작업할 때 리소스별로 tfstate file을 나누어 저장한다면 관리측면에서 효율적일 거 같아요!

'INFRA > Operation' 카테고리의 다른 글

Aztfy 개념 및 사용법 - 2  (0) 2023.01.09
Aztfy 개념 및 사용법  (0) 2023.01.03
Scouter 모니터링  (0) 2022.12.21
terraform backend 설정 - s3  (0) 2022.12.21
wsl2로 terraform VScode 환경 구축하기 (1)  (0) 2022.12.16

댓글