템플릿 사양 이해

완료됨

지금까지는 Bicep 또는 JSON을 사용하여 ARM 템플릿(Azure Resource Manager 템플릿)을 Azure에 배포하는 데 익숙합니다. 템플릿 파일을 만든 다음 배포를 만들어 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS

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

/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS/versions/1.0

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

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

템플릿 사양을 사용하기 위한 워크플로를 보여 주는 다이어그램

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

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

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