Terraform 작업 공간

Terraform의 작업 공간은 단순히 독립적으로 관리되는 상태 파일입니다. 작업 공간에는 Terraform이 주어진 인프라 컬렉션을 관리하는 데 필요한 모든 것이 포함되어 있으며 별도의 작업 공간은 완전히 별도의 작업 디렉토리처럼 기능합니다. 작업 공간으로 여러 환경을 관리할 수 있습니다.

Terraform 작업 공간이란 무엇입니까?



Terraform 상태를 저장하기 위해 로컬 백엔드를 사용하는 경우 Terraform은 적용된 구성의 상태를 저장하기 위해 terraform.tfstate라는 파일을 생성합니다. 그러나 다른 컨텍스트에 대해 동일한 구성을 사용하려는 시나리오에서는 동일한 구성에 별도의 상태가 필요할 수 있습니다.

Workspaces를 사용하면 동일한 코드 기반을 겹치지 않고 여러 환경에 배포하기를 원할 때 코드에서 아무 것도 변경하지 않고 상태와 인프라를 분리할 수 있습니다. 즉, 작업 공간은 동일한 terraform 구성 파일 집합에 대한 여러 상태 파일을 만드는 데 도움이 됩니다.

각 환경에는 충돌을 피하기 위해 별도의 상태 파일이 필요했습니다. 작업 공간을 사용하면 작업 공간 이름을 상태 파일의 경로 앞에 추가하여 각 작업 공간(환경)이 고유한 상태를 갖도록 할 수 있습니다.



여러 Terraform 작업공간이 작동하는 방식을 더 잘 이해하려면 두 개의 서로 다른 작업공간을 만드십시오.

홈 디렉토리에 폴더를 만들고 작업 디렉토리를 해당 폴더로 변경합니다.

이 폴더는 terraform-EC2-workspace라고 하며 홈 디렉토리에 저장됩니다. 원하는 대로 폴더 이름을 다르게 지정할 수 있습니다. 이 폴더는 Terraform 구성 파일을 저장합니다.



EC2 인스턴스를 시작하기 위한 Terraform 구성 구축



provider.tf 파일은 Terraform이 올바른 클라우드 서비스에 연결할 수 있도록 AWS 공급자를 정의하는 위치입니다.



이제 구성 파일이 참조하는 모든 변수를 포함하는 ~/terraform-EC2-workspace 디렉토리 내에 variable.tf라는 또 다른 파일을 생성합니다.



terraform.tfvars에는 Terraform이 구성 파일 내의 변수 참조를 대체하는 데 사용하는 값이 포함되어 있습니다.**



instance.tf 및 key.tf 파일을 사용하면 변수로 선언된 AMI 및 [인스턴스 유형] 등으로 AWS EC2 인스턴스를 생성할 수 있습니다.



ssh-keygen 명령을 사용하여 키 쌍 생성


dev-terraform.tfvars 및 prod-terraform.tfvars라는 두 개의 새 파일 이름을 만듭니다.
dev-terraform.tfvars 내부에서 ami를 windows ami로 변경하고 서브넷 ID 및 영역도 변경합니다.



prod-terraform.tfvars 내부에서 ami를 ubuntu ami로 변경하고 서브넷 ID 및 영역도 변경합니다.



이제 이 유형을 확인하기 위해 기본 작업 공간에 있습니다.

terraform workspace list





개발 및 프로덕션을 위한 새로운 작업 공간 만들기

terraform workspace new dev
terraform workspace new prod




한 작업 공간에서 다른 작업 공간으로 전환하고 싶을 수도 있습니다. 그렇다면 아래 명령을 실행하십시오.

terraform workspace select dev



이제 우리는 dev 작업 공간에 있습니다. 모든 terraform 명령을 실행하여 EC2 인스턴스를 회전시킵니다.

terraform init --var-file dev-terraform.tfvars




terraform plan --var-file dev-terraform.tfvars




terraform apply --auto-approve --var-file dev-terraform.tfvars






유사하게 작업 공간으로 전환한 후 prov-terraform.tfvars로 이동합니다.







아래와 같이 dev와 prod에 각각 하나씩 두 개의 terraform.tfstate 파일을 생성합니다.

디바이스용







제품용







키 포인트



작업 공간을 사용하면 동일한 terraform 구성 파일로 다른 환경을 배포하도록 설정할 수 있습니다.
여러 고유한 인프라 리소스 집합(예: 여러 환경)을 관리하기 위해 Workspace를 사용할 수 있습니다.
작업 공간은 Terraform 상태를 격리합니다. 환경별로 별도의 상태를 갖는 것이 가장 좋습니다.
작업 공간은 상태 파일의 이름을 바꾸는 것과 기술적으로 동일합니다.
작업 공간은 환경이 격리되고 미러링되도록 합니다.

좋은 웹페이지 즐겨찾기