연습 - Azure Resource Manager 템플릿 만들기 및 배포
참고
처음으로 샌드박스를 활성화하고 약관에 동의하면 Microsoft 계정이 Microsoft Learn 샌드박스라는 새로운 Azure 디렉터리와 연결됩니다. 또한 Concierge Subscription이라는 특수 구독에도 추가됩니다.
이 연습에서는 ARM(Azure Resource Manager) 템플릿을 만들고 Azure에 배포한 다음 해당 ARM 템플릿을 업데이트하여 매개 변수 및 출력을 추가합니다.
이 연습에서는 Visual Studio Code용 Azure Resource Manager 도구를 사용합니다. 연습을 시작하기 전에 Visual Studio Code에 다음 확장을 설치해야 합니다.
ARM 템플릿 만들기
Visual Studio Code를 열고 azuredeploy.json이라는 새 파일을 만듭니다.
Visual Studio Code ARM 템플릿 확장은 템플릿을 개발하는 데 도움이 되는 코드 조각으로 구성되어 있습니다. 먼저 빈 템플릿을 추가해 보겠습니다. 파일의 줄 1에서 arm을 입력합니다.
Visual Studio Code는 arm!로 시작하는 몇 가지 잠재적 선택 항목을 자동으로 표시합니다. ARM(Azure Resource Manager) 템플릿을 선택합니다. Visual Studio Code는 템플릿의 스키마와 언어를 자동으로 처리합니다.
이제 파일이 다음과 같아집니다.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "functions": [], "variables": {}, "resources": [], "outputs": {} }
이 파일에는 앞 단원에서 설명한 ARM 템플릿의 모든 섹션이 있는 것을 볼 수 있습니다.
Ctrl+S를 눌러 변경 내용을 파일에 저장합니다.
Azure에 ARM 템플릿 배포
Azure에 해당 템플릿을 배포하려면 Visual Studio Code 터미널에서 Azure 계정에 로그인해야 합니다. Azure CLI 도구를 설치하고 샌드박스를 활성화한 것과 동일한 계정에 로그인했는지 확인합니다.
터미널 > 새 터미널을 선택하여 터미널 창을 엽니다.
명령 모음에 bash가 표시되면 올바른 셸을 사용하고 있는 것이며 다음 섹션으로 건너뛸 수 있습니다.
그렇지 않은 경우 드롭다운을 선택하고 기본 프로필 선택을 선택합니다.
Git Bash를 선택합니다.
터미널 > 새 터미널을 선택하여 Bash 셸 터미널 창을 엽니다.
Azure에 로그인
터미널 창에서 이 명령을 실행하여 Azure에 로그인합니다.
az login
열리는 브라우저 창에서 계정에 로그인합니다. 로그인하면 이 계정과 연결된 구독 목록이 터미널에 표시됩니다. 샌드박스를 활성화한 경우 ‘컨시어지 구독’이라는 구독이 표시됩니다. 나머지 연습에서 해당 구독을 사용합니다.
Bash 셸에서 다음 명령을 실행하여 이 세션에서 실행하는 모든 Azure CLI 명령에 대한 기본 구독을 설정합니다.
az account set --subscription "Concierge Subscription"
최근에 샌드박스를 두 개 이상 사용한 경우에는 컨시어지 구독이 두 개 이상 나열될 수 있습니다. 이 경우 다음 두 단계를 사용하여 기본 구독을 식별하고 설정합니다.
- 다음 명령을 실행하여 ‘컨시어지 구독’ ID를 가져옵니다.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
- 다음 명령을 실행해 기본 구독을 설정하여 {your subscription ID}를 최신 컨시어지 구독 ID로 대체합니다.
az account set --subscription {your subscription ID}
기본 리소스 그룹 설정
기본 리소스 그룹을 샌드박스를 활성화할 때 만든 리소스 그룹으로 설정하면 이 연습의 Azure CLI 명령에서 해당 매개 변수를 생략할 수 있습니다. 리소스 그룹을 설정하려면 다음 명령을 실행합니다.
az configure --defaults group=<rgn>[sandbox resource group name]</rgn>
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 확장에서 설치되어 있는지 확인하고 샌드박스를 활성화한 동일한 계정에 로그인합니다.
명령 모음에서 터미널 > 새 터미널을 선택하여 PowerShell 창을 엽니다.
터미널 창의 명령 모음에 PowerShell이 표시되면 작업할 올바른 셸을 사용하고 있는 것이며 다음 섹션으로 건너뛸 수 있습니다.
그렇지 않은 경우 아래쪽 화살표를 선택하고 드롭다운 목록에서 PowerShell을 선택합니다. 해당 옵션이 누락된 경우 기본 프로필 선택을 선택합니다.
입력 필드에서 아래로 스크롤하여 PowerShell을 선택합니다.
터미널 > 새 터미널을 선택하여 PowerShell 터미널 창을 엽니다.
Azure PowerShell을 사용하여 Azure에 로그인
Visual Studio Code의 터미널에서 다음 명령을 실행하여 Azure에 로그인합니다. 계정에 로그인할 수 있도록 브라우저가 열립니다.
Connect-AzAccount
팁
Az PowerShell 모듈은 AzureRM을 대체하며 Azure와 상호 작용하는 데 사용되는 권장 버전입니다.
샌드박스를 활성화하는 데 사용한 계정을 사용하여 로그인합니다. 로그인하면 Visual Studio Code 터미널 창에 계정과 연결된 구독이 나열됩니다. 샌드박스를 활성화한 경우
"name": "Concierge Subscription"
이 포함된 코드 블록이 표시됩니다. 이 구독은 연습의 나머지 부분에 사용합니다.
이 세션의 모든 PowerShell 명령에 대한 기본 구독 설정
다음 명령을 실행하여 구독 및 해당 ID를 얻습니다. 구독 ID는 두 번째 열입니다. ‘컨시어지 구독’을 검색하고 두 번째 열에 있는 값을 복사합니다. aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e와 비슷하게 보입니다.
Get-AzSubscription
다음 명령을 실행하여 {Your subscription ID}를 이전 단계에서 복사한 것으로 바꿉니다. 이 명령은 활성 구독을 컨시어지 구독으로 변경합니다.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
다음 명령을 실행하여 기본 리소스 그룹이 샌드박스 환경에서 생성된 리소스 그룹이 되도록 합니다. 이렇게 하면 이 연습의 나머지 Azure PowerShell 명령에서 해당 매개 변수를 생략할 수 있습니다.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Azure에 템플릿 배포
다음 명령을 실행하여 템플릿을 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로 이동하여 샌드박스 구독에 있는지 확인합니다. 확인하려면 페이지의 오른쪽 위에 있는 아바타를 선택합니다. 디렉터리 전환을 선택합니다. 목록에서 Microsoft Learn 샌드박스 디렉터리를 선택합니다.
리소스 메뉴에서 리소스 그룹을 선택합니다.
리소스 그룹
[샌드박스 리소스 그룹 이름] 을 선택합니다.개요 창에 성공한 배포 하나가 표시됩니다.
‘1 성공’을 선택하여 배포 세부 정보를 확인합니다.
blanktemplate
을 선택하여 배포된 리소스를 확인합니다. 이 경우 템플릿에서 리소스를 아직 지정하지 않았기 때문에 리소스가 비어 있습니다.배포를 다시 확인할 수 있도록 브라우저에서 페이지를 열어 둡니다.
ARM 템플릿에 리소스 추가
이전 작업에서는 빈 템플릿을 만들고 배포하는 방법을 알아보았습니다. 이제 실제 리소스를 배포할 준비가 되었습니다. 이 작업에서는 Visual Studio Code용 Azure Resource Manager 도구 확장의 코드 조각을 사용하여 ARM 템플릿에 Azure 스토리지 계정 리소스를 추가합니다.
Visual Studio Code의 azuredeploy.json 파일에서 resources 블록
"resources":[],
의 괄호 안에 커서를 놓습니다.괄호 안에 storage를 입력합니다. 관련된 코드 조각 목록이 표시됩니다. arm-storage를 선택합니다.
파일은 다음과 같습니다.
{ "$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": "2023-05-01", "name": "storageaccount1", "tags": { "displayName": "storageaccount1" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "Premium_LRS" } } ], "outputs": {} }
편집해야 하는 값은 파일의 새 섹션에서 강조 표시되며 Tab 키를 눌러 탐색할 수 있습니다.
tags
및location
특성이 입력되어 있는지 확인합니다.location
특성은 함수를 사용하여 리소스 위치를 리소스 그룹의 위치로 설정합니다. 다음 모듈에서 태그 및 함수에 대해 알아봅니다.resource name 및 displayName 값을 고유한 값으로 변경합니다(예: learnexercise12321). 해당 이름은 모든 Azure에서 고유해야 하므로 고유한 이름을 선택하세요.
sku name 값을 Premium_LRS에서 Standard_LRS로 변경합니다. tier 값을 Standard로 변경합니다. Visual Studio Code는 IntelliSense에서 특성 값의 적절한 선택 항목을 제공합니다. 따옴표를 포함한 기본값을 삭제하고 따옴표를 입력하여 해당 작업을 확인합니다.
리소스 위치는 리소스가 배포된 리소스 그룹과 동일한 위치로 설정됩니다. 기본값을 그대로 둡니다.
파일을 저장합니다.
업데이트된 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
배포 확인
배포가 완료되면 브라우저의 Azure Portal로 돌아갑니다. 리소스 그룹으로 이동하고 이제 두 개의 성공한 배포가 있는지 확인합니다. 해당 링크를 선택합니다.
두 배포가 모두 목록에 있습니다.
addstorage를 선택합니다.
스토리지 계정이 배포됩니다.