Hashicorp Terraform 은 클라우드 인프라를 구성하고 배포하기 위한 오픈 소스 IaC(코드로서의 인프라) 도구입니다. 토폴로지의 원하는 상태를 설명하는 구성 파일의 인프라를 코딩합니다. Terraform을 사용하면 Terraform 공급자를 사용하여 퍼블릭 클라우드, 프라이빗 클라우드 및 SaaS 서비스와 같은 모든 인프라를 관리할 수 있습니다.
Azure 인프라용 Terraform 공급자
여러 Terraform 공급자를 통해 Azure 인프라를 관리할 수 있습니다.
- AzureRM: 가상 머신, 스토리지 계정 및 네트워킹 인터페이스와 같은 안정적인 Azure 리소스 및 기능을 관리합니다.
- AzAPI: Azure Resource Manager API를 직접 사용하여 Azure 리소스 및 기능을 관리합니다. 이 공급자를 사용하면 공급자 업데이트를 요구하지 않고도 Azure 최신 기능과 일관성을 유지합니다. AzAPI 공급자에 대한 자세한 내용은 Terraform AzAPI 공급자를 참조하세요.
- AzureAD: 그룹, 사용자, 서비스 주체 및 애플리케이션과 같은 Microsoft Entra 리소스를 관리합니다.
- AzureDevops: 에이전트, 리포지토리, 프로젝트, 파이프라인 및 쿼리와 같은 Azure DevOps 리소스를 관리합니다.
- AzureStack: 가상 머신, DNS, 가상 네트워크 및 스토리지와 같은 Azure Stack Hub 리소스를 관리합니다.
AzAPI 및 AzureRM 사용
AzAPI와 AzureRM을 사용하는 시기를 이해하려면 HashiCorp와 공동 문을 참조하세요.
Azure Terraform의 이점
이 섹션에서는 Terraform을 사용하여 Azure 인프라를 관리하는 이점에 대해 설명합니다.
일반 IaC 도구
Terraform Azure 공급자를 사용하면 동일한 선언적 구문 및 도구를 사용하여 모든 Azure 인프라를 관리할 수 있습니다. 이러한 공급자를 사용하여 다음을 수행할 수 있습니다.
- 관리 그룹, 정책, 사용자, 그룹 및 정책과 같은 핵심 플랫폼 기능을 구성합니다. 자세한 내용은 클라우드 채택 프레임워크 Enterprise 규모의 Terraform 구현을 참조하세요.
- 일반 인프라 및 애플리케이션 배포를 자동화하도록 Azure DevOps 프로젝트 및 파이프라인을 구성합니다.
- 애플리케이션에 필요한 Azure 리소스를 배포합니다.
인프라 관리 자동화
Terraform 템플릿 기반 구성 파일 구문을 사용하여 반복 가능하고 예측 가능한 방식으로 Azure 리소스를 구성합니다. 인프라 관리를 자동화하면 다음과 같은 이점이 제공됩니다.
- 인프라를 배포하고 관리할 때 발생하는 사용자 오류의 가능성을 줄입니다.
- 동일한 템플릿을 여러 번 배포하여 동일한 개발, 테스트 및 프로덕션 환경을 만듭니다.
- 필요에 따라 환경을 만들어 개발 및 테스트 환경 비용을 절감합니다.
적용하기 전에 인프라 변경 내용 이해
리소스 토폴로지는 점점 더 복잡해짐에 따라 인프라 변경의 의미와 영향을 이해하기 어려울 수 있습니다.
Terraform CLI를 사용하면 계획을 적용하기 전에 인프라 변경 내용의 유효성을 검사하고 미리 볼 수 있습니다. 안전한 방식으로 인프라 변경 내용을 미리 보는 것은 다음과 같은 몇 가지 이점을 제공합니다.
- 팀 구성원은 제안된 변경 내용과 해당 영향을 이해하여 보다 효과적으로 공동 작업할 수 있습니다.
- 개발 프로세스 초기에 의도하지 않은 변경 내용을 catch할 수 있습니다.
다음 단계
사용자 환경에 따라 Terraform을 설치하고 구성합니다.
Note
Azure Storage 계정 변환은 Terraform이 스토리지 계정 교체를 계획하게 하는 지원되는 대역 외 변경 내용을 도입할 수 있습니다. 이러한 변환 중에 예기치 않은 재현을 방지하는 방법에 대한 지침은 상태 저장 Azure 리소스에 대한 Terraform 드리프트 방지를 참조하세요.
Terraform 구성: 아직 구성하지 않은 경우 다음 옵션 중 하나를 사용하여 Terraform을 구성합니다.