Terraform 테스트 기능 개요
Terraform 테스트 기능 개요 (Testing Features in Terraform Overview)
Terraform의 테스트 기능을 소개해서 인프라스트럭처를 검증하는 데 도움을 드려요. terraform test 명령의 동작 방식과 추가 검증 기능들을 설명해요.
출처: 문서
본문
이 주제는 인프라스트럭처를 검증하는 데 도움이 되는 Terraform의 테스트 기능에 대한 개요를 제공해요.
소개
Terraform은 다음과 같은 유형의 테스트 기능을 제공해요:
- 정기적인 Terraform 작업의 일부로 수행되는 구성 및 인프라스트럭처 검증. 자세한 내용은 구성 검증하기 (Validate your configuration)를 참조하세요.
- 구성에 대한 전통적인 단위 및 통합 테스트. 이 테스트 기능에 대한 자세한 내용은
terraform test명령 문서를 참조하세요.
추가 테스트 및 검증 기능
terraform test 명령의 동작 방식
test 명령은 다음 작업을 수행해요:
- 구성 디렉토리에서 Terraform 테스트 파일을 찾아요.
- 각 테스트 파일이 지정한 대로 구성 내의 인프라스트럭처를 프로비저닝해요.
- 프로비저닝된 인프라스트럭처에 대해 테스트 파일의 어서션(assertion)을 실행해요.
- 테스트가 끝나면 프로비저닝된 인프라스트럭처를 파괴해요.
test 명령 사용에 대한 자세한 내용은 test 명령 참조 문서를 참조하세요.
테스트용 구성 작성
Terraform 테스트 파일에는 자체 구성 구문이 있어요. 이 테스트 파일 구문은 현재 구성을 위한 Terraform 실행을 사용자 정의하고, 변수와 프로바이더를 재정의해 다양한 동작을 테스트하는 데 초점을 맞춰요.
검증 (Validations)
검증을 사용하면 구성과 인프라스트럭처가 적용되고 생성될 때 그 측면을 확인할 수 있어요. HCP Terraform은 자동화된 지속적 검증 (continuous validation)도 지원해요.
Terraform test 명령은 실행하는 테스트의 일부로 구성 내의 모든 검증도 실행해요. 자세한 내용은 구성 검증하기를 참조하세요.
테스트와 검증의 차이
많은 검증을 테스트 어서션으로 작성할 수 있지만, 둘 다 특정한 사용 사례가 있어요.
Terraform은 plan 및 apply 작업 중과 terraform test 명령을 실행할 때 검증을 실행해요. 따라서 항상 참이어야 하고 인프라스트럭처의 올바른 실행에 영향을 줄 수 있는 구성 측면을 검증하는 데 검증을 사용하세요.
모듈 작성자는 검증이 모듈 사용자에게 실행되고 노출된다는 점을 알아야 해요. 실패하면 실패 메시지가 이해하기 쉽고 실행 가능한지 확인하세요.
반대로 Terraform은 terraform test를 실행할 때만 테스트를 실행해요. 구성 내 로직 연산이나 특정 동작의 정확성을 확인하는 데 테스트를 사용하세요. 예를 들어, 조건부 리소스를 제어하는 입력을 특정 값으로 설정한 다음 Terraform이 생성하는 리소스를 확인해, Terraform이 입력을 기반으로 조건부 리소스를 생성하는지 테스트할 수 있어요.