테라폼 워크스페이스는 테라폼 프로젝트와 같은데 이는 상태 관리의 단위이다.
https://github.com/tedilabs/fastcampus-devops/blob/main/2-terraform/12-workspace-management/main.tf
GitHub - tedilabs/fastcampus-devops: 🚀 패스트캠퍼스 데브옵스 초격차 코스 자료
🚀 패스트캠퍼스 데브옵스 초격차 코스 자료. Contribute to tedilabs/fastcampus-devops development by creating an account on GitHub.
github.com
위 링크에 있는 코드를 이용해서 워크스페이스 관리 실습을 해보자
terraform workspace 관련 명령어로는 terraform workspace -h를 치면 서브 명령어들이 나온다.
terraform workspace list 명령어는 전체 워크스페이스 목록을 보여준다.
terraform workspace show 명령어는 현재 테라폼 프로젝트에서 설정되어 있는 워크스페이스를 보여준다.
terraform workspace new [워크스페이스 이름] 명령어는 새로운 워크스페이스를 생성한다. 워크스페이스를 새로 생성하면 자동으로 새 워크스페이스로 현재 프로젝트 설정이 바뀐다.
terraform workspace select [워크스페이스 이름] 명령어는 프로젝트의 워크스페이스를 선택할 수 있다.
워크스페이스를 여러 개 생성하면 상태도 여러 개가 되어서 .tfstate.d 파일이 생성된다.
terraform workspace delete [워크스페이스 이름] 명령어는 워크스페이스를 제거할 수 있다.
이제 dev.tfvars, prod.tfvars, staging.tfvars 파일을 만들어보자
그리고 dev, prod, staging 워크스페이스를 생성한다.
dev 워크스페이스를 선택하고 terraform apply -var-file=dev.tfvars 명령어로 dev.tfvars파일에 있는 변수를 사용하도록 한다.
그러면 새로 리소스가 생성된 걸 볼 수 있다.
다시 staging 워크스페이스를 선택하고 terraform apply -var-file=staging.tfvars 명령어를 입력해보자
그럼 dev에 해당하는 리소스는 그대로있고 staging 리소스가 새로 추가된다.
마찬가지로 prod도 똑같이 진행하면 prod에 해당하는 네트워크 리소스들을 생성할 수 있다.
주의사항으로는 테라폼 클라우드 remote backend에서는 workspace 동작이 조금 다르게 동작하므로 테라폼 공식문서를 봐야한다.
'AWS > Part 4. Ch02 테라폼을 이용한 인프라 관리' 카테고리의 다른 글
CH02_16. 테라폼 terraform_remote_state 데이터소스 활용 (0) | 2022.06.04 |
---|---|
CH02_15. 테라폼 모듈 작성 방법 (0) | 2022.06.04 |
CH02_12. 테라폼 리소스 강제 교체하기 (taint & untaint) (0) | 2022.06.03 |
CH02_11. 테라폼 상태 관리 (0) | 2022.06.03 |
CH02_10. 테라폼 상태 저장소 (Backend) (0) | 2022.06.03 |