본문 바로가기

Terraform

[Terraform] Terraform 프로바이더, 반복문

이번 시간에는 Terraform Provider와 반복문에 대해서 알아보겠습니다

Terraform Provider


모듈에서 사용되는 모든 리소스는 관련 프로바이더의 정의가 필요합니다.

사용자는 프로바이더 정의를 모듈 ( 자식 모듈에서 provider 정의, 부모 모듈에서 provider 정의)

 

 

 

자식 모듈에서 프로바이더 정의

  • 프로바이더 버전과 구성에 민감하거나, 루트 모듈에서 프로바이더 정의 없이 자식 모듈이 독립적인 구조일 때 고려할 방법
  • 모듈에서 사용하는 프로바이더 버전과 구성 상세를 자식 모듈에서 고정하는 방법
  • 동일한 프로바이더가 루트와 자식 양쪽에 또는 서로 다른 자식 모듈에 버전 조건 합의가 안 되면, 오류가 발생하고 모듈에 반복문을 사용할 수 없다는 단점이 있으므로 잘 사용하지 않습니다.

루트 모듈에서 프로바이더 정의

  • 자식 모듈루트 모듈프로바이더 구성에 종속되는 방식이다.
  • 디렉터리 구조로는 분리되어 있지만 테라폼 실행 단계에서 동일 계층으로 해석되므로 프로바이더 버전과 구성은 루트 모듈의 설정이 적용된다.
  • 프로바이더를 모듈 내 리소스와 데이터 소스에 일괄 적용하고, 자식 모듈에 대한 반복문 사용에 자유로운 것이 장점
  • 자식 모듈에 특정 프로바이더 구성의 종속성은 반영할 수 없으므로 자식 모듈을 프로바이더 조건에 대해 기록하고, 자식 모듈을 사용하는 루트 모듈에서 정의하는 프로바이더에 맞게 업데이트

 


 

module 반목문

모듈 또한 리소스에서 반복문을 사용하듯 구성할 수 있습니다.

모듈이라는 리소스 정의 묶음을 원하는 수량으로 프로비저닝할 수 있으므로 모듈 없이 구성하는 것과 대비해 리소스 종속성 관리와 유지 보수에 장점이 있으며 count를 사용한 반복문 사용은 리소스에서의 사용 방식처럼 module 블록 내에 선언 할 수 있습니다.