자습서: 종속 리소스가 있는 Azure Resource Manager 템플릿 만들기Tutorial: Create Azure Resource Manager templates with dependent resources

Azure Resource Manager 템플릿을 만들어서 여러 리소스를 배포하고 배포 순서를 구성하는 방법을 알아봅니다.Learn how to create an Azure Resource Manager template to deploy multiple resources and configure the deployment order. 템플릿을 만든 후에는 Azure Portal에서 Cloud shell을 사용하여 템플릿을 배포합니다.After you create the template, you deploy the template using the Cloud shell from the Azure portal.

이 자습서에서는 스토리지 계정, 가상 머신, 가상 네트워크 및 몇 가지 다른 종속 리소스를 만듭니다.In this tutorial, you create a storage account, a virtual machine, a virtual network, and some other dependent resources. 일부 리소스는 다른 리소스가 존재하기 전에는 배포할 수 없습니다.Some of the resources cannot be deployed until another resource exists. 예를 들어 스토리지 계정 및 네트워크 인터페이스가 없으면 가상 머신을 만들 수 없습니다.For example, you can't create the virtual machine until its storage account and network interface exist. 한 리소스를 다른 리소스의 종속 리소스로 만들어서 이 관계를 정의할 수 있습니다.You define this relationship by making one resource as dependent on the other resources. Resource Manager는 리소스 간의 종속성을 평가한 후 종속된 순서에 따라 리소스를 배포합니다.Resource Manager evaluates the dependencies between resources, and deploys them in their dependent order. 리소스가 서로 종속되어 있지 않은 경우 Resource Manager는 이를 병렬로 배포합니다.When resources aren't dependent on each other, Resource Manager deploys them in parallel. 자세한 내용은 Azure Resource Manager 템플릿에서 리소스를 배포하는 순서 정의를 참조하세요.For more information, see Define the order for deploying resources in Azure Resource Manager Templates.

리소스 관리자 템플릿 종속 리소스 배포 순서 다이어그램

이 자습서에서 다루는 작업은 다음과 같습니다.This tutorial covers the following tasks:

  • 빠른 시작 템플릿 열기Open a QuickStart template
  • 템플릿 탐색Explore the template
  • 템플릿 배포Deploy the template

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.If you don't have an Azure subscription, create a free account before you begin.

필수 조건Prerequisites

이 문서를 완료하려면 다음이 필요합니다.To complete this article, you need:

빠른 시작 템플릿 열기Open a Quickstart template

Azure 퀵 스타트 템플릿은 Resource Manager 템플릿용 저장소입니다.Azure QuickStart Templates is a repository for Resource Manager templates. 템플릿을 처음부터 새로 만드는 대신 샘플 템플릿을 찾아서 사용자 지정할 수 있습니다.Instead of creating a template from scratch, you can find a sample template and customize it. 이 자습서에 사용되는 템플릿의 이름은 Deploy a simple Windows VM입니다.The template used in this tutorial is called Deploy a simple Windows VM.

  1. Visual Studio Code에서 파일>파일 열기를 차례로 선택합니다.From Visual Studio Code, select File>Open File.

  2. 파일 이름에서 다음 URL을 붙여넣습니다.In File name, paste the following URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json
    
  3. 열기를 선택하여 파일을 엽니다.Select Open to open the file.

  4. 파일>다른 이름으로 저장을 선택하여 파일 복사본을 로컬 컴퓨터에 azuredeploy.json이라는 이름으로 저장합니다.Select File>Save As to save a copy of the file to your local computer with the name azuredeploy.json.

템플릿 탐색Explore the template

이 섹션의 템플릿을 탐색하는 경우 다음 질문에 대답해 보세요.When you explore the template in this section, try to answer these questions:

  • 이 템플릿에 정의되는 Azure 리소스는 얼마나 되나요?How many Azure resources defined in this template?
  • 리소스 중 하나는 Azure Storage 계정입니다.One of the resources is an Azure storage account. 마지막 자습서에서 사용한 것과 비슷한 같은 정의인가요?Does the definition look like the one used in the last tutorial?
  • 이 템플릿에 정의된 리소스에 대한 템플릿 참조를 찾을 수 있나요?Can you find the template references for the resources defined in this template?
  • 리소스의 종속성을 찾을 수 있나요?Can you find the dependencies of the resources?
  1. Visual Studio Code에서 리소스 내부에 첫 번째 수준 요소와 두 번째 수준 요소만 표시될 때까지 요소를 축소합니다.From Visual Studio Code, collapse the elements until you only see the first-level elements and the second-level elements inside resources:

    Visual Studio Code Azure Resource Manager 템플릿

    템플릿에 5개 리소스가 정의되어 있습니다.There are five resources defined by the template:

    • Microsoft.Storage/storageAccounts.Microsoft.Storage/storageAccounts. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/publicIPAddresses.Microsoft.Network/publicIPAddresses. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/virtualNetworks.Microsoft.Network/virtualNetworks. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/networkInterfaces.Microsoft.Network/networkInterfaces. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Compute/virtualMachines.Microsoft.Compute/virtualMachines. 템플릿 참조를 참조하세요.See the template reference.

      템플릿을 사용자 지정하기 전에 템플릿의 몇 가지 기본적인 내용을 이해하면 유용합니다.It is helpful to get some basic understanding of the template before customizing it.

  2. 첫 번째 리소스를 확장합니다.Expand the first resource. 스토리지 계정입니다.It is a storage account. 리소스 정의를 템플릿 참조와 비교합니다.Compare the resource definition to the template reference.

    Visual Studio Code Azure Resource Manager 템플릿 - 스토리지 계정 정의

  3. 두 번째 리소스를 확장합니다.Expand the second resource. 리소스 종류는 Microsoft.Network/publicIPAddresses입니다.The resource type is Microsoft.Network/publicIPAddresses. 리소스 정의를 템플릿 참조와 비교합니다.Compare the resource definition to the template reference.

    Visual Studio Code Azure Resource Manager 템플릿 - 공용 IP 주소 정의

  4. 네 번째 리소스를 확장합니다.Expand the fourth resource. 리소스 종류는 Microsoft.Network/networkInterfaces입니다.The resource type is Microsoft.Network/networkInterfaces:

    Visual Studio Code Azure Resource Manager 템플릿 dependson

    dependsOn 요소를 사용하면 한 리소스를 하나 이상의 리소스에 종속된 것으로 정의할 수 있습니다.The dependsOn element enables you to define one resource as a dependent on one or more resources. 이 리소스는 다음과 같은 다른 두 리소스에 종속됩니다.The resource depends on two other resources:

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  5. 다섯 번째 리소스를 확장합니다.Expand the fifth resource. 이 리소스는 가상 머신입니다.This resource is a virtual machine. 이 리소스는 다음과 같은 두 리소스에 종속됩니다.It depends on two other resources:

    • Microsoft.Storage/storageAccounts
    • Microsoft.Network/networkInterfaces

다음 다이어그램은 이 템플릿의 리소스 및 종속성 정보를 보여줍니다.The following diagram illustrates the resources and the dependency information for this template:

Visual Studio Code Azure Resource Manager 템플릿 종속성 다이어그램

종속성을 지정하면 Resource Manager가 솔루션을 효율적으로 배포합니다.By specifying the dependencies, Resource Manager efficiently deploys the solution. 종속성이 없기 때문에 스토리지 계정, 공용 IP 주소 및 가상 네트워크가 병렬로 배포됩니다.It deploys the storage account, public IP address, and virtual network in parallel because they have no dependencies. 공용 IP 주소 및 가상 네트워크가 배포된 후에는 네트워크 인터페이스가 생성됩니다.After the public IP address and virtual network are deployed, the network interface is created. 다른 모든 리소스가 배포되면 Resource Manager는 가상 머신을 배포합니다.When all other resources are deployed, Resource Manager deploys the virtual machine.

템플릿 배포Deploy the template

참고

이 문서는 새 Azure PowerShell Az 모듈을 사용하도록 업데이트되었습니다.This article has been updated to use the new Azure PowerShell Az module. AzureRM 모듈은 적어도 2020년 12월까지 버그 수정을 수신할 예정이므로 계속 사용하셔도 됩니다.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. 새 Az 모듈 및 AzureRM 호환성에 대한 자세한 내용은 새 Azure PowerShell Az 모듈 소개를 참조하세요.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az 모듈 설치 지침은 Azure PowerShell 설치를 참조하세요.For Az module installation instructions, see Install Azure PowerShell.

템플릿을 배포하는 방법에는 여러 가지가 있습니다.There are many methods for deploying templates. 이 자습서에서는 Azure Portal에서 Cloud Shell을 사용합니다.In this tutorial, you use Cloud Shell from the Azure portal.

  1. Cloud Shell에 로그인합니다.Sign in to the Cloud Shell.

  2. Cloud shell의 왼쪽 위 모서리에서 PowerShell을 선택한 다음, 확인을 선택합니다.Select PowerShell from the upper left corner of the Cloud shell, and then select Confirm. 이 자습서에서는 PowerShell을 사용합니다.You use PowerShell in this tutorial.

  3. Cloud shell에서 파일 업로드를 선택합니다.Select Upload file from the Cloud shell:

    Azure Portal - Cloud Shell 파일 업로드

  4. 자습서의 앞부분에서 저장한 템플릿을 선택합니다.Select the template you saved earlier in the tutorial. 기본 이름은 azuredeploy.json입니다.The default name is azuredeploy.json. 이름이 같은 파일이 있는 경우 알림 없이 기존 파일을 덮어씁니다.If you have a file with the same file name, the old file is overwritten without any notification.

    필요에 따라 ls $HOME 명령 및 cat $HOME/azuredeploy.json 명령을 사용하여 파일이 성공적으로 업로드되었는지 확인할 수 있습니다.You can optionally use the ls $HOME command and the cat $HOME/azuredeploy.json command to verify the files areis uploaded successfully.

  5. Cloud shell에서 다음 PowerShell 명령을 실행합니다.From the Cloud shell, run the following PowerShell commands. 보안을 강화하려면 가상 머신 관리자 계정에 생성된 암호를 사용합니다.To increase security, use a generated password for the virtual machine administrator account. 필수 조건을 참조하세요.See Prerequisites.

    $resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
    $location = Read-Host -Prompt "Enter the location (i.e. centralus)"
    $adminUsername = Read-Host -Prompt "Enter the virtual machine admin username"
    $adminPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString
    $dnsLabelPrefix = Read-Host -Prompt "Enter the DNS label prefix"
    
    New-AzResourceGroup -Name $resourceGroupName -Location "$location"
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -adminUsername $adminUsername `
        -adminPassword $adminPassword `
        -dnsLabelPrefix $dnsLabelPrefix `
        -TemplateFile "$HOME/azuredeploy.json"
    
  6. 다음 PowerShell 명령을 실행하여 새로 만든 가상 머신을 나열합니다.Run the following PowerShell command to list the newly created virtual machine:

    $resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
    Get-AzVM -Name SimpleWinVM -ResourceGroupName $resourceGroupName
    

    가상 머신 이름은 템플릿 내에서 SimpleWinVM으로 하드 코딩됩니다.The virtual machine name is hard-coded as SimpleWinVM inside the template.

  7. 가상 머신에 RDP를 수행하여 가상 머신이 성공적으로 생성되었는지 확인합니다.RDP to the virtual machine to verify the virtual machine has been created successfully.

리소스 정리Clean up resources

Azure 리소스가 더 이상 필요하지 않은 경우 리소스 그룹을 삭제하여 배포한 리소스를 정리합니다.When the Azure resources are no longer needed, clean up the resources you deployed by deleting the resource group.

  1. Azure Portal의 왼쪽 메뉴에서 리소스 그룹을 선택합니다.From the Azure portal, select Resource group from the left menu.
  2. 이름으로 필터링 필드에서 리소스 그룹 이름을 입력합니다.Enter the resource group name in the Filter by name field.
  3. 해당 리소스 그룹 이름을 선택합니다.Select the resource group name. 리소스 그룹에 총 6개의 리소스가 표시됩니다.You shall see a total of six resources in the resource group.
  4. 위쪽 메뉴에서 리소스 그룹 삭제를 선택합니다.Select Delete resource group from the top menu.

다음 단계Next steps

이 자습서에서는 가상 머신, 가상 네트워크 및 종속 리소스를 만드는 템플릿을 개발하고 배포했습니다.In this tutorial, you developed and deployed a template to create a virtual machine, a virtual network, and the dependent resources. 조건에 따라 Azure 리소스를 배포하는 방법을 배우려면 다음을 참조하세요.To learn how to deploy Azure resources based on conditions, see: