default, dev1, qa 등 워크스페이스마다 서로 다른 .tfstate를 가짐.graph TD
R[코드 디렉터리] --> S1[(state: default)]
R --> S2[(state: dev)]
R --> S3[(state: qa)]
terraform workspace list
terraform workspace new dev
terraform workspace select dev
terraform workspace show
terraform workspace delete dev
terraform {
backend "s3" {
bucket = "my-tfstate-bucket"
key = "project/${terraform.workspace}/app.tfstate"
region = "ap-northeast-2"
encrypt = true
dynamodb_table = "tf-locks"
}
}
워크스페이스마다 서로 다른 키 경로를 사용하여 충돌을 방지
default에서 EC2 생성 → 인스턴스 Adev 워크스페이스로 전환 후 동일 코드 apply → 인스턴스 B (ID/리소스 별개)
terraform.workspace 값을 네이밍/태깅에 반영해 가시성↑