템플릿 사양 이해

완료됨

지금까지는 Bicep 또는 JSON을 사용하여 Azure에 ARM 템플릿(Azure Resource Manager 템플릿)을 배포하는 것이 익숙했습니다. 서식 파일을 만든 후 배포를 만들어 Azure에 해당 파일을 제출합니다. Azure Resource Manager는 리소스의 생성 또는 재구성을 오케스트레이션 합니다.

템플릿 사양을 사용하여 작업하는 경우 여전히 템플릿을 Azure에 보냅니다. 하지만 Azure는 배포하는 대신 나중에 사용할 수 있도록 저장합니다. 나중에 다시 돌아가서 템플릿 사양을 배포하도록 Azure에 지시할 수 있습니다. 동일한 템플릿 사양을 반복적으로 사용하여 더 많은 환경을 배포할 수도 있습니다.

템플릿 사양을 사용하는 이유는 무엇인가요?

토이 회사에서 다음을 포함하여 재사용 가능한 템플릿을 많이 만들었습니다.

템플릿 이름 설명
스토리지 계정 스토리지 계정을 배포하고 Microsoft Entra 인증을 적용합니다.
Cosmos DB 계정 지속적인 백업을 사용하여 Azure Cosmos DB 계정을 배포합니다.
가상 네트워크 기본 허브 네트워크와 피어할 수 있는 올바른 구성이 있는 가상 네트워크를 배포합니다.
제품 출시 웹 사이트 새 장난감 제품 출시를 특징으로 하는 웹 사이트에 대한 Azure App Service 계획, 앱 및 스토리지 계정을 배포합니다.

템플릿 사양은 조직의 일반적인 시나리오에 대해 재사용 가능한 ARM 템플릿 라이브러리를 만드는 좋은 방법입니다. 전문가는 미리 구성된 리소스 또는 리소스 집합을 사용하여 템플릿을 빌드할 수 있습니다. 그러면 전문가는 이를 템플릿 사양으로 게시하여 조직의 다른 사람들이 배포할 수 있게 합니다.

템플릿 사양을 사용하여 팀에서 만드는 리소스가 요구 사항에 따라 구성 되었는지 확인할 수 있습니다. 예를 들어 앞에서 설명한 스토리지 계정 템플릿과 같은 템플릿 사양을 게시할 수 있습니다. 그런 다음 조직의 모든 사용자가 템플릿 사양을 배포할 때마다 올바른 인증 설정을 사용하여 스토리지 계정을 만들 수 있습니다.

템플릿 사양은 Azure 내에 저장되므로 공유 서식 파일을 직접 유지관리할 필요가 없습니다. Azure 역할 기반 액세스 제어를 사용하여 템플릿 사양을 사용하고 수정할 수 있는 사용자를 관리합니다. 템플릿 사양을 사용하지 않으면 서식 파일을 보관하기 위해 Azure Storage 등의 스토리지 위치를 선택해야 합니다. 또한 액세스를 제어해야 합니다.

템플릿 사양이 Bicep 모듈과 어떻게 비교 되나요?

Bicep를 사용하는 경우 다시 사용할 수 있는 모듈을 만들어 단일 파일의 리소스 집합을 정의할 수 있습니다. 템플릿 사양 및 Bicep 모듈은 모두 템플릿에 재사용 가능성을 추가하는 방법이지만, 최적화되어 있는 용도가 서로 다릅니다.

  • 템플릿 사양은 전체 템플릿으로 배포 가능하도록 설계되었습니다. Azure Portal 및 Azure CLI 및 Azure PowerShell과 같은 도구를 사용하여 템플릿 사양을 배포할 수 있습니다. Bicep 모듈은 보다 대규모의 배포로 결합될 수 있습니다. 그러나 템플릿 사양을 만드는 경우 Bicep을 사용하면 원하는 경우 모듈로 사용할 수도 있습니다.
  • 템플릿 사양은 버전 관리과 액세스 제어 기능을 사용할 수 있도록 합니다. 사용자의 Bicep 코드에 대한 버전 및 보안을 직접 관리해야 합니다.
  • 템플릿 사양은 Azure에 리소스로 저장됩니다. Git와 같은 버전 제어 시스템 또는 파일 시스템처럼 사용자가 컨트롤하는 Bicep 모듈을 저장해야 합니다.
  • Bicep 모듈은 주석, 기호화된 이름, 공백 등의 기존 Bicep 코드를 모두 유지합니다. Bicep를 사용하여 템플릿 사양을 만들면 Bicep 코드가 JSON으로 변환되고 이 정보 중 일부가 손실됩니다. 따라서 원본 Bicep 파일 또한 다른 위치에 보관해야 합니다.

템플릿 사양 및 Bicep 모듈 중 결정하는 경우 적용할 수 있는 좋은 경험 법칙은 조직 전체에 템플릿을 있는 그대로 배포하려는 경우 템플릿 사양이 적합할 것이라는 점입니다. 그러나 여러 상위 템플릿 내에서 이 템플릿을 재사용할 경우 Bicep 모듈에서 요구 사항을 더 잘 처리할 수 있습니다.

템플릿 사양의 작동 방법

템플릿 사양은 스토리지 계정 또는 가상 머신과 마찬가지로 Azure 리소스입니다. 템플릿 자체가 리소스를 구독, 관리 또는 테넌트 범위에 배포할 수 있지만, 리소스 그룹 내에 만들어져야 합니다.

템플릿 사양을 사용할 때는 두 가지 리소스를 만듭니다.

  • 템플릿 사양은 컨테이너 리소스입니다. 여기에는 하나 또는 여러 버전이 포함 되어 있습니다.
  • 템플릿 사양 버전에는 배포할 실제 템플릿이 포함되어 있습니다.

리소스 ID를 사용하여 템플릿 사양 및 버전으로 작업합니다. 다음은 템플릿 사양에 대한 예제 리소스 ID입니다.

/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS

버전은 템플릿 사양의 자식 리소스입니다. 이 예제와 같은 리소스 ID가 있습니다.

/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS/versions/1.0

템플릿 사양을 배포할 때는 템플릿 사양 버전의 리소스 ID를 지정해야 합니다.

다음은 템플릿 사양을 사용할 때 따르는 워크플로의 그림입니다.

Diagram that shows the workflow for using template specs.

익숙한 방식으로 템플릿을 만듭니다. 템플릿 사양에 대해 만든 템플릿에 대해 특별한 사항은 없습니다. 리소스를 선언하고, 매개 변수와 변수를 만들고, 함수를 사용하는 등의 작업을 합니다.

템플릿이 준비되면 템플릿 사양 리소스를 만듭니다. 그런 다음 템플릿을 템플릿 사양에 버전으로 게시합니다. 템플릿 사양을 만드는 데 사용하는 도구를 사용하면 한 번의 작업으로 이러한 단계를 모두 수행할 수 있습니다. 템플릿 사양은 게시한 후 Azure에 리소스로 저장됩니다. 기타 모든 Azure 리소스와 마찬가지로 이를 보고 편집하고 이에 대한 액세스를 제어할 수 있습니다. 로컬 컴퓨터 또는 배포 파이프라인에서 템플릿 사양을 게시할 수 있습니다.

템플릿 사양을 배포할 때마다 배포에서 템플릿 사양 버전의 리소스 ID를 참조합니다. 모든 리소스 그룹이나 다른 구독 또는 범위에도 배포할 수 있습니다. Azure는 템플릿 사양을 읽고 배포를 위한 템플릿으로 사용합니다.