이번 시간에는 Terraform Provider와 반복문에 대해서 알아보겠습니다
Terraform Provider
모듈에서 사용되는 모든 리소스는 관련 프로바이더의 정의가 필요합니다.
사용자는 프로바이더 정의를 모듈 ( 자식 모듈에서 provider 정의, 부모 모듈에서 provider 정의)
자식 모듈에서 프로바이더 정의
- 프로바이더 버전과 구성에 민감하거나, 루트 모듈에서 프로바이더 정의 없이 자식 모듈이 독립적인 구조일 때 고려할 방법
- 모듈에서 사용하는 프로바이더 버전과 구성 상세를 자식 모듈에서 고정하는 방법
- 동일한 프로바이더가 루트와 자식 양쪽에 또는 서로 다른 자식 모듈에 버전 조건 합의가 안 되면, 오류가 발생하고 모듈에 반복문을 사용할 수 없다는 단점이 있으므로 잘 사용하지 않습니다.
루트 모듈에서 프로바이더 정의
- 자식 모듈은 루트 모듈의 프로바이더 구성에 종속되는 방식이다.
- 디렉터리 구조로는 분리되어 있지만 테라폼 실행 단계에서 동일 계층으로 해석되므로 프로바이더 버전과 구성은 루트 모듈의 설정이 적용된다.
- 프로바이더를 모듈 내 리소스와 데이터 소스에 일괄 적용하고, 자식 모듈에 대한 반복문 사용에 자유로운 것이 장점
- 자식 모듈에 특정 프로바이더 구성의 종속성은 반영할 수 없으므로 자식 모듈을 프로바이더 조건에 대해 기록하고, 자식 모듈을 사용하는 루트 모듈에서 정의하는 프로바이더에 맞게 업데이트
module 반목문
모듈 또한 리소스에서 반복문을 사용하듯 구성할 수 있습니다.
모듈이라는 리소스 정의 묶음을 원하는 수량으로 프로비저닝할 수 있으므로 모듈 없이 구성하는 것과 대비해 리소스 종속성 관리와 유지 보수에 장점이 있으며 count를 사용한 반복문 사용은 리소스에서의 사용 방식처럼 module 블록 내에 선언 할 수 있습니다.
'Terraform' 카테고리의 다른 글
[Terraform] Terraform module (0) | 2023.07.28 |
---|---|
[Terraform] Terraform Workspace (0) | 2023.07.28 |
[Terraform] Terraform 상태관리 및 격리방안 (0) | 2023.07.28 |
[Terraform] Terraform 기본 사용법 조건문, 함수, Provisioners, moved, 시스템 변수 (0) | 2023.07.22 |
[Terraform] Terrafrom 사용법 반복문 (0) | 2023.07.16 |