모듈 레지스트리 이해
이 단원에서는 Bicep 레지스트리가 무엇이고 어째서 Bicep 코드를 공유하는 데 유용한지 알아봅니다. 또한 조직용 레지스트리를 만드는 방법도 알아봅니다.
Bicep 모듈을 공유하는 이유는 무엇인가요?
Bicep으로 작업할 때 비슷한 리소스를 반복적으로 사용하는 경우가 많습니다. 또한 여러 위치에 배포하는 리소스 조합을 만드는 것이 일반적입니다. Bicep 모듈은 재사용 가능한 Bicep 파일을 만드는 편리한 방법을 제공합니다. 각 모듈은 일반적으로 미리 정의된 구성을 사용하여 리소스 집합을 정의합니다.
모듈 사용의 이점 중 하나는 다른 사용자와 공유할 수 있고 다른 사용자가 공유하는 모듈을 활용할 수 있다는 것입니다. 예를 들어 Bicep 파일을 빌드하고 테스트하여 자주 함께 사용하는 리소스 집합을 배포하는 데 시간을 투자할 수 있습니다. 파일을 Bicep 모듈로서 공유하는 경우, 동료가 모듈을 사용하여 동일한 리소스를 신속하게 배포할 수 있습니다.
Bicep 레지스트리는 모듈이 저장되고 공유되는 위치입니다. 누구나 자신의 레지스트리를 만들 수 있습니다. 향후 Microsoft는 모듈 외에 더 많은 유형의 Bicep 콘텐츠를 레지스트리에 게시할 수 있도록 지원할 계획입니다.
팁
Microsoft는 공용 Bicep 모듈 레지스트리를 유지 관리합니다. 공용 레지스트리에는 커뮤니티의 모든 사람이 사용할 수 있는 모듈이 포함되어 있습니다. 시간이 지남에 따라 공용 레지스트리에는 Bicep에서 몇 가지 일반적인 시나리오를 달성하는 데 도움이 되는 모듈이 포함됩니다.
이 Learn 모듈에서는 개인 레지스트리를 사용하여 사용자 고유 모듈을 공유하는 데 중점을 둡니다. 요약 단원에는 퍼블릭 레지스트리에 대한 자세한 내용으로 연결되는 링크가 있습니다.
레지스트리는 템플릿 사양과 어떻게 비교하나요?
ARM(Azure Resource Manager) 템플릿을 템플릿 사양으로 저장할 수 있습니다. 템플릿 사양은 템플릿을 재사용하고 조직에서 공유할 수 있는 방법입니다.
Bicep 레지스트리 및 템플릿 사양에 저장된 모듈은 배포 코드에 재사용성을 추가하는 두 가지 방법입니다. 하지만 서로 다른 항목에 최적화되어 있습니다.
- Bicep 모듈은 보다 대규모의 배포로 결합될 수 있습니다. 템플릿 사양은 전체 템플릿으로 배포 가능하도록 설계되었습니다. Azure Portal 외에 Azure CLI 및 Azure PowerShell 같은 도구를 사용하여 템플릿 사양을 배포할 수 있습니다. 하지만 템플릿 사양을 만들었다면 Bicep에서도 원하는 경우 모듈로 사용할 수 있습니다.
- 템플릿 사양은 Azure에 리소스로 저장됩니다. 레지스트리의 모듈은 컨테이너 아티팩트로 저장됩니다.
- 템플릿 사양은 액세스 제어 기능을 제공합니다. 프라이빗 레지스트리를 사용하는 경우 다른 방법으로 모듈에 대한 액세스를 제어해야 합니다. 이후 단원에서 액세스 제어에 대해 자세히 알아보겠습니다.
템플릿 사양 및 Bicep 모듈 중 결정하는 경우 적용할 수 있는 좋은 경험 법칙은 조직 전체에 템플릿을 있는 그대로 배포하려는 경우 템플릿 사양이 적합할 것이라는 점입니다. 그러나 여러 상위 템플릿 내에서 이 템플릿을 재사용할 경우 Bicep 모듈에서 요구 사항을 더 잘 처리할 수 있습니다. 레지스트리는 모듈을 공유하는 좋은 방법입니다.
프라이빗 레지스트리
Bicep 레지스트리는 컨테이너 레지스트리라는 기술을 기반으로 합니다.
조직에서 Kubernetes 또는 다른 컨테이너화 기술을 사용하는 경우 레지스트리에 이미 익숙할 수 있습니다. 그러나 컨테이너 또는 Kubernetes를 사용하여 Bicep을 사용할 필요는 없습니다. 레지스트리는 아티팩트를 저장하고 공유할 수 있는 일반적이고 편리한 방법을 제공합니다. 스토리지 계정과 유사한 것으로 간주하세요.
현재 Bicep은 Azure Container Registry를 지원합니다. 향후 Microsoft는 Docker Hub 같은 다른 레지스트리를 지원할 계획입니다.
Azure Container Registry는 다양한 기능과 제한을 가진 여러 서비스 계층을 제공합니다. 사용자 고유의 레지스트리를 프로비전할 때 요구 사항에 맞는 계층을 선택해야 합니다. 요약 단원에 자세한 정보에 대한 링크가 있습니다.
곧 모듈을 레지스트리에 게시하는 방법을 알아봅니다.
팁
Azure Container Registry에서 모듈을 리포지토리라고 합니다. Git 리포지토리와 혼동하지 마세요. 용어는 동일하지만 의미는 다릅니다.
Access Control
Azure Container Registry는 조직에 대한 프라이빗 레지스트리를 제공하므로 조직에 대한 액세스 권한이 있는 사용자를 제어할 수 있습니다. Azure Container Registry는 개별 사용자에게 발급하는 Microsoft Entra ID 및 키를 포함하여 액세스 관리를 위한 여러 옵션을 제공합니다.
Bicep으로 작업할 때 가장 쉬운 방식은 Microsoft Entra 인증을 사용하는 것입니다. Bicep은 Azure CLI 또는 Azure PowerShell에서 사용하는 Microsoft Entra ID를 자동으로 검색하므로 다시 로그인할 필요가 없습니다. 다음 연습에서 인증이 어떻게 작동하는지 확인할 수 있습니다. 파이프라인에서 Bicep 모듈 레지스트리를 사용하는 경우 서비스 주체라는 특수한 형식의 ID를 사용합니다.
레지스트리에 모듈을 쓸 수 있는 권한이 있는 사용자와 모듈을 읽을 권한이 있는 사용자를 별도로 제어할 수 있습니다.