본문 바로가기!

728x90

Terraform/모듈 및 리팩토링

(3)
[Terraform] Import Block & Module 활용 & 개인적 생각 정리 고민의 시작...  모듈화와 Import의 우선순위 최근 GitLab의 계층적 그룹 구조를 테라폼으로 관리하는 방안을 고민하게 되었습니다.먼저 GitLab Group의 계층적 구조는 상위 그룹과 하위 그룹(Sub Group) 간의 종속 관계를 다루게 됩니다. 예로 아래와 같은 화면은 GitLab의 Group 구조입니다. 처음 고민했던 부분은 Import를 먼저 진행하고 리팩토링할 것인지, 아니면 모듈화된 구조를 먼저 테라폼 코드로 짠 후 Import할 것인지에 대한 부분이었습니다. Import는 이미 생성된 리소스를 테라폼의 상태 파일로 가져오는 과정이지만, Import 이후의 코드화 과정에서 문제가 발생할 가능성이 있었습니다. 특히, 계층형 리소스 구조를 유지하면서도 기존 리소스의 설정을 무너뜨리지 않..
[Terraform] Moved Block을 통한 코드 리팩터링 & Provider alias Terraform 0.13부터 moved 블록을 사용하여 리소스를 안전하게 이동하고 리팩터링할 수 있습니다. 이를 통해 리소스 이름이나 경로를 변경할 때 상태 파일을 안전하게 업데이트할 수 있습니다. Terraform Provider alias는 같은 Provider의 여러 인스턴스를 설정할 수 있도록 합니다. 이를 통해 서로 다른 설정을 가진 여러 Provider를 사용할 수 있습니다.  1. moved Block을 통한 코드 리팩터링moved block은 테라폼 코드에서 리소스의 이름은 변경되지만 이미 테라폼으로 프로비저닝 환경을 그대로 유지하고자 하는 경우 사용합니다. moved Block의 기본 문법moved { from = aws_instance.old_name to = aws_insta..
[테라폼] State & Module 1. terraform.state 의 목적terraform으로 코드로 작성하고 apply시 terraform.tfstae 파일이 생성되며 tfstate파일은 실제 인프라가 프로비저닝되면서 생성된 리소스등의 정보를 기록한 파일이다.terraform 코드를 수정하고 다시 apply하면 작성한 terraform code, tfstate, 실제 인프라의 상태를 비교해서 인프라가 프로비저닝되거나 destroy된다.팀 단위 테라폼 코드 운영시 관리팀 단위에서 테라폼 운영 시 각 팀원이 동일한 테라폼 state 파일 관리 동일한 tfstate 관리를 위한 지원되는 백앤드 : AWS S3, Azure Blob Storage, Google Cloud Storage, Consul, Postgres database 등 (h..

728x90
반응형