Azure Bicep 시작하기 (단계별)

Azure를 위한 인프라를 구축해야합니까? ARM 템플릿을 살펴보고 복잡해 보였습니까? 많은 사람들이 ARM 템플릿 작성의 어려움을 불평했기 때문에 Microsoft은 Azure Bicep이라는 추상화 계층을 개발했습니다.

이 튜토리얼에서는 처음부터 시작하는 방법을 배우게 될 것입니다. 개발 환경 설정부터 첫 번째 Bicep 템플릿 배포까지 모든 과정을 배울 수 있습니다!

시작해 봅시다!

사전 준비 사항

이 튜토리얼은 실습을 통해 진행됩니다. 함께 따라하려면 다음 사항이 필요합니다:

  • Windows 10 – 이 튜토리얼의 대부분의 데모는 다른 운영 체제에서도 작동하지만 모든 데모는 Windows 10을 사용합니다.
  • Visual Studio Code – 이 튜토리얼에서는 v1.60.2를 사용합니다.
  • 배포할 Azure 리소스 그룹 – 이 튜토리얼에서는 ATA라는 리소스 그룹을 사용합니다.

Azure Bicep이란 무엇입니까?

Bicep은 도메인 특화 언어로 ARM 템플릿을 더 쉽게 구축할 수 있게 해줍니다. Bicep은 ARM 템플릿 위의 추상화 계층으로 생각할 수 있습니다. ARM은 JSON을 사용하며 특히 대규모 배포의 경우 복잡해질 수 있습니다.

Microsoft은 복잡성을 줄이고 개발 경험을 향상시키기 위해 Bicep을 만들기로 결정했습니다. 이는 새로운 언어가 아닌 JSON ARM 템플릿의 개선으로 생각할 수 있습니다.

Bicep 개발 환경 설정

Bicep 템플릿을 개발하기 위해 최상의 결과를 얻을 수 있는 환경을 설정해야 합니다. 이를 위해 몇 가지 도구를 사용할 수 있습니다. 먼저 VS Code Bicep 확장 프로그램, Bicep CLI 및 선택적으로 Azure PowerShell 모듈을 설치해야 합니다.

VS Code Bicep 확장 프로그램 설치

VS Code는 Bicep 템플릿을 만들기 위한 훌륭한 개발 도구입니다. 이에 따라 Microsoft는 Bicep 템플릿 생성을 도와주는 VS Code 확장 프로그램을 제공합니다. 이제 개발 환경을 구축하기 위해 VS Code를 준비해봅시다.

Visual Studio Code를 열고 확장 프로그램 버튼을 클릭하세요.

Opening extensions

검색 바에 “bicep”을 입력하세요. 그러면 Bicep 확장 프로그램이 나타날 것입니다. 이때, 설치를 클릭하세요. 잠시 후, VS Code가 Bicep 확장 프로그램을 설치할 것입니다.

Search and install bicep extension

다음 섹션에서는 Bicep 템플릿을 복사/붙여넣기할 수 있지만, 처음부터 Bicep 템플릿을 생성해야 할 때가 있을 것입니다. 특히, VS Code의 Bicep 확장 프로그램은 인텔리센스 기능으로 인해 유용합니다.

만약 VS Code에서 확장자가 .bicep인 파일을 열면, 단축키를 제공하려고 할 것입니다. 예를 들어, Bicep 템플릿에서 resource 키워드로 Azure 리소스를 생성합니다. Bicep 확장 프로그램이 설치되어 있다면, VS Code는 이를 이해할 수 있습니다.

Typing the resource command

제공된 메뉴 옵션 중 하나를 선택하면, 매번 정확한 구문을 기억할 필요 없이 자동으로 채워질 템플릿을 생성합니다.

Blank bicep template

점(.)은 Bicep 템플릿을 생성할 때 유용한 바로 가기입니다. 예를 들어 properties 섹션에 이를 입력하면, 스토리지 계정에 대해 사용 가능한 모든 속성을 볼 수 있습니다.

Properties available for a storage account

Bicep CLI 설치

템플릿을 생성한 후, Bicep CLI를 통해 Bicep 템플릿을 호출해야 합니다. Bicep CLI를 설치하기 전에 이미 설치되어 있는지 확인해야 합니다. 설치된 Azure CLI의 버전에 따라 Bicep CLI가 이미 설치되어 있을 수 있습니다. 확인하려면 PowerShell 콘솔이나 터미널을 열고 Bicep CLI의 버전을 확인하세요.

	az bicep version

Bicep CLI가 설치되어 있다면 아래와 같이 버전 문장이 표시됩니다.

Bicep CLI version

Bicep CLI를 찾을 수 없다는 오류 메시지가 표시된다면, install 하위명령을 실행하여 Bicep CLI를 설치하세요.

az bicep install

이제 아래와 같은 출력이 표시됩니다. Bicep CLI가 성공적으로 설치되어 사용할 준비가 되었음을 확인합니다.

Bicep installed successfully

대체 설치 방법으로, Bicep Windows Installer를 통해 Bicep CLI를 설치할 수도 있습니다.

스토리지 계정을 배포하기 위한 Bicep 템플릿 생성

Bicep를 사용하면 일부 복잡한 Azure 리소스를 배포할 수 있지만 천천히 시작해 봅시다. 첫 번째 Bicep 템플릿으로 Azure CLI와 PowerShell을 사용하여 Azure에 배포할 수 있는 간단한 Azure 저장소 계정을 생성해 보겠습니다.

1. VS Code를 열고 main.bicep이라는 새 파일을 만듭니다. 파일 이름은 여기에 정확히 표시된 것과 동일하게 지정할 필요는 없지만, Terraform을 따라가는 것처럼 템플릿을 main이라고 지정하고 .bicep 확장자를 사용하는 것이 일반적입니다.

2. 아래의 Bicep 템플릿 코드를 파일에 복사하여 붙여넣고 저장합니다. 이 템플릿에는 Bicep 템플릿을 구성하는 다양한 속성이 포함되어 있습니다.

먼저 모든 Bicep 템플릿에 공통적으로 사용되는 일부 속성을 볼 수 있습니다:

  • 리소스 식별자 (resource myStorage) – Bicep에게 myStorage라는 새 리소스를 생성하도록 지시합니다. 이 이름은 Bicep 템플릿 내에서 해당 리소스를 식별하는 데 사용됩니다. 이 이름은 Azure에서 생성되는 리소스의 이름이 아닙니다.
  • Microsoft.Storage/storageAccounts@2019-06-01 – 리소스 제공자 Microsoft.Storage, 리소스 유형 (storageAccounts) 및 사용할 API 버전 (2019-06-01)으로 구성된 유형을 정의합니다.
  • name Azure에서 리소스의 이름으로 표시되는 이름 (Azure 리소스의 규칙과 제한 사항에 주의하세요.)
  • location – 리소스를 생성할 Azure 지역입니다.

storageAccounts 리소스 유형에 특정한 속성도 볼 수 있습니다:

  • SKU – 속성 name에 정의된 대로 저장소 계정 SKU (Standard_LRS).
  • kind – 저장소 계정의 유형 (StorageV2).
  • properties accessTier와 같이 자체 섹션을 가지지 않은 여러 리소스 특정 속성들입니다. 이러한 속성들은 ARM 템플릿에서 찾을 수 있는 것과 동일합니다.
resource myStorage 'Microsoft.Storage/storageAccounts@2019-06-01' = {
  name: 'ata2021bicepdiskstorage'
  location: 'uksouth'
  SKU: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
        
  }
}

PowerShell로 Bicep 템플릿 배포

앞에서 언급했듯이, Bicep 템플릿을 Azure CLI와 Azure PowerShell 모듈 중 하나로 배포할 수 있습니다. 우선 PowerShell로 Bicep 템플릿을 배포해 보겠습니다.

이 섹션을 시작하기 전에 Azure PowerShell 모듈이 설치되어 있고 Azure에 인증되었는지 확인하십시오.

Bicep 템플릿을 사용하여 Azure 리소스를 배포하는 것은 ARM 템플릿을 배포하는 것과 동일합니다. Microsoft는 사실상 Bicep 언어를 많은 기존 PowerShell ARM cmdlet(New-AzResourceGroupDeployment)과 같은 것에 Bicep 언어 지원을 추가했습니다.

PowerShell 콘솔에서 New-AzResourceGroupDeployment cmdlet을 사용하여 새 리소스 그룹 배포를 호출하고, Bicep 템플릿의 경로와 배포할 ResourceGroupName을 제공하십시오. Bicep 템플릿을 ARM 템플릿처럼 사용할 수 있다는 것을 알 수 있습니다.

New-AzResourceGroupDeployment -TemplateFile main.bicep -ResourceGroupName ATA

배포가 성공하면 PowerShell 세션에 다음과 같은 출력이 표시되며, ProvisioningState 속성이 성공으로 표시됩니다. 그게 다입니다!

Deploying resource with Bicep

리소스가 성공적으로 생성되었는지 확인하려면 Azure Portal에 로그인한 다음 리소스 그룹으로 이동하면 새롭게 생성된 스토리지 계정이 리소스 그룹 안에 표시됩니다.

Azure Portal

만약 데모용으로 스토리지 계정을 생성하고 있다면, 삭제하는 것을 잊지 마세요! ResourceName이 Bicep 템플릿에서 제공된 name과 일치하는 것에 주목하세요.

Remove-AzResource -ResourceName ata2021bicepdiskstorage -ResourceGroupName ATA -ResourceType "Microsoft.Storage/storageAccounts"

이제 다음 출력을 볼 수 있습니다.

Removing an Azure storage account

Azure CLI를 사용하여 Bicep 템플릿 배포

이 튜토리얼을 마무리하기 위해, 최근에 작성한 Bicep 템플릿을 Azure CLI로 배포하는 방법을 알아보겠습니다.

이 섹션을 시작하기 전에 Azure CLI v2.2.0+가 설치되어 있고 로그인되어 있는지 확인하세요.

PowerShell이나 다른 터미널을 열고 az deployment group create 명령을 사용하여 ARM 배포를 수행하세요. 이 명령은 PowerShell과 마찬가지로 ARM 배포를 수행합니다. 이전에 생성한 Bicep 템플릿을 template-file 매개변수를 통해 배포할 resource-group을 지정하세요.

az deployment group create --resource-group ATA --template-file main.bicep

아래에 표시된 것처럼 provisioningStateSucceeded로 표시되면 ARM이 Bicep 템플릿을 읽고 모든 지시문을 수행한 것입니다!

provisioningState as Succeeded
Output in JSON from az deployment command

az resource delete -g ATA -n ata2021bicepdiskstorage --resource-type "Microsoft.Storage/storageAccounts"를 사용하여 리소스를 정리하는 것을 잊지 마세요.

결론

Azure Bicep을 위한 개발 환경을 생성하고 Azure에서 리소스를 만들었습니다. 다음 단계는 무엇인가요? 아마도 Bicep에 대해 Microsoft Learn에서 제공하는 내용을 살펴보는 것일까요?

조직에 Bicep이 어떻게 도움이 될 수 있는지 동료들에게 시연해보는 것은 어떨까요?

Source:
https://adamtheautomator.com/azure-bicep/