자습서: Azure Deployment Manager에서 Resource Manager 템플릿 사용(공개 미리 보기)Tutorial: Use Azure Deployment Manager with Resource Manager templates (Public preview)

Azure Deployment Manager를 사용하여 여러 지역에 애플리케이션을 배포하는 방법에 대해 알아봅니다.Learn how to use Azure Deployment Manager to deploy your applications across multiple regions. 보다 빠른 방법을 원하는 경우 Azure Deployment Manager 빠른 시작이 구독에 필요한 구성을 만들고 아티팩트를 사용자 지정하여 여러 지역에 애플리케이션을 배포합니다.If you prefer a faster approach, Azure Deployment Manager quickstart creates the required configurations in your subscription and customizes the artifacts to deploy an application across multiple regions. 빠른 시작은 이 자습서에서와 동일한 작업을 수행합니다.The quickstart performs the same tasks as it does in this tutorial.

Deployment Manager를 사용하려면 두 개의 템플릿을 만들어야 합니다.To use Deployment Manager, you need to create two templates:

  • 토폴로지 템플릿: 응용 프로그램을 구성하는 Azure 리소스와 이러한 리소스를 배포할 위치를 설명합니다.A topology template: describes the Azure resources the make up your applications and where to deploy them.
  • 롤아웃 템플릿: 애플리케이션을 배포할 때 수행하는 단계를 설명합니다.A rollout template: describes the steps to take when deploying your applications.

중요

구독이 새 Azure 기능을 테스트하기 위한 카나리아로 표시된 경우 Azure Deployment Manager를 사용하여 카나리아 지역에 배포하는 것만 가능합니다.If your subscription is marked for Canary to test out new Azure features, you can only use Azure Deployment Manager to deploy to the Canary regions. 

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

  • 시나리오 이해Understand the scenario
  • 자습서 파일 다운로드Download the tutorial files
  • 아티팩트 준비Prepare the artifacts
  • 사용자 정의 관리 ID 만들기Create the user-defined managed identity
  • 서비스 토폴로지 템플릿 ID 만들기Create the service topology template
  • 롤아웃 템플릿 만들기Create the rollout template
  • 템플릿 배포Deploy the templates
  • 배포 확인Verify the deployment
  • 최신 버전 배포Deploy the newer version
  • 리소스 정리Clean up resources

추가 리소스:Additional resources:

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

참고

이 문서는 새 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.

필수 조건Prerequisites

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

  • Azure Resource Manager 템플릿을 개발한 경험이 있어야 합니다.Some experience with developing Azure Resource Manager templates.

  • Azure PowerShell.Azure PowerShell. 자세한 내용은 Azure PowerShell 시작을 참조하세요.For more information, see Get started with Azure PowerShell.

  • Deployment Manager cmdlet이 있어야 합니다.Deployment Manager cmdlets. 이러한 시험판 cmdlet을 설치하려면 최신 버전의 PowerShellGet이 필요합니다.To install these prerelease cmdlets, you need the latest version of PowerShellGet. 최신 버전을 가져오려면 PowerShellGet 설치를 참조하세요.To get the latest version, see Installing PowerShellGet. PowerShellGet이 설치되면 PowerShell 창을 닫습니다.After installing PowerShellGet, close your PowerShell window. 새로운 관리자 권한 PowerShell 창을 열고, 다음 명령을 사용합니다.Open a new elevated PowerShell window, and use the following command:

    Install-Module -Name Az.DeploymentManager
    
  • Microsoft Azure Storage Explorer가 있어야 합니다.Microsoft Azure Storage Explorer. Azure Storage Explorer는 필요하지 않지만 작업을 더 쉽게 수행할 수 있습니다.Azure Storage Explorer is not required, but it makes things easier.

시나리오 이해Understand the scenario

서비스 토폴로지 템플릿은 서비스를 구성하는 Azure 리소스와 이러한 리소스를 배포할 위치를 설명합니다.The service topology template describes the Azure resources the make up your service and where to deploy them. 서비스 토폴로지 정의에 구성되는 계층 구조는 다음과 같습니다.The service topology definition has the following hierarchy:

  • 서비스 토폴로지Service topology
    • ServicesServices
      • 서비스 단위Service units

다음 다이어그램에서는 이 자습서에서 사용되는 서비스 토폴로지를 보여 줍니다.The following diagram illustrates the service topology used in this tutorial:

Azure Deployment Manager 자습서 시나리오 다이어그램

미국 서부 및 동부 지역에 할당된 두 가지 서비스가 있습니다.There are two services allocated in the west U.S. and the east U.S. locations. 각 서비스에는 웹 애플리케이션 프런트 엔드와 저장소 계정 백 엔드의 두 가지 서비스 단위가 있습니다.Each service has two service units - a web application frontend and a storage account for the backend. 서비스 단위 정의에는 웹 애플리케이션 및 저장소 계정을 만들기 위한 템플릿 및 매개 변수 파일에 대한 링크가 포함됩니다.The service unit definitions contain links to the template and parameter files for creating the web applications and the storage accounts.

자습서 파일 다운로드Download the tutorial files

  1. 이 자습서에서 사용되는 템플릿 및 아티팩트를 다운로드합니다.Download the templates and the artifacts used by this tutorial.
  2. 대상 위치의 컴퓨터에 파일의 압축을 풉니다.Unzip the files to your location computer.

루트 폴더 아래에 다음 두 개의 폴더가 있습니다.Under the root folder, there are two folders:

  • ADMTemplates: 다음과 같은 Deployment Manager 템플릿이 포함되어 있습니다.ADMTemplates: contains the Deployment Manager templates, that include:
    • CreateADMServiceTopology.jsonCreateADMServiceTopology.json
    • CreateADMServiceTopology.Parameters.jsonCreateADMServiceTopology.Parameters.json
    • CreateADMRollout.jsonCreateADMRollout.json
    • CreateADMRollout.Parameters.jsonCreateADMRollout.Parameters.json
  • ArtifactStore: 템플릿 아티팩트와 이진 아티팩트가 모두 포함되어 있습니다.ArtifactStore: contains both the template artifacts and the binary artifacts. 아티팩트 준비를 참조하세요.See Prepare the artifacts.

두 집합의 템플릿이 있습니다.Note there are two sets of templates. 한 집합은 서비스 토폴로지 및 롤아웃을 배포하는 데 사용되는 Deployment Manager 템플릿이며, 다른 하나의 집합은 서비스 단위에서 호출되어 웹 서비스와 저장소 계정을 만듭니다.One set is the Deployment Manager templates that are used to deploy the service topology and the rollout; the other set is called from the service units to create web services and storage accounts.

아티팩트 준비Prepare the artifacts

ArtifactStore 다운로드 폴더에는 다음 두 개의 폴더가 있습니다.The ArtifactStore folder from the download contains two folders:

Azure Deployment Manager 자습서 아티팩트 소스 다이어그램

  • templates 폴더: 템플릿 아티팩트가 포함되어 있습니다.The templates folder: contains the template artifacts. 1.0.0.01.0.0.1은 이진 아티팩트의 두 버전을 나타냅니다.1.0.0.0 and 1.0.0.1 represent the two versions of the binary artifacts. 각 버전 내에는 각 서비스(Service East U.S. 및 Service West U.S.)에 대한 폴더가 있습니다.Within each version, there is a folder for each service (Service East U.S. and Service West U.S.). 각 서비스에는 저장소 계정을 만들기 위한 템플릿과 매개 변수 파일의 쌍과 웹 애플리케이션을 만들기 위한 또 다른 쌍이 있습니다.Each service has a pair of template and parameter files for creating a storage account, and another pair for creating a web application. 웹 애플리케이션 템플릿은 웹 애플리케이션 파일이 포함된 압축 패키지를 호출합니다.The web application template calls a compressed package, which contains the web application files. 압축된 파일은 binaries 폴더에 저장된 이진 아티팩트입니다.The compressed file is a binary artifact stored in the binaries folder.
  • binaries 폴더: 이진 아티팩트가 포함되어 있습니다.The binaries folder: contains the binary artifacts. 1.0.0.01.0.0.1은 이진 아티팩트의 두 버전을 나타냅니다.1.0.0.0 and 1.0.0.1 represent the two versions of the binary artifacts. 각 버전에는 미국 서부 지역과 동부 지역에 웹 애플리케이션을 만들기 위한 하나의 Zip 파일이 각각 있습니다.Within each version, there is one zip file for creating the web application in the west U.S. location, and the other zip file to create the web application in the east U.S. location.

두 버전(1.0.0.0 및 1.0.0.1)은 수정 버전 배포에 해당하는 것입니다.The two versions (1.0.0.0 and 1.0.0.1) are for the revision deployment. 템플릿 아티팩트와 이진 아티팩트에 모두 두 버전이 있지만, 두 버전 간에는 이진 아티팩트만 다릅니다.Even though both the template artifacts and the binary artifacts have two versions, only the binary artifacts are different between the two versions. 실제로 이진 아티팩트는 템플릿 아티팩트에 비해 더 자주 업데이트됩니다.In practice, binary artifacts are updated more frequently comparing to template artifacts.

  1. 텍스트 편집기에서 \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateStorageAccount.json을 엽니다.Open \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateStorageAccount.json in a text editor. 저장소 계정을 만들기 위한 기본 템플릿입니다.It is a basic template for creating a storage account.

  2. \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplication.json을 엽니다.Open \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplication.json.

    Azure Deployment Manager 자습서에서는 웹 애플리케이션 템플릿을 만듭니다.

    템플릿에서 웹 애플리케이션의 파일이 포함된 배포 패키지를 호출합니다.The template calls a deploy package, which contains the files of the web application. 이 자습서에서 압축된 패키지에는 index.html 파일만 포함되어 있습니다.In this tutorial, the compressed package only contains an index.html file.

  3. \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplicationParameters.json을 엽니다.Open \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplicationParameters.json.

    Azure Deployment Manager 자습서에서는 웹 애플리케이션 템플릿 매개 변수인 containerRoot를 만듭니다.

    deployPackageUri의 값은 배포 패키지의 경로입니다.The value of deployPackageUri is the path to the deployment package. 매개 변수에는 $containerRoot 변수가 포함되어 있습니다.The parameter contains a $containerRoot variable. $containerRoot의 값은 아티팩트 소스 SAS 위치, 아티팩트 루트 및 deployPackageUri를 연결하여 롤아웃 템플릿에 제공됩니다.The value of $containerRoot is provided in the rollout template by concatenating the artifact source SAS location, artifact root, and deployPackageUri.

  4. \ArtifactStore\binaries\1.0.0.0\helloWorldWebAppWUS.zip\index.html을 엽니다.Open \ArtifactStore\binaries\1.0.0.0\helloWorldWebAppWUS.zip\index.html.

    <html>
      <head>
        <title>Azure Deployment Manager tutorial</title>
      </head>
      <body>
        <p>Hello world from west U.S.!</p>
        <p>Version 1.0.0.0</p>
      </body>
    </html>
    

    이 html에서는 위치와 버전 정보를 보여 줍니다.The html shows the location and the version information. 1.0.0.1 폴더의 이진 파일에서 "Version 1.0.0.1"을 표시합니다.The binary file in the 1.0.0.1 folder shows "Version 1.0.0.1". 서비스가 배포되면 이러한 페이지를 찾아볼 수 있습니다.After you deploy the service, you can browse to these pages.

  5. 다른 아티팩트 파일을 확인합니다.Check out other artifact files. 그러면 시나리오를 더 잘 이해할 수 있습니다.It helps you to understand the scenario better.

템플릿 아티팩트는 서비스 토폴로지 템플릿에서 사용되며, 이진 아티팩트는 롤아웃 템플릿에서 사용됩니다.Template artifacts are used by the service topology template, and binary artifacts are used by the rollout template. 토폴로지 템플릿과 롤아웃 템플릿은 모두 Resource Manager를 템플릿 및 배포에 사용되는 이진 아티팩트로 가리키는 데 사용되는 리소스인 아티팩트 소스 Azure 리소스를 정의합니다.Both the topology template and the rollout template define an artifact source Azure resource, which is a resource used to point Resource Manager to the template and binary artifacts that are used in the deployment. 자습서를 간소화하기 위해 하나의 저장소 계정을 사용하여 템플릿 아티팩트와 이진 아티팩트를 모두 저장합니다.To simplify the tutorial, one storage account is used to store both the template artifacts and the binary artifacts. 두 아티팩트 소스는 모두 동일한 저장소 계정을 가리킵니다.Both artifact sources point to the same storage account.

  1. Azure 저장소 계정 만들기Create an Azure storage account. 지침은 빠른 시작: Azure Portal을 사용하여 Blob 업로드, 다운로드 및 나열을 참조하세요.For the instructions, see Quickstart: Upload, download, and list blobs using the Azure portal.

  2. Blob 컨테이너를 저장소 계정에 만듭니다.Create a blob container in the storage account.

  3. 두 폴더(binaries 및 templates) 및 두 폴더의 콘텐츠를 Blob 컨테이너에 복사합니다.Copy the two folders (binaries and templates) and the content of the two folders to the blob container. Microsoft Azure Storage Explorer는 끌어서 놓기 기능을 지원합니다.Microsoft Azure Storage Explorer supports the drag and drop feature.

  4. 다음 지침에 따라 컨테이너의 SAS 위치를 가져옵니다.Get the SAS location of the container using the following instructions:

    1. Azure Storage Explorer에서 Blob 컨테이너로 이동합니다.From Azure Storage Explorer, navigate to the blob container.
    2. 왼쪽 창에서 Blob 컨테이너를 마우스 오른쪽 단추로 클릭한 다음, 공유 액세스 서명 가져오기를 선택합니다.Right-click the blob container from the left pane, and then select Get Shared Access Signature.
    3. 시작 시간만료 시간을 구성합니다.Configure Start time and Expiry time.
    4. 만들기를 선택합니다.Select Create.
    5. URL 복사본을 만듭니다.Make a copy of the URL. 이 URL은 두 매개 변수 파일(토폴로지 매개 변수 파일롤아웃 매개 변수 파일)의 필드를 채우는 데 필요합니다.This URL is needed to populate a field in the two parameter files, topology parameters file and rollout parameters file.

사용자가 할당한 관리 ID 만들기Create the user-assigned managed identity

이 자습서의 뒷부분에서 롤아웃을 배포합니다.Later in the tutorial, you deploy a rollout. 사용자가 할당한 관리 ID는 배포 작업(예: 웹 애플리케이션 및 저장소 계정 배포)을 수행하는 데 필요합니다.A user-assigned managed identity is needed to perform the deployment actions (for example, deploy the web applications and the storage account). 이 ID에는 서비스를 배포할 Azure 구독에 대한 액세스 권한이 부여되어야 하며 아티팩트 배포를 수행할 수 있는 충분한 권한이 있어야 합니다.This identity must be granted access to the Azure subscription you're deploying the service to, and have sufficient permission to complete the artifact deployment.

사용자가 할당한 관리 ID를 만들고 구독에 대한 액세스 제어를 구성해야 합니다.You need to create a user-assigned managed identity and configure the access control for your subscription.

중요

사용자가 할당한 관리 ID는 롤아웃과 동일한 위치에 있어야 합니다.The user-assigned managed identity must be in the same location as the rollout. 현재 롤아웃을 포함한 Deployment Manager 리소스는 미국 중부 또는 동부 2 지역에서만 만들 수 있습니다.Currently, the Deployment Manager resources, including rollout, can only be created in either Central US or East US 2. 하지만 이는 Deployment Manager 리소스(예: 서비스 토폴로지, 서비스, 서비스 단위, 롤아웃 및 단계)에만 해당합니다.However, this is only true for the Deployment Manager resources (such as the service topology, services, service units, rollout, and steps). 대상 리소스는 지원되는 모든 Azure 지역에 배포될 수 있습니다.Your target resources can be deployed to any supported Azure region. 이 자습서에서 예를 들면 Deployment Manager 리소스는 미국 중부에 배포되지만 서비스는 미국 동부와 미국 서부에 배포됩니다.In this tutorial, for example, the Deployment Manager resources are deployed to Central US, but the services are deployed to East US and West US. 이 제한 사항은 나중에 변경될 예정입니다.This restriction will be lifted in the future.

  1. Azure Portal에 로그인합니다.Sign in to the Azure portal.

  2. 사용자가 할당한 관리 ID를 만듭니다.Create a user-assigned managed identity.

  3. 포털의 왼쪽 메뉴에서 구독을 선택한 다음, 구독을 선택합니다.From the portal, select Subscriptions from the left menu, and then select your subscription.

  4. 액세스 제어(IAM) , 역할 할당 추가를 차례로 선택합니다.Select Access control (IAM), and then select Add role assignment.

  5. 다음 값을 입력하거나 선택합니다.Enter or select the following values:

    Azure Deployment Manager 자습서 - 사용자가 할당한 관리 ID 액세스 제어

    • 역할: 아티팩트 배포(웹 응용 프로그램 및 저장소 계정)를 수행할 수 있는 충분한 권한을 부여합니다.Role: give sufficient permission to complete the artifact deployment (the web applications and the storage accounts). 이 자습서에서는 기여자를 선택합니다.Select Contributor in this tutorial. 실제로는 최소 권한으로 제한하는 것이 좋습니다.In practice, you want to restrict the permissions to the minimum.
    • 할당된 액세스 권한: 사용자가 할당한 관리 ID를 선택합니다.Assigned access to: select User Assigned Managed Identity.
    • 자습서 앞부분에서 만든 사용자가 할당한 관리 ID를 선택합니다.Select the user-assigned managed identity you created earlier in the tutorial.
  6. 저장을 선택합니다.Select Save.

서비스 토폴로지 템플릿 ID 만들기Create the service topology template

\ADMTemplates\CreateADMServiceTopology.json을 엽니다.Open \ADMTemplates\CreateADMServiceTopology.json.

parametersThe parameters

템플릿에 포함되는 매개 변수는 다음과 같습니다.The template contains the following parameters:

Azure Deployment Manager 자습서 - 토폴로지 템플릿 매개 변수

  • namePrefix: 이 접두사는 Deployment Manager 리소스에 대한 이름을 만드는 데 사용됩니다.namePrefix: This prefix is used to create the names for the Deployment Manager resources. 예를 들어 "jdoe" 접두사를 사용하는 경우 서비스 토폴로지 이름은 jdoe ServiceTopology입니다.For example, using the "jdoe" prefix, the service topology name is jdoeServiceTopology. 리소스 이름은 템플릿의 variables 섹션에 정의됩니다.The resource names are defined in the variables section of this template.
  • azureResourcelocation: 이 자습서를 간소화하기 위해 달리 지정하지 않는 한 모든 리소스에서 이 위치를 공유합니다.azureResourcelocation: To simplify the tutorial, all resources share this location unless it is specified otherwise. 현재 Azure Deployment Manager 리소스는 미국 중부 또는 미국 동부 2에서만 만들 수 있습니다.Currently, Azure Deployment Manager resources can only be created in either Central US or East US 2.
  • artifactSourceSASLocation: 서비스 단위 템플릿 및 매개 변수 파일이 배포를 위해 저장되는 Blob 컨테이너에 대한 SAS URI입니다.artifactSourceSASLocation: The SAS URI to the Blob container where service unit template and parameters files are stored for deployment. 아티팩트 준비를 참조하세요.See Prepare the artifacts.
  • templateArtifactRoot: 템플릿과 매개 변수가 저장되는 Blob 컨테이너의 오프셋 경로입니다.templateArtifactRoot: The offset path from the Blob container where the templates and parameters are stored. 기본값은 templates/1.0.0.0입니다.The default value is templates/1.0.0.0. 아티팩트 준비에서 설명한 폴더 구조를 변경하려는 경우가 아니면 이 값을 변경하지 마세요.Don't change this value unless you want to change the folder structure explained in Prepare the artifacts. 이 자습서에서는 상대 경로를 사용합니다.Relative paths are used in this tutorial. 전체 경로는 artifactSourceSASLocation, templateArtifactRoottemplateArtifactSourceRelativePath(또는 parametersArtifactSourceRelativePath)를 연결하여 생성됩니다.The full path is constructed by concatenating artifactSourceSASLocation, templateArtifactRoot, and templateArtifactSourceRelativePath (or parametersArtifactSourceRelativePath).
  • targetSubscriptionID: Deployment Manager 리소스를 배포하고 요금이 청구되는 구독 ID입니다.targetSubscriptionID: The subscription ID to which the Deployment Manager resources are going to be deployed and billed. 이 자습서에서는 사용자의 구독 ID를 사용합니다.Use your subscription ID in this tutorial.

variablesThe variables

variables 섹션에서는 리소스 이름, 두 서비스 Service WUSService EUS에 대한 Azure 위치, 아티팩트 경로를 정의합니다.The variables section defines the names of the resources, the Azure locations for the two services: Service WUS and Service EUS, and the artifact paths:

Azure Deployment Manager 자습서 - 토폴로지 템플릿 변수

아티팩트 경로를 저장소 계정에 업로드한 폴더 구조와 비교합니다.Compare the artifact paths with the folder structure that you uploaded to the storage account. 아티팩트 경로는 상대 경로입니다.Notice the artifact paths are relative paths. 전체 경로는 artifactSourceSASLocation, templateArtifactRoottemplateArtifactSourceRelativePath(또는 parametersArtifactSourceRelativePath)를 연결하여 생성됩니다.The full path is constructed by concatenating artifactSourceSASLocation, templateArtifactRoot, and templateArtifactSourceRelativePath (or parametersArtifactSourceRelativePath).

resourcesThe resources

루트 수준에는 두 가지 리소스, 즉 아티팩트 소스서비스 토폴로지가 정의되어 있습니다.On the root level, there are two resources defined: an artifact source, and a service topology.

아티팩트 소스 정의는 다음과 같습니다.The artifact source definition is:

Azure Deployment Manager 자습서 - 토폴로지 템플릿 리소스 아티팩트 소스

다음 스크린샷에는 서비스 토폴로지, 서비스 및 서비스 단위 정의의 일부만 표시되어 있습니다.The following screenshot only shows some parts of the service topology, services, and service units definitions:

Azure Deployment Manager 자습서 - 토폴로지 템플릿 리소스 서비스 토폴로지

  • artifactSourceId는 아티팩트 소스 리소스를 서비스 토폴로지 리소스와 연결하는 데 사용됩니다.artifactSourceId is used to associate the artifact source resource to the service topology resource.
  • dependsOn: 모든 서비스 토폴로지 리소스가 아티팩트 소스 리소스에 따라 달라집니다.dependsOn: All the service topology resources depend on the artifact source resource.
  • artifacts는 템플릿 아티팩트를 가리킵니다.artifacts point to the template artifacts. 여기서는 상대 경로가 사용됩니다.Relative paths are used here. 전체 경로는 artifactSourceSASLocation(아티팩트 소스에서 정의됨), artifactRoot(아티팩트 소스에서 정의됨) 및 templateArtifactSourceRelativePath(또는 parametersArtifactSourceRelativePath)를 연결하여 생성됩니다.The full path is constructed by concatenating artifactSourceSASLocation (defined in the artifact source), artifactRoot (defined in the artifact source), and templateArtifactSourceRelativePath (or parametersArtifactSourceRelativePath).

토폴로지 매개 변수 파일Topology parameters file

토폴로지 템플릿에 사용되는 매개 변수 파일을 만듭니다.You create a parameters file used with the topology template.

  1. Visual Studio 코드 또는 텍스트 편집기에서 \ADMTemplates\CreateADMServiceTopology.Parameters를 엽니다.Open \ADMTemplates\CreateADMServiceTopology.Parameters in Visual Studio Code or any text editor.

  2. 매개 변수 값을 다음과 같이 채웁니다.Fill the parameter values:

    • namePrefix: 4-5자의 문자열을 입력합니다.namePrefix: Enter a string with 4-5 characters. 이 접두사는 고유한 Azure 리소스 이름을 만드는 데 사용됩니다.This prefix is used to create unique azure resource names.
    • azureResourceLocation: Azure 위치를 잘 모르는 경우 이 자습서에서는 centralus를 사용합니다.azureResourceLocation: If you are not familiar with Azure locations, use centralus in this tutorial.
    • artifactSourceSASLocation: 서비스 단위 템플릿 및 매개 변수 파일이 배포를 위해 저장되는 루트 디렉터리(Blob 컨테이너)의 SAS URI를 입력합니다.artifactSourceSASLocation: Enter the SAS URI to the root directory (the Blob container) where service unit template and parameters files are stored for deployment. 아티팩트 준비를 참조하세요.See Prepare the artifacts.
    • templateArtifactRoot: 아티팩트의 폴더 구조를 변경하지 않는 한 이 자습서에서는 templates/1.0.0.0을 사용합니다.templateArtifactRoot: Unless you change the folder structure of the artifacts, use templates/1.0.0.0 in this tutorial.
    • targetScriptionID: Azure 구독 ID를 입력합니다.targetScriptionID: Enter your Azure subscription ID.

중요

토폴로지 템플릿과 롤아웃 템플릿은 몇 가지 공통 매개 변수를 공유합니다.The topology template and the rollout template share some common parameters. 이러한 매개 변수에는 동일한 값이 있어야 합니다.These parameters must have the same values. 이러한 매개 변수로 namePrefix, azureResourceLocationartifactSourceSASLocation이 있습니다(이 자습서에서는 두 아티팩트 소스에서 동일한 저장소 계정을 공유함).These parameters are: namePrefix, azureResourceLocation, and artifactSourceSASLocation (both artifact sources share the same storage account in this tutorial).

롤아웃 템플릿 만들기Create the rollout template

\ADMTemplates\CreateADMRollout.json을 엽니다.Open \ADMTemplates\CreateADMRollout.json.

parametersThe parameters

템플릿에 포함되는 매개 변수는 다음과 같습니다.The template contains the following parameters:

Azure Deployment Manager 자습서 - 롤아웃 템플릿 매개 변수

  • namePrefix: 이 접두사는 Deployment Manager 리소스에 대한 이름을 만드는 데 사용됩니다.namePrefix: This prefix is used to create the names for the Deployment Manager resources. 예를 들어 "jdoe" 접두사를 사용하는 경우 롤아웃 이름은 jdoeRollout입니다.For example, using the "jdoe" prefix, the rollout name is jdoeRollout. 이름은 템플릿의 variables 섹션에 정의됩니다.The names are defined in the variables section of the template.
  • azureResourcelocation: 이 자습서를 간소화하기 위해 달리 지정하지 않는 한 모든 Deployment Manager 리소스에서 이 위치를 공유합니다.azureResourcelocation: To simplify the tutorial, all Deployment Manager resources share this location unless it is specified otherwise. 현재 Azure Deployment Manager 리소스는 미국 중부 또는 미국 동부 2에서만 만들 수 있습니다.Currently, Azure Deployment Manager resources can only be created in either Central US or East US 2.
  • artifactSourceSASLocation: 서비스 단위 템플릿 및 매개 변수 파일이 배포를 위해 저장되는 루트 디렉터리(Blob 컨테이너)의 SAS URI입니다.artifactSourceSASLocation: The SAS URI to the root directory (the Blob container) where service unit template and parameters files are stored for deployment. 아티팩트 준비를 참조하세요.See Prepare the artifacts.
  • binaryArtifactRoot: 기본값은 binaries/1.0.0.0입니다.binaryArtifactRoot: The default value is binaries/1.0.0.0. 아티팩트 준비에서 설명한 폴더 구조를 변경하려는 경우가 아니면 이 값을 변경하지 마세요.Don't change this value unless you want to change the folder structure explained in Prepare the artifacts. 이 자습서에서는 상대 경로를 사용합니다.Relative paths are used in this tutorial. 전체 경로는 CreateWebApplicationParameters.json에 지정된 artifactSourceSASLocation, binaryArtifactRootdeployPackageUri를 연결하여 생성됩니다.The full path is constructed by concatenating artifactSourceSASLocation, binaryArtifactRoot, and the deployPackageUri specified in the CreateWebApplicationParameters.json. 아티팩트 준비를 참조하세요.See Prepare the artifacts.
  • managedIdentityID: 배포 작업을 수행하는 사용자가 할당한 관리 ID입니다.managedIdentityID: The user-assigned managed identity that performs the deployment actions. 사용자가 할당한 관리 ID 만들기를 참조하세요.See Create the user-assigned managed identity.

variablesThe variables

variables 섹션에서는 리소스 이름을 정의합니다.The variables section defines the names of the resources. 서비스 토폴로지 이름, 서비스 이름 및 서비스 단위 이름이 토폴로지 템플릿에 정의된 이름과 일치하는지 확인합니다.Make sure the service topology name, the service names, and the service unit names match the names defined in the topology template.

Azure Deployment Manager 자습서 - 롤아웃 템플릿 변수

resourcesThe resources

루트 수준에는 세 가지 리소스, 즉 소스, 단계 및 롤아웃이 정의되어 있습니다.On the root level, there are three resources defined: an artifact source, a step, and a rollout.

아티팩트 소스 정의는 토폴로지 템플릿에 정의된 것과 동일합니다.The artifact source definition is identical to the one defined in the topology template. 자세한 내용은 서비스 토폴로지 템플릿 만들기를 참조하세요.See Create the service topology template for more information.

다음 스크린샷에서는 wait(대기) 단계 정의를 보여 줍니다.The following screenshot shows the wait step definition:

Azure Deployment Manager 자습서 - 롤아웃 템플릿 리소스 wait 단계

duration(기간)은 ISO 8601 표준을 사용합니다.The duration is using the ISO 8601 standard. PT1M(반드시 대문자임)은 1분 대기의 예입니다.PT1M (capital letters are required) is an example of a 1-minute wait.

다음 스크린샷에서는 롤아웃 정의의 일부만 보여 줍니다.The following screenshot only shows some parts of the rollout definition:

Azure Deployment Manager 자습서 - 롤아웃 템플릿 리소스 롤아웃

  • dependsOn: 롤아웃 리소스가 아티팩트 소스 리소스 및 정의된 모든 단계에 따라 달라집니다.dependsOn: The rollout resource depends on the artifact source resource, and any of the steps defined.
  • artifactSourceId: 아티팩트 소스 리소스를 롤아웃 리소스와 연결하는 데 사용됩니다.artifactSourceId: used to associate the artifact source resource to the rollout resource.
  • targetServiceTopologyId: 서비스 토폴로지 리소스를 롤아웃 리소스에 연결하는 데 사용됩니다.targetServiceTopologyId: used to associate the service topology resource to the rollout resource.
  • deploymentTargetId: 서비스 토폴로지 리소스의 서비스 단위 리소스 ID입니다.deploymentTargetId: It is the service unit resource ID of the service topology resource.
  • preDeploymentStepspostDeploymentSteps: 배포 단계가 포함됩니다.preDeploymentSteps and postDeploymentSteps: contains the rollout steps. 템플릿에서 대기 단계가 호출됩니다.In the template, a wait step is called.
  • dependsOnStepGroups: 단계 그룹 간의 종속성을 구성합니다.dependsOnStepGroups: configure the dependencies between the step groups.

롤아웃 매개 변수 파일Rollout parameters file

롤아웃 템플릿에 사용되는 매개 변수 파일을 만듭니다.You create a parameters file used with the rollout template.

  1. Visual Studio 코드 또는 임의의 텍스트 편집기에서 \ADMTemplates\CreateADMRollout.Parameters를 엽니다.Open \ADMTemplates\CreateADMRollout.Parameters in Visual Studio Code or any text editor.

  2. 매개 변수 값을 다음과 같이 채웁니다.Fill the parameter values:

    • namePrefix: 4-5자의 문자열을 입력합니다.namePrefix: Enter a string with 4-5 characters. 이 접두사는 고유한 Azure 리소스 이름을 만드는 데 사용됩니다.This prefix is used to create unique azure resource names.

    • azureResourceLocation: 현재 Azure Deployment Manager 리소스는 미국 중부 또는 미국 동부 2에서만 만들 수 있습니다.azureResourceLocation: Currently, Azure Deployment Manager resources can only be created in either Central US or East US 2.

    • artifactSourceSASLocation: 서비스 단위 템플릿 및 매개 변수 파일이 배포를 위해 저장되는 루트 디렉터리(Blob 컨테이너)의 SAS URI를 입력합니다.artifactSourceSASLocation: Enter the SAS URI to the root directory (the Blob container) where service unit template and parameters files are stored for deployment. 아티팩트 준비를 참조하세요.See Prepare the artifacts.

    • binaryArtifactRoot: 아티팩트의 폴더 구조를 변경하지 않는 한 이 자습서에서는 binaries/1.0.0.0을 사용합니다.binaryArtifactRoot: Unless you change the folder structure of the artifacts, use binaries/1.0.0.0 in this tutorial.

    • managedIdentityID: 사용자 할당 관리 ID를 입력합니다.managedIdentityID: Enter the user-assigned managed identity. 사용자가 할당한 관리 ID 만들기를 참조하세요.See Create the user-assigned managed identity. 구문은 다음과 같습니다.The syntax is:

      "/subscriptions/<SubscriptionID>/resourcegroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userassignedidentities/<ManagedIdentityName>"
      

중요

토폴로지 템플릿과 롤아웃 템플릿은 몇 가지 공통 매개 변수를 공유합니다.The topology template and the rollout template share some common parameters. 이러한 매개 변수에는 동일한 값이 있어야 합니다.These parameters must have the same values. 이러한 매개 변수로 namePrefix, azureResourceLocationartifactSourceSASLocation이 있습니다(이 자습서에서는 두 아티팩트 소스에서 동일한 저장소 계정을 공유함).These parameters are: namePrefix, azureResourceLocation, and artifactSourceSASLocation (both artifact sources share the same storage account in this tutorial).

템플릿 배포Deploy the templates

Azure PowerShell을 사용하여 템플릿을 배포할 수 있습니다.Azure PowerShell can be used to deploy the templates.

  1. 스크립트를 실행하여 서비스 토폴로지를 배포합니다.Run the script to deploy the service topology.

    $resourceGroupName = "<Enter a Resource Group Name>"
    $location = "Central US"
    $filePath = "<Enter the File Path to the Downloaded Tutorial Files>"
    
    # Create a resource group
    New-AzResourceGroup -Name $resourceGroupName -Location "$location"
    
    # Create the service topology
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -TemplateFile "$filePath\ADMTemplates\CreateADMServiceTopology.json" `
        -TemplateParameterFile "$filePath\ADMTemplates\CreateADMServiceTopology.Parameters.json"
    

    참고

    New-AzResourceGroupDeployment는 비동기 호출입니다.New-AzResourceGroupDeployment is an asynchronous call. 성공 메시지는 성공적으로 배포가 시작되었다는 의미일 뿐입니다.The success message only means the deployment has successfully begun. 배포를 확인하려면 이 절차의 2단계와 4단계를 참조하세요.To verify the deployment, see step 2 and step 4 of this procedure.

  2. Azure Portal을 사용하여 서비스 토폴로지와 밑줄 표시된 리소스가 성공적으로 만들어졌는지 확인합니다.Verify the service topology and the underlined resources have been created successfully using the Azure portal:

    Azure Deployment Manager 자습서 - 배포된 서비스 토폴로지 리소스

    리소스를 보려면 숨겨진 형식 표시를 선택해야 합니다.Show hidden types must be selected to see the resources.

  3. 롤아웃 템플릿을 배포합니다.Deploy the rollout template:

    # Create the rollout
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -TemplateFile "$filePath\ADMTemplates\CreateADMRollout.json" `
        -TemplateParameterFile "$filePath\ADMTemplates\CreateADMRollout.Parameters.json"
    
  4. 다음 PowerShell 스크립트를 사용하여 롤아웃 진행률을 확인합니다.Check the rollout progress using the following PowerShell script:

    # Get the rollout status
    $rolloutname = "<Enter the Rollout Name>" # "adm0925Rollout" is the rollout name used in this tutorial
    Get-AzDeploymentManagerRollout `
        -ResourceGroupName $resourceGroupName `
        -Name $rolloutName `
        -Verbose
    

    이 cmdlet을 실행하려면 먼저 Deployment Manager PowerShell cmdlet이 설치되어 있어야 합니다.The Deployment Manager PowerShell cmdlets must be installed before you can run this cmdlet. 필수 조건을 참조하세요.See Prerequisites. -Verbose 스위치를 사용하여 전체 출력을 볼 수 있습니다.The -Verbose switch can be used to see the whole output.

    다음 샘플에서는 실행 중 상태를 보여 줍니다.The following sample shows the running status:

    VERBOSE:
    
    Status: Succeeded
    ArtifactSourceId: /subscriptions/<AzureSubscriptionID>/resourceGroups/adm0925rg/providers/Microsoft.DeploymentManager/artifactSources/adm0925ArtifactSourceRollout
    BuildVersion: 1.0.0.0
    
    Operation Info:
        Retry Attempt: 0
        Skip Succeeded: False
        Start Time: 03/05/2019 15:26:13
        End Time: 03/05/2019 15:31:26
        Total Duration: 00:05:12
    
    Service: adm0925ServiceEUS
        TargetLocation: EastUS
        TargetSubscriptionId: <AzureSubscriptionID>
    
        ServiceUnit: adm0925ServiceEUSStorage
            TargetResourceGroup: adm0925ServiceEUSrg
    
            Step: Deploy
                Status: Succeeded
                StepGroup: stepGroup3
                Operation Info:
                    DeploymentName: 2F535084871E43E7A7A4CE7B45BE06510adm0925ServiceEUSStorage
                    CorrelationId: 0b6f030d-7348-48ae-a578-bcd6bcafe78d
                    Start Time: 03/05/2019 15:26:32
                    End Time: 03/05/2019 15:27:41
                    Total Duration: 00:01:08
                Resource Operations:
    
                    Resource Operation 1:
                    Name: txq6iwnyq5xle
                    Type: Microsoft.Storage/storageAccounts
                    ProvisioningState: Succeeded
                    StatusCode: OK
                    OperationId: 64A6E6EFEF1F7755
    
    ...
    
    ResourceGroupName       : adm0925rg
    BuildVersion            : 1.0.0.0
    ArtifactSourceId        : /subscriptions/<SubscriptionID>/resourceGroups/adm0925rg/providers/Microsoft.DeploymentManager/artifactSources/adm0925ArtifactSourceRollout
    TargetServiceTopologyId : /subscriptions/<SubscriptionID>/resourceGroups/adm0925rg/providers/Microsoft.DeploymentManager/serviceTopologies/adm0925ServiceTopology
    Status                  : Running
    TotalRetryAttempts      : 0
    OperationInfo           : Microsoft.Azure.Commands.DeploymentManager.Models.PSRolloutOperationInfo
    Services                : {adm0925ServiceEUS, adm0925ServiceWUS}
    Name                    : adm0925Rollout
    Type                    : Microsoft.DeploymentManager/rollouts
    Location                : centralus
    Id                      : /subscriptions/<SubscriptionID>/resourcegroups/adm0925rg/providers/Microsoft.DeploymentManager/rollouts/adm0925Rollout
    Tags                    :
    

    롤아웃이 성공적으로 배포되면 각 서비스마다 하나씩 둘 이상의 리소스 그룹이 표시됩니다.After the rollout is deployed successfully, you shall see two more resource groups created, one for each service.

배포 확인Verify the deployment

  1. Azure Portal을 엽니다.Open the Azure portal.
  2. 롤아웃 배포에서 만든 새 리소스 그룹 아래에 새로 만들어진 웹 응용 프로그램으로 이동합니다.Browse to the newly create web applications under the new resource groups created by the rollout deployment.
  3. 웹 브라우저에서 웹 애플리케이션을 엽니다.Open the web application in a web browser. index.html 파일에서 위치와 버전을 확인합니다.Verify the location and the version on the index.html file.

수정 버전 배포Deploy the revision

웹 애플리케이션에 대한 새 버전(1.0.0.1)이 있는 경우입니다.When you have a new version (1.0.0.1) for the web application. 다음 절차를 사용하여 웹 애플리케이션을 다시 배포할 수 있습니다.You can use the following procedure to redeploy the web application.

  1. CreateADMRollout.Parameters.json을 엽니다.Open CreateADMRollout.Parameters.json.
  2. binaryArtifactRootbinaries/1.0.0.1로 업데이트합니다.Update binaryArtifactRoot to binaries/1.0.0.1.
  3. 템플릿 배포의 지침에 따라 롤아웃을 다시 배포합니다.Redeploy the rollout as instructed in Deploy the templates.
  4. 배포 확인에서 설명한 대로 배포를 확인합니다.Verify the deployment as instructed in Verify the deployment. 웹 페이지에는 1.0.0.1 버전이 표시됩니다.The web page shall show the 1.0.0.1 version.

리소스 정리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. 이름으로 필터링 필드를 사용하여 범위를 이 자습서에서 만든 리소스 그룹으로 좁힙니다.Use the Filter by name field to narrow down the resource groups created in this tutorial. 다음과 같이 3-4개가 있습니다.There shall be 3-4:

    • <namePrefix>rg: Deployment Manager 리소스가 포함되어 있습니다.<namePrefix>rg: contains the Deployment Manager resources.
    • <namePrefix>ServiceWUSrg: ServiceWUS에서 정의한 리소스가 포함되어 있습니다.<namePrefix>ServiceWUSrg: contains the resources defined by ServiceWUS.
    • <namePrefix>ServiceEUSrg: ServiceEUS에서 정의한 리소스가 포함되어 있습니다.<namePrefix>ServiceEUSrg: contains the resources defined by ServiceEUS.
    • 사용자 정의 관리 ID에 대한 리소스 그룹The resource group for the user-defined managed identity.
  3. 해당 리소스 그룹 이름을 선택합니다.Select the resource group name.

  4. 위쪽 메뉴에서 리소스 그룹 삭제를 선택합니다.Select Delete resource group from the top menu.

  5. 마지막 두 단계를 반복하여 이 자습서에서 만든 다른 리소스 그룹을 삭제합니다.Repeat the last two steps to delete other resource groups created by this tutorial.

다음 단계Next steps

이 자습서에서는 Azure Deployment Manager를 사용하는 방법을 알아보았습니다.In this tutorial, you learned how to use Azure Deployment Manager. Azure Deployment Manager에 상태 모니터링을 통합하려면 자습서: Azure Deployment Manager에서 상태 확인 사용을 참조하세요.To integrate health monitoring in Azure Deployment Manager, see Tutorial: Use health check in Azure Deployment Manager.