Terraform 을 사용하면 클라우드 인프라의 정의, 미리 보기 및 배포가 가능합니다. Terraform을 사용하여 HCL 구문을 사용하여 구성 파일을 만듭니다. HCL 구문을 사용하면 클라우드 공급자(예: Azure)와 클라우드 인프라를 구성하는 요소를 지정할 수 있습니다. 구성 파일을 만든 후에는 인프라 변경 내용을 배포하기 전에 미리 볼 수 있는 실행 계획을 만듭니다. 변경 내용을 확인하면 실행 계획을 적용하여 인프라를 배포합니다.
Visual Studio Code Terraform 확장을 사용하면 편집기에서 Terraform을 사용할 수 있습니다. 이 확장을 사용하면 Terraform 구성을 작성, 테스트 및 실행할 수 있습니다.
이 문서에서는 다음 방법을 알아봅니다.
- Azure Terraform Visual Studio Code 확장 설치
- 확장을 사용하여 Azure 리소스 그룹 만들기
- 리소스 그룹이 만들어졌는지 확인합니다.
- 확장을 사용하여 테스트를 완료하면 리소스 그룹을 삭제합니다.
1. 환경 구성
- Azure 구독
: Azure 구독이 없는 경우 시작하기 전에 무료 계정 을(를) 만드세요.
Terraform 구성: 아직 구성하지 않은 경우 다음 옵션 중 하나를 사용하여 Terraform을 구성합니다.
- Node.js설치 합니다.
2. Azure Terraform Visual Studio Code 확장 설치
Visual Studio Code를 시작합니다.
왼쪽 메뉴에서 확장을 선택하고 검색 텍스트 상자에 입력
Azure Terraform
합니다.확장 목록에서 확장을 찾습니다
Azure Terraform
. (나열된 첫 번째 확장이어야 합니다.)확장이 아직 설치되지 않은 경우 확장의 설치 옵션을 선택합니다.
핵심 사항:
- Azure Terraform 확장에 대해 설치 를 선택하면 Visual Studio Code에서 Azure 계정 확장을 자동으로 설치합니다.
- Azure 계정은 Azure Terraform 확장에 대한 종속성 파일입니다. 이 파일은 Azure 및 Azure 관련 코드 확장에 인증하는 데 사용됩니다.
확장 설치를 확인하려면 검색 텍스트 상자에 입력
@installed
합니다. Azure Terraform 확장과 Azure 계정 확장은 모두 설치된 확장 목록에 표시됩니다.
이제 Visual Studio Code 내에서 Cloud Shell 환경에서 지원되는 모든 Terraform 명령을 실행할 수 있습니다.
3. Terraform 코드 구현
샘플 Terraform 코드를 테스트할 디렉터리를 만들고, 이를 현재 디렉터리로 만듭니다.
providers.tf
라는 파일을 만들고 다음 코드를 삽입합니다.terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>4.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
main.tf
라는 파일을 만들고 다음 코드를 삽입합니다.# Create a random name for the resource group using random_pet resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } # Create a resource group using the generated random name resource "azurerm_resource_group" "example" { ___location = var.resource_group_location name = random_pet.rg_name.id }
프로젝트 변수를 포함하도록 명명된
variables.tf
파일을 만들고 다음 코드를 삽입합니다.variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." }
프로젝트 변수를 포함하도록 명명된
outputs.tf
파일을 만들고 다음 코드를 삽입합니다.output "resource_group_name" { value = azurerm_resource_group.example.name }
4. Cloud Shell에 코드 푸시
보기 메뉴에서 명령 팔레트를 선택합니다.
명령 팔레트 텍스트 상자에
Azure Terraform: Push
을 입력하기 시작하고 표시되면 선택합니다.확인을 선택하여 Cloud Shell의 열기를 확인합니다.
핵심 사항:
- 구성의 설정에 정의된 필터를
azureTerraform.files
충족하는 작업 영역 파일이 Cloud Shell에 복사됩니다.
- 구성의 설정에 정의된 필터를
5. Visual Studio Code 내에서 Terraform 초기화
보기 메뉴에서 명령 팔레트를 선택합니다.
명령 팔레트 텍스트 상자에
Azure Terraform: Init
을 입력하기 시작하고 표시되면 선택합니다.핵심 사항:
- 이 옵션을 선택하는 것은 명령줄에서 terraform init 를 실행하는 것과 동일하며 Terraform 배포를 초기화합니다.
- 이 명령은 Azure 리소스 그룹을 만드는 데 필요한 Azure 모듈을 다운로드합니다.
프롬프트에 따라 지원되는 최신 버전의 nodejs와 같은 종속성을 설치합니다.
기본 Azure 구독에서 처음으로 Cloud Shell을 사용하는 경우 프롬프트에 따라 환경을 구성합니다.
6. Visual Studio Code 내에서 Terraform 실행 계획 만들기
보기 메뉴에서 명령 팔레트를 선택합니다.
명령 팔레트 텍스트 상자에
Azure Terraform: Plan
을 입력하기 시작하고 표시되면 선택합니다.핵심 사항:
- 이 명령은 terraform 계획을 실행하여 현재 디렉터리의 Terraform 구성 파일에서 실행 계획을 만듭니다.
7. Visual Studio Code 내에서 Terraform 실행 계획 적용
보기 메뉴에서 명령 팔레트를 선택합니다.
명령 팔레트 텍스트 상자에
Azure Terraform: Apply
을 입력하기 시작하고 표시되면 선택합니다.확인 메시지가 표시되면 다음을 입력
yes
하고 누릅니다<Enter>
.
8. 결과 확인
보기 메뉴에서 명령 팔레트를 선택합니다.
명령 팔레트 텍스트 상자에
Azure: Open Bash in Cloud Shell
을 입력하기 시작하고 표시되면 선택합니다.az group show를 실행하여 리소스 그룹을 표시합니다.
<resource_group_name>
자리 표시자를 Terraform 실행 계획을 적용한 후 표시되는 리소스 그룹의 임의로 생성된 이름으로 바꿉니다.
az group show --name <resource_group_name>
9. 리소스 정리
보기 메뉴에서 명령 팔레트를 선택합니다.
명령 팔레트 텍스트 상자에
Azure Terraform: Destroy
을 입력하기 시작하고 표시되면 선택합니다.확인 메시지가 표시되면 다음을 입력
yes
하고 누릅니다<Enter>
.Terraform이 새 리소스 그룹을 성공적으로 제거했는지 확인하려면 섹션의 단계를 실행 하여 결과를 확인합니다.
Azure에서 Terraform 문제 해결
Azure에서 Terraform을 사용할 때 발생하는 일반적인 문제 해결