본문 바로가기
Infra & Cloud/MS Azure

[MS Azure] (AZ-104) Microsoft Azure Administrator (3) : Azure Resource Manager 템플릿으로 리소스 구성

by newstellar 2021. 9. 25.
반응형
 

[MS Azure] (AZ-104) Microsoft Azure Administrator (2) : Azure Resource Manager 사용

2021.09.24 - [클라우드 컴퓨팅 (Cloud Computing)/MS Azure] - [MS Azure] (AZ-104) Microsoft Azure Administrator (1) : Azure 관리자 필수 조건 Azure Resource Manager 사용 학습 목표 1. Azure Resource Man..

newstellar.tistory.com


 

 

Azure Resource Manager 템플릿으로 리소스 구성

 

학습 목표
1. Azure 템플릿의 개요를 알 수 있습니다.
2. Azure 템플릿 스키마 구성 요소 및 매개 변수에 대해 이해할 수 있습니다.
3. Azure 빠른 시작 템플릿을 찾아 사용합니다.

 

* 본문의 내용은 Microsoft Docs > Learn > AZ-104: Azure 관리자 필수 조건 > Azure Resource Manager 템플릿으로 리소스 구성 문서를 요약한 것입니다.

 

 

 

1. Azure Resource Manager 템플릿(Template)이란?

    • Azure Resource Manager 템플릿은 배포의 모든 Resource Manager 리소스를 정확하게 정의합니다. Resource Manager 템플릿을 단일 작업으로 리소스 그룹에 배포할 수 있습니다.


    • Resource Manager 템플릿을 사용하면 배포 작업을 보다 신속하게 반복적으로 수행할 수 있습니다. 예를 들어, 포털에서 VM을 생성하고, 완료될 때까지 기다렸다가 다음 VM을 생성하는 등의 작업이 더 이상 필요하지 않습니다. Resource Manager에서 전체 배포가 처리됩니다.


    • 장점
      • 템플릿을 통한 일관성 향상
        - Resource Manager 템플릿은 사용자와 다른 사람에게 배포를 설명하는 공통 언어를 제공합니다. 템플릿 배포에 사용되는 도구나 SDK가 무엇이든 템플릿에 포함된 구조, 형식 및 식은 동일하게 유지됩니다.

      • 템플릿으로 복잡한 배포 가능
        - 템플릿을 사용하면 여러 리소스를 올바른 순서로 배포할 수 있습니다. 예를 들어 OS(운영 체제) 디스크나 네트워크 인터페이스를 만들기 전에 가상 머신을 배포하는 것은 좋지 않습니다. Resource Manager는 각 리소스와 그에 해당하는 종속 리소스를 매핑하고 종속 리소스를 먼저 생성합니다. 종속성 매핑은 배포를 올바른 순서로 수행하는 데 도움이 됩니다.

      • 템플릿으로 수동 작업 줄이기
        - 리소스를 수동으로 만들고 연결하면 시간이 많이 들고 실수를 저지르기도 쉽습니다. Resource Manager는 배포가 매번 같은 방식으로 수행되도록 보장합니다.

      • 템플릿 == 코드
        - 템플릿은 코드를 통해 요구 사항을 표현합니다. 템플릿은 다른 소프트웨어 부분처럼 공유하고 테스트하고 버전을 지정할 수 있는 IaC(Infrastructure as Code) 유형이라고 생각할 수 있습니다. 또한 템플릿은 코드이기 때문에 "증거를 추적할 수 있는 일련의 문서(paper trail)"를 만들 수 있습니다. 템플릿 코드는 배포를 문서화합니다. 대부분의 사용자는 일종의 수정 버전 제어(예: GIT) 하에 템플릿을 유지 관리합니다. 템플릿을 변경하면 수정 기록에 템플릿(및 배포)이 시간이 지나면서 어떻게 발전했는지도 기록됩니다.

      • 템플릿을 통한 재사용
        - 템플릿에는 템플릿이 실행되면 채워지는 매개 변수가 포함될 수 있습니다. 매개 변수는 사용자 이름 또는 암호, 도메인 이름 등을 정의할 수 있습니다. 템플릿 매개 변수를 통해 여러 버전의 인프라(예: 준비 및 프로덕션)를 만들 수 있습니다.

        - 단, 동일 템플릿이 두 번째로 실행되면 Azure Resource Manager는 속성에서 아무런 변경 내용이 없으면 작업을 수행하지 않습니다. (리소스가 이미 존재하여 속성이 변경된 경우에는 리소스가 업데이트되며, 리소스가 없으면 리소스를 만듦)

      • 템플릿 모듈화
        - Resource Manager 템플릿을 함께 연결하여 템플릿 자체를 모듈화할 수 있습니다. 솔루션의 일부를 정의하는 작은 템플릿을 작성하고 결합하여 완전한 시스템을 만들 수 있습니다.

      • 템플릿을 통한 오케스트레이션 단순화
        - 모든 리소스를 배포하기 위해 템플릿을 배포하기만 하면 됩니다. 일반적으로 이 과정을 위해 여러 작업이 수행됩니다.


2. Azure Resource Manager 템플릿 스키마

  • Azure Resource Manager 템플릿은 JSON으로 작성되며, 이를 통해 개체(예: 가상 머신)로 저장된 데이터를 텍스트로 표현할 수 있습니다. JSON 문서는 본질적으로 키-값 쌍의 컬렉션입니다. 각 키는 문자열이며 해당 값은 다음과 같을 수 있습니다.
    • 문자열
    • 숫자
    • 부울 식
    • 값 목록
    • 개체(다른 키-값 쌍의 컬렉션)

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


  • 요소 이름 설명
    $schema 템플릿 언어의 버전을 설명하는 JSON 스키마 파일의 위치입니다. 위 예제에서 보여 주는 URL을 사용합니다.
    contentVersion 템플릿의 버전입니다(예: 1.0.0.0). 이 요소에 값을 제공할 수 있습니다. 이 값을 사용하여 템플릿에서 중요한 변경 내용을 문서화할 수 있습니다. 템플릿을 사용하여 리소스를 배포할 때 이 값을 사용하면 정확한 템플릿이 사용되도록 할 수 있습니다.
    parameters 배포를 실행하여 리소스 배포를 사용자 지정할 때 제공되는 값입니다.
    variables 템플릿에서 템플릿 언어 식을 단순화하는 JSON 조각으로 사용되는 값입니다.
    functions 템플릿 내에서 사용할 수 있는 사용자 정의 함수입니다.
    resources 리소스 그룹에 배포 또는 업데이트되는 리소스 종류입니다.
    outputs 배포 후 반환되는 값입니다.
  • parameters (매개 변수)

    "parameters": {
        "<parameter-name>" : {
            "type" : "<type-of-parameter-value>",
            "defaultValue": "<default-value-of-parameter>",
            "allowedValues": [ "<array-of-allowed-values>" ],
            "minValue": <minimum-value-for-int>,
            "maxValue": <maximum-value-for-int>,
            "minLength": <minimum-length-for-string-or-array>,
            "maxLength": <maximum-length-for-string-or-array-parameters>,
            "metadata": {
            "description": "<description-of-the parameter>"
            }
        }
    }​

    • 예시
      "parameters": {
        "adminUsername": {
          "type": "string",
          "metadata": {
            "description": "Username for the Virtual Machine."
          }
        },
        "adminPassword": {
          "type": "securestring",
          "metadata": {
            "description": "Password for the Virtual Machine."
          }
        }
      }​​
       
      * 템플릿에서 매개 변수는 256개로 제한됩니다. 여러 속성을 포함하는 개체를 사용하여 매개 변수의 개수를 줄일 수 있습니다

 

반응형

댓글