Ssoon

Chapter (05) State - 워크스페이스 본문

Terraform 101 Study 2기

Chapter (05) State - 워크스페이스

구구달스 2023. 7. 19. 20:40
CloudNet@ 가시다님이 진행하는 Terraform 101 Study 2기
"테라폼으로 시작하는 IaC" (한빛미디어) 도서로 진행!

✅ Workspace

State 를 관리하는 논리적인 가상 공간

▶ 테라폼 구성파일은 동일 - 서로 다른 State 를 갖는대상을 프로비저닝

  • 동일한 구성에서 기존 인프라에 영향을 주지 않으면서 테라폼 프로비저닝 테스트/확인

 

  • 기본 default 로 정의

    • 기본 사용법
terraform [global options] workspace

 

  • 사용 중인 workspace 확인

✔ main.tf

  • terraform int / terraform apply 실행 default workspace 에 테라폼 Resource 생성
resource "aws_instance" "web" {
    ami = "ami-00d253f3826c44195"
    instance_type = "t3.micro"

    tags = {
        Name = "Ssoon"
    }  
}

  • aws console 확인

  • 새로운 workspace 생성
    • terraform workspace new <워크스페이스 이름> 

  • 루트 모듈 디렉터리에 terraform.tfstate.d 디렉터리가 생성 ▶ 하위에 workspace 이름 확인

  • 현재 사용중인 workspace 확인

  • terraform plan 실행 ▶ 새로 생성된 workspace에서는 기존 default workspace에서 관리하는 State와는 독립적 ▶ Resource 다시 생성 정보 출력

  • aws console 확인

  • terraform.state.d 의 workspace이름에  새로운 terraform.tfstate 생성

 

🧿 Plan 과 Apply 단계에서 특정 workspace 의 State 지정

  • default workspace 로 전환

  • 생성한 workspace (ssoon) 의 State 를 지정해 destroy 실행
terraform destroy -state=terraform.tfstate.d/ssoon/terraform.tfstate

workspace 를 삭제

terraform workspace delete <워크스페이스 이름>

 

🧿 다수의 workspce 사용 - 장점

  • 하나의 루트 모듈에서 다른 환경을 위한 resource 를 동일한 구성으로 프로비저닝 관리
  • 기존 프로비저닝 환경에 영향을 주지 않고 변경 사항 실험
  • git 의 branch 전략처럼 동일한 구성에서 서로 다른 resource 결과 관리

🧿 다수의 workspce 사용 - 단점

  • State 가 동일한 저장소에 저장되어  State 접근 권한 관리 불가능
  • 모든 확영이 동일한 resource 를 요구하지 않을 경우 ▶ 구성에 분기 처리가 다수 발생
  • 프로비저닝 대상에 대한 인증 요소 분리 어려움
Comments