Azure Terraform 개요 - Terraform이란?

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 인프라를 관리할 수 있습니다. 이러한 공급자를 사용하여 다음을 수행할 수 있습니다.

  1. 관리 그룹, 정책, 사용자, 그룹 및 정책과 같은 핵심 플랫폼 기능을 구성합니다. 자세한 내용은 클라우드 채택 프레임워크 Enterprise 규모의 Terraform 구현을 참조하세요.
  2. 일반 인프라 및 애플리케이션 배포를 자동화하도록 Azure DevOps 프로젝트 및 파이프라인을 구성합니다.
  3. 애플리케이션에 필요한 Azure 리소스를 배포합니다.

인프라 관리 자동화

Terraform 템플릿 기반 구성 파일 구문을 사용하여 반복 가능하고 예측 가능한 방식으로 Azure 리소스를 구성합니다. 인프라 관리를 자동화하면 다음과 같은 이점이 제공됩니다.

  • 인프라를 배포하고 관리할 때 발생하는 사용자 오류의 가능성을 줄입니다.
  • 동일한 템플릿을 여러 번 배포하여 동일한 개발, 테스트 및 프로덕션 환경을 만듭니다.
  • 필요에 따라 환경을 만들어 개발 및 테스트 환경 비용을 절감합니다.

적용하기 전에 인프라 변경 내용 이해

리소스 토폴로지는 점점 더 복잡해짐에 따라 인프라 변경의 의미와 영향을 이해하기 어려울 수 있습니다.

Terraform CLI를 사용하면 계획을 적용하기 전에 인프라 변경 내용의 유효성을 검사하고 미리 볼 수 있습니다. 안전한 방식으로 인프라 변경 내용을 미리 보는 것은 다음과 같은 몇 가지 이점을 제공합니다.

  • 팀 구성원은 제안된 변경 내용과 해당 영향을 이해하여 보다 효과적으로 공동 작업할 수 있습니다.
  • 개발 프로세스 초기에 의도하지 않은 변경 내용을 catch할 수 있습니다.

다음 단계

사용자 환경에 따라 Terraform을 설치하고 구성합니다.

Note

Azure Storage 계정 변환은 Terraform이 스토리지 계정 교체를 계획하게 하는 지원되는 대역 외 변경 내용을 도입할 수 있습니다. 이러한 변환 중에 예기치 않은 재현을 방지하는 방법에 대한 지침은 상태 저장 Azure 리소스에 대한 Terraform 드리프트 방지를 참조하세요.