Azure의 Terraform 개요 - Terraform이란?

Hashicorp Terraform 은 클라우드 인프라를 구성하고 배포하기 위한 오픈 소스 IaC(코드로서의 인프라) 도구입니다. 토폴로지의 원하는 상태를 설명하는 구성 파일의 인프라를 코딩합니다. Terraform을 사용하면 Terraform 공급자를 사용하여 퍼블릭 클라우드, 프라이빗 클라우드 및 SaaS 서비스와 같은 모든 인프라를 관리할 수 있습니다.

Azure 인프라용 Terraform 공급자

Azure 인프라를 관리할 수 있는 여러 Terraform 공급자가 있습니다.

  • AzureRM: 가상 머신, 스토리지 계정 및 네트워킹 인터페이스와 같은 안정적인 Azure 리소스 및 기능을 관리합니다.
  • AzureAD: 그룹, 사용자, 서비스 주체, 애플리케이션 등 Microsoft Entra 리소스를 관리합니다.
  • AzureDevops: 에이전트, 리포지토리, 프로젝트, 파이프라인 및 쿼리와 같은 Azure DevOps 리소스를 관리합니다.
  • AzAPI: Azure Resource Manager API를 사용하여 Azure 리소스 및 기능을 직접 관리합니다. 이 공급자는 릴리스되지 않은 Azure 리소스 관리를 사용하도록 설정하여 AzureRM 공급자를 보완합니다. AzAPI 공급자에 대한 자세한 내용은 Terraform AzAPI 공급자를 참조하세요.
  • AzureStack: 가상 머신, DNS, 가상 네트워크 및 스토리지와 같은 Azure Stack Hub 리소스를 관리합니다.

Azure를 사용하는 Terraform의 이점

이 섹션에서는 Terraform을 사용하여 Azure 인프라를 관리하는 이점에 대해 설명합니다.

일반 IaC 도구

Terraform Azure 공급자를 사용하면 동일한 선언적 구문 및 도구를 사용하여 모든 Azure 인프라를 관리할 수 있습니다. 이러한 공급자를 사용하여 다음을 수행할 수 있습니다.

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

인프라 관리 자동화

Terraform 템플릿 기반 구성 파일 구문을 사용하면 반복 가능하고 예측 가능한 방식으로 Azure 리소스를 구성할 수 있습니다. 인프라 자동화에는 다음과 같은 이점이 포함됩니다.

  • 인프라를 배포하고 관리하는 동안 사람의 실수 가능성을 줄입니다.
  • 동일한 템플릿을 여러 번 배포하여 동일한 개발, 테스트 및 프로덕션 환경을 만듭니다.
  • 주문형 환경을 만들어 개발 및 테스트 환경의 비용을 줄입니다.

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

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

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

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

다음 단계

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