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