메타-인자

메타-인자 (Meta-arguments)

Terraform 언어에 내장된 메타-인자가 무엇인지와 각각의 역할을 설명해 드릴게요. 리소스의 인프라 라이프사이클·의존성·개수를 제어하는 핵심 기능이에요.

출처: 문서

본문

메타-인자(meta-arguments)는 Terraform 구성 언어에 내장된 인자 유형으로, Terraform이 인프라를 어떻게 생성·관리하는지 제어해요. 어떤 유형의 리소스에서든 메타-인자를 사용할 수 있으며, 대부분의 메타-인자는 module 블록에서도 사용할 수 있어요.

프로바이더 개발자가 리소스별 인자를 결정하지만, 모든 리소스는 리소스의 인프라 라이프사이클(파괴 동작, 파괴 방지, 리소스 간 의존성 설정 포함)을 관리하게 해주는 메타-인자를 지원해요. Terraform이 제공하는 메타-인자는 다음과 같아요.

depends_on

depends_on 메타-인자는 의존성을 선언한 객체에 대한 작업을 수행하기 전에 의존 객체의 모든 작업(read 연산 포함)을 완료하도록 Terraform에 지시해요. depends_on 인자를 사용해 Terraform이 리소스를 생성하는 순서를 명시적으로 설정할 수 있어요. 자세한 내용은 depends_on 레퍼런스를 참고해요.

실습: 리소스 의존성 만들기 튜토리얼로 의존성 선언 방법을 배워보세요.

count

기본적으로 Terraform은 각 resource, module, ephemeral 블록에 대해 인프라 객체 하나를 구성해요. resource, module, ephemeral 블록에 count 인자를 추가하면 각 인스턴스마다 별도 블록을 작성하지 않고도 여러 인스턴스를 생성·관리할 수 있어요. 자세한 내용은 count 레퍼런스를 참고해요.

실습: count로 비슷한 리소스 관리하기 튜토리얼로 리소스의 여러 인스턴스를 만드는 방법을 배워보세요.

for_each

기본적으로 Terraform은 각 resource, module, ephemeral 블록에 대해 인프라 객체 하나를 구성해요. resource, data, module, ephemeral 블록에 for_each 인자를 추가하면 고정된 컴퓨트 인스턴스 풀처럼 비슷한 객체 여러 개를 각 인스턴스마다 별도 블록을 작성하지 않고 생성·관리할 수 있어요. 자세한 내용은 for_each 레퍼런스를 참고해요.

실습: for_each로 비슷한 리소스 관리하기 튜토리얼로 여러 인스턴스를 만드는 방법을 배워보세요.

lifecycle

lifecycle 블록은 각 리소스에 대해 Terraform이 라이프사이클 단계를 수행하는 방식을 커스터마이즈하는 규칙을 받아들여요. 각 lifecycle 규칙의 지원 여부는 Terraform 구성 블록에 따라 달라져요. 자세한 내용은 lifecycle 레퍼런스를 참고해요.

실습: 리소스 라이프사이클 관리 튜토리얼로 인프라 리소스의 라이프사이클 관리 방법을 배워보세요.

provider

기본적으로 Terraform은 리소스 유형의 첫 단어에서 프로바이더의 로컬 이름을 결정하고, 그 프로바이더의 기본 구성을 사용해 리소스를 만들어요. 구성에 여러 provider 블록을 추가하고 리소스 정의의 provider 인자로 어떤 프로바이더를 사용할지 지정할 수 있어요. 자세한 내용은 provider 레퍼런스를 참고해요.

providers

기본적으로 자식 모듈은 부모 모듈의 기본 프로바이더 구성을 상속해요. module 블록의 providers 인자로 대체 프로바이더 구성을 지정할 수 있어요. providers 인자는 Terraform이 참조된 프로바이더 구성을 사용해 모듈 리소스를 만들도록 지시해요. 자세한 내용은 providers 레퍼런스를 참고해요.

더 알아보기 (Learn more)