반응형
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개로 제한됩니다. 여러 속성을 포함하는 개체를 사용하여 매개 변수의 개수를 줄일 수 있습니다
- 예시
반응형
댓글