연습 - Azure Resource Manager 템플릿 만들기 및 배포

완료됨

이 연습에서는 ARM(Azure Resource Manager) 템플릿을 만들고 Azure에 배포한 다음 해당 ARM 템플릿을 업데이트하여 매개 변수 및 출력을 추가합니다.

ARM 템플릿 만들기

  1. Visual Studio Code를 열고 azuredeploy.json라는 새 파일을 만듭니다.

  2. 다음 코드를 복사하여 파일에 붙여 넣습니다.

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {},
      "functions": [],
      "variables": {},
      "resources": [],
      "outputs": {}
    }
    

    이 파일에는 앞 단원에서 설명한 ARM 템플릿의 모든 섹션이 있는 것을 볼 수 있습니다.

  3. Ctrl+S를 눌러 변경 내용을 파일에 저장합니다.

Azure에 ARM 템플릿 배포

Azure에 해당 템플릿을 배포하려면 Visual Studio Code 터미널에서 Azure 계정에 로그인해야 합니다. Azure CLI 도구가 설치되어 있는지 확인합니다.

  1. 터미널 > 새 터미널을 선택하여 터미널 창을 엽니다.

  2. 터미널 창의 명령 모음에 bash가 표시되면 작업할 올바른 셸이 있으며 다음 섹션으로 건너뛸 수 있습니다.

    1. 그렇지 않은 경우 드롭다운을 선택하고 기본 프로필 선택을 선택합니다.

      드롭다운에 bash가 있는 Visual Studio Code 터미널 창의 스크린샷

    2. Git Bash를 선택합니다.

      선택 셸 드롭다운을 보여 주는 Visual Studio Code 터미널 창의 스크린샷.

  3. 디렉터리를 ARM 템플릿 파일이 포함된 폴더로 변경합니다.

Azure에 로그인

터미널 창에서 이 명령을 실행하여 Azure에 로그인합니다.

az login

열리는 브라우저 창에서 계정에 로그인합니다. 로그인하면 이 계정과 연결된 구독 목록이 터미널에 표시됩니다. 기본 구독은 별표(*)로 표시됩니다. 여러 구독이 있는 경우 이 연습에 사용할 구독을 선택합니다.

기본 리소스 그룹 만들기 및 설정

az group create --name <resource-group-name> --location <location>

리소스 그룹 이름을< 리소스 그룹의 고유한 이름으로 대체>합니다. 위치를 가장 가까운 Azure 지역으로 바꿉<다.> 예를 들어 미국 동부에 eastus 를 사용합니다.

기본 리소스 그룹을 설정하여 이 연습의 Azure CLI 명령에서 해당 매개 변수를 생략할 수 있습니다. 리소스 그룹을 설정하려면 다음 명령을 실행합니다.

az configure --defaults group="<resource-group-name>"

리소스 그룹 이름을< 리소스 그룹 이름으로 대체>합니다.

Azure에 템플릿 배포

다음 명령을 실행하여 ARM 템플릿을 Azure에 배포합니다. ARM 템플릿에는 아직 리소스가 없으므로 생성된 리소스가 없습니다. 배포에 성공합니다.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="blanktemplate-"$today

az deployment group create \
 --name $DeploymentName \
 --template-file $templateFile

앞에 나온 코드의 맨 위 섹션은 배포할 템플릿 파일의 경로 및 배포의 이름에 해당하는 Azure CLI 변수를 설정합니다. 아래 섹션에서 az deployment group create는 Azure에 템플릿을 배포합니다. 배포 이름은 날짜가 접미사로 추가된 blanktemplate입니다.

터미널에 Running...이(가) 표시됩니다.

Azure에 해당 템플릿을 배포하려면 Visual Studio Code 터미널에서 Azure 계정에 로그인해야 합니다. Azure PowerShell 도구가 Visual Studio Code 확장에서 설치되어 있는지 확인합니다.

  1. 명령 모음에서 터미널 > 새 터미널 을 선택하여 PowerShell 창을 엽니다.

  2. 터미널 창의 명령 모음에 PowerShell이 표시되면 작업할 올바른 셸이 있으며 다음 섹션으로 건너뛸 수 있습니다.

    'pwsh' 터미널이 선택된 Visual Studio Code 터미널 창의 스크린샷

    1. 그렇지 않은 경우 아래쪽 화살표를 선택하고 드롭다운 목록에서 PowerShell을 선택합니다. 해당 옵션이 없으면 기본 프로필 선택을 선택합니다.

    2. 입력 필드에서 아래로 스크롤하여 PowerShell을 선택합니다.

      선택 셸 드롭다운을 보여 주는 Visual Studio Code 터미널 창의 스크린샷.

  3. 디렉터리를 ARM 템플릿 파일이 포함된 폴더로 변경합니다.

Azure PowerShell을 사용하여 Azure에 로그인

Visual Studio Code의 터미널에서 다음 명령을 실행하여 Azure에 로그인합니다. 계정에 로그인할 수 있도록 브라우저가 열립니다.

Connect-AzAccount

열리는 브라우저 창에서(현재 창 뒤에 브라우저 창을 열고 현재 창을 최소화하여 볼 수 있음) 계정에 로그인합니다. 로그인하면 이 계정과 연결된 구독 목록이 터미널에 표시됩니다. 기본 구독은 별표(*)로 표시됩니다. 여러 구독이 있는 경우 이 연습에 사용할 구독을 선택합니다.

Azure에 템플릿 배포

New-AzResourceGroup -Name <ResourceGroupName> -Location <Location>

리소스 그룹의 고유한 이름으로 대체합니다. 가장 가까운 Azure 지역으로 대체합니다. 예를 들어 미국 동부에 eastus를 사용합니다.

기본 리소스 그룹을 설정하여 이 연습의 Azure CLI 명령에서 해당 매개 변수를 생략할 수 있습니다. 리소스 그룹을 설정하려면 다음 명령을 실행합니다.

Set-AzDefault -ResourceGroupName <ResourceGroupName>

ResourceGroupName을< 리소스 그룹 이름으로 대체>합니다.

다음 명령을 실행하여 템플릿을 Azure에 배포합니다. ARM 템플릿에는 아직 리소스가 없으므로 생성된 리소스가 없습니다.

$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="blanktemplate-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

앞에 나온 코드의 맨 위 섹션은 배포 파일 및 배포의 이름에 해당하는 Azure PowerShell 변수를 설정합니다. New-AzResourceGroupDeployment 명령은 Azure에 템플릿을 배포합니다. 배포 이름은 날짜가 접미사로 추가된 blanktemplate입니다.

ARM 템플릿을 Azure에 배포하는 경우 Azure Portal로 이동합니다.

  1. 리소스 메뉴에서 리소스 그룹을 선택합니다.

  2. 이 연습에서 만든 리소스 그룹을 선택합니다.

  3. 개요 창에서 하나의 배포가 성공했음을 알 수 있습니다.

    리소스 그룹 개요에 대한 Azure Portal 인터페이스와 배포 섹션이 성공했음을 보여 줍니다.

  4. ‘1 성공’을 선택하여 배포 세부 정보를 확인합니다.

    하나의 배포가 나열되고 상태가 성공한 배포에 대한 Azure Portal 인터페이스입니다.

  5. blanktemplate을 선택하여 배포된 리소스를 확인합니다. 이 경우 템플릿에서 리소스를 아직 지정하지 않았기 때문에 리소스가 비어 있습니다.

    리소스가 나열되지 않은 특정 배포에 대한 Azure Portal 인터페이스입니다.

  6. 배포를 다시 확인할 수 있도록 브라우저에서 페이지를 열어 둡니다.

ARM 템플릿에 리소스 추가

이전 작업에서는 빈 템플릿을 만들고 배포하는 방법을 알아보았습니다. 이제 실제 리소스를 배포할 준비가 되었습니다. 이 작업에서는 ARM 템플릿에 Azure Storage 계정 리소스를 추가합니다.

  1. Visual Studio Code의 azuredeploy.json 파일에서 다음과 같이 파일을 업데이트합니다.

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {},
      "functions": [],
      "variables": {},
      "resources": [
        {
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2025-01-01",
          "name": "storageaccount1",
          "tags": {
            "displayName": "storageaccount1"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Standard_LRS"
          }
        }
      ],
      "outputs": {}
    }
    
  2. 리소스 이름displayName 의 값을 고유한 값(예: learnexercise12321)으로 변경합니다. 이 이름은 Azure에서 전역적으로 고유해야 하며 3~24자를 포함하며 소문자, 숫자 및 하이픈만 포함해야 합니다.

  3. 리소스 위치는 리소스가 배포된 리소스 그룹과 동일한 위치로 설정됩니다. 기본값을 그대로 둡니다.

  4. 파일을 저장합니다.

업데이트된 ARM 템플릿 배포

여기에서 해당 배포가 수행하는 작업을 더 잘 반영하도록 배포 이름을 변경합니다.

터미널에서 다음 Azure CLI 명령을 실행합니다. 코드 조각은 이전에 사용한 것과 동일한 코드이지만, 배포 이름이 변경되었습니다.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addstorage-"$today

az deployment group create \
  --name $DeploymentName \
  --template-file $templateFile

터미널에서 다음 Azure PowerShell 명령을 실행합니다. 코드 조각은 이전에 사용한 것과 동일한 코드이지만, 배포 이름이 변경되었습니다.

$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addstorage-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

배포 확인

  1. 배포가 완료되면 브라우저의 Azure Portal로 돌아갑니다. 리소스 그룹으로 이동하면 이제 2개의 성공한 배포가 있음을 알 수 있습니다. 해당 링크를 선택합니다.

    두 배포가 모두 목록에 있습니다.

    두 배포가 나열되고 성공한 상태가 있는 배포에 대한 Azure Portal 인터페이스의 스크린샷.

  2. addstorage를 선택합니다.

    하나의 리소스가 나열된 특정 배포에 대한 Azure Portal 인터페이스의 스크린샷.

스토리지 계정이 배포됩니다.