Azure Machine Learning 레지스트리 관리

Azure Machine Learning 엔터티는 크게 다음 두 가지 범주로 그룹화할 수 있습니다.

  • 모델, 환경, 구성 요소데이터 세트와 같은 자산은 작업 영역에 구애받지 않는 지속성 엔터티입니다. 예를 들어 모델을 원하는 작업 영역에 등록하고 원하는 엔드포인트에 배포할 수 있습니다.
  • 컴퓨팅, 작업엔드포인트와 같은 리소스는 작업 영역별 임시 엔터티입니다. 예를 들어 온라인 엔드포인트에는 특정 작업 영역의 특정 인스턴스에 고유한 채점 URI가 있습니다. 마찬가지로 작업은 알려진 기간 동안 실행되고 실행될 때마다 로그 및 메트릭을 생성합니다.

자산은 중앙 리포지토리에 저장하고 여러 작업 영역(여러 지역에 있을 수 있음)에서 사용하는 데 적합합니다. 리소스는 작업 영역별로 다릅니다.

Azure Machine Learning 레지스트리를 사용하면 다양한 작업 영역에서 해당 자산을 만들고 사용할 수 있습니다. 레지스트리는 자산에 액세스할 때 발생하는 대기 시간을 줄이기 위해 다중 지역 복제를 지원하므로 여러 Azure 지역에 있는 작업 영역에서 자산을 사용할 수 있습니다. 레지스트리를 만들면 복제를 용이하게 하는 데 필요한 Azure 리소스가 프로비전됩니다. 첫 번째는 지원되는 각 지역의 Azure Blob Storage 계정입니다. 두 번째는 지원되는 각 지역에 복제가 사용하도록 설정된 단일 Azure Container Registry입니다.

Diagram of the relationships between assets in workspace and registry.

필수 조건

이 문서의 단계를 수행하기 전에 다음과 같은 필수 구성 요소가 있는지 확인합니다.

CLI용 이전 버전의 ml 확장을 사용하는 경우 이 기능을 사용하기 전에 최신 버전으로 업데이트해야 할 수도 있습니다. 최신 버전을 업데이트하려면 다음 명령을 사용합니다.

az extension update -n ml

자세한 내용은 CLI(v2) 설치, 설정 및 사용을 참조하세요.

레지스트리 만들기 준비

레지스트리 만들기를 계속하기 전에 다음 정보를 신중하게 결정해야 합니다.

이름 선택

이름을 선택하기 전에 다음 요소를 고려합니다.

  • 레지스트리는 모든 작업 영역에서 조직 내 팀 간에 ML 자산을 쉽게 공유할 수 있도록 하기 위한 것입니다. 공유 범위를 나타내는 이름을 선택합니다. 이 이름은 그룹, 부서 또는 조직을 식별하는 데 도움이 됩니다.
  • 조직의 레지스트리 이름은 고유합니다(Microsoft Entra 테넌트). 팀 또는 조직 이름 앞에 접두사를 지정하고 일반 이름을 사용하지 않는 것이 좋습니다.
  • 레지스트리 이름은 코드에서 참조되는 모델, 환경 및 구성 요소의 ID에서 사용되므로 만든 후에는 변경할 수 없습니다.
    • 길이는 2~32자일 수 있습니다.
    • 영숫자, 밑줄, 하이픈이 허용됩니다. 다른 특수 문자는 허용되지 않습니다. 공백 없음 - 레지스트리 이름은 코드에서 참조할 수 있는 모델, 환경 및 구성 요소 ID의 일부입니다.
    • 이름은 밑줄 또는 하이픈을 포함할 수 있지만 밑줄 또는 하이픈으로 시작할 수 없습니다. 영숫자로 시작해야 합니다.

Azure 지역 선택

레지스트리를 사용하면 작업 영역 간에 자산을 공유할 수 있습니다. 이를 위해 레지스트리는 여러 Azure 지역에 콘텐츠를 복제합니다. 레지스트리를 만들 때 레지스트리에서 지원하는 지역 목록을 정의해야 합니다. 현재 작업 영역이 있고 조만간 추가 계획이 있는 모든 지역의 목록을 만듭니다. 이 지역 집합 목록으로 시작하면 좋습니다. 레지스트리를 만들 때 주 지역 및 추가 지역 세트를 정의합니다. 레지스트리를 만든 후에는 주 지역을 변경할 수 없지만 나중에 추가 지역을 업데이트할 수 있습니다.

권한 확인

레지스트리를 만들려는 구독 또는 리소스 그룹의 "소유자" 또는 "기여자"여야 합니다. 이러한 기본 제공 역할 중 하나가 없는 경우 이 문서의 끝 부분에 있는 권한 섹션을 검토합니다.

레지스트리 만들기

YAML 정의를 만들고 이름을 registry.yml로 지정합니다.

참고 항목

기본 위치는 YAML 파일에 두 번 나열됩니다. 다음 예제에서는 eastus가 먼저 기본 위치(location 항목)로 나열되고 replication_locations 목록에도 나열됩니다.

name: DemoRegistry1
tags:
  description: Basic registry with one primary region and to additional regions
  foo: bar
location: eastus
replication_locations:
  - location: eastus
  - location: eastus2
  - location: westus

YAML 파일 구조에 대한 자세한 내용은 레지스트리 YAML 참조 문서를 참조하세요.

일반적으로 Azure Portal에 '미국 동부'와 같은 Azure 지역의 표시 이름이 표시되지만 레지스트리 만들기 YAML에는 공백 및 소문자가 없는 지역 이름이 필요합니다. YAML에서 지정할 수 있는 지역 이름에 대한 지역 표시 이름 매핑을 찾으려면 az account list-locations -o table을 사용합니다.

레지스트리 만들기 명령을 실행합니다.

az ml registry create --file registry.yml

스토리지 계정 유형 및 SKU 지정(선택 사항)

Azure Storage 계정 유형 및 SKU 지정은 Azure CLI에서만 사용할 수 있습니다.

Azure Storage는 다양한 기능과 가격의 여러 가지 스토리지 계정을 제공합니다. 자세한 내용은 스토리지 계정 유형 문서를 참조하세요. 요구 사항에 가장 적합한 최적의 스토리지 계정 SKU를 식별한 후에는 적절한 SKU 유형의 값을 찾습니다. YAML 파일에서 선택한 SKU 유형을 storage_account_type 필드의 값으로 사용합니다. 이 필드는 replication_locations 목록의 각 location 아래에 있습니다.

다음으로, Azure Blob Storage 계정 및 Azure Data Lake Storage Gen2 중 무엇을 사용할지 결정합니다. Azure Data Lake Storage Gen2를 만들려면 storage_account_hnstrue로 설정합니다. Azure Blob Storage를 만들려면 storage_account_hnsfalse로 설정합니다. storage_account_hns 필드는 replication_locations 목록의 각 location 아래에 있습니다.

참고 항목

storage_account_hnshns 부분은 Azure Data Lake Storage Gen2 계정의 계층 구조 네임스페이스 기능을 나타냅니다.

다음 예 YAML 파일은 이러한 고급 스토리지 구성을 보여 줍니다.

name: DemoRegistry2
tags:
  description: Registry with additional configuration for storage accounts
  foo: bar
location: eastus
replication_locations:
  - location: eastus
    storage_config:
      storage_account_hns: False
      storage_account_type: Standard_LRS
  - location: eastus2
    storage_config:
      storage_account_hns: False
      storage_account_type: Standard_LRS
  - location: westus
    storage_config:
      storage_account_hns: False
      storage_account_type: Standard_LRS

레지스트리에 사용자 추가

사용자가 레지스트리의 자산(모델, 환경 및 구성 요소)만 사용하도록 허용할지 아니면 레지스트리에서 자산을 사용하고 만들도록 허용할지 결정합니다. Azure 역할 기반 액세스 제어를 사용하여 권한을 관리하는 방법을 잘 모르는 경우 역할을 할당하는 단계를 검토합니다.

사용자가 레지스트리의 자산을 사용하도록 허용

사용자가 자산을 읽을 수만 있도록 하려면 사용자에게 기본 제공 읽기 권한자 역할을 부여하면 됩니다. 기본 제공 역할을 사용하지 않으려면 다음 권한이 포함된 사용자 지정 역할을 만듭니다.

Permission 설명
Microsoft.MachineLearningServices/registries/read 사용자가 레지스트리를 나열하고 레지스트리 메타데이터를 가져오도록 허용합니다.
Microsoft.MachineLearningServices/registries/assets/read 사용자가 자산을 찾아보고 작업 영역에서 자산을 사용하도록 허용합니다.

사용자가 레지스트리의 자산을 만들고 사용하도록 허용

사용자가 자산을 읽고 만들거나 삭제할 수 있도록 하려면 위의 읽기 권한 외에 다음 쓰기 권한도 부여합니다.

Permission 설명
Microsoft.MachineLearningServices/registries/assets/write 레지스트리에서 자산 만들기
Microsoft.MachineLearningServices/registries/assets/delete 레지스트리에서 자산 삭제

Warning

기본 제공 기여자소유자 역할은 사용자가 레지스트리를 만들고 업데이트하고 삭제하도록 허용합니다. 사용자가 레지스트리에서 자산을 만들고 사용하도록 하되, 레지스트리를 만들거나 업데이트하지 않도록 하려면 사용자 지정 역할을 만들어야 합니다. 사용자 지정 역할을 검토하여 권한에서 사용자 지정 역할을 만드는 방법을 알아봅니다.

사용자가 레지스트리를 만들고 관리하도록 허용

사용자가 레지스트리를 만들고 업데이트하고 삭제할 수 있도록 하려면 기본 제공 기여자 또는 소유자 역할을 부여합니다. 기본 제공 역할을 사용하지 않으려면 레지스트리에서 자산을 읽고, 만들고, 삭제할 수 있는 위의 모든 권한 외에 다음 권한도 포함된 사용자 지정 역할을 만듭니다.

Permission 설명
Microsoft.MachineLearningServices/registries/write 사용자가 레지스트리를 만들거나 업데이트하도록 허용합니다.
Microsoft.MachineLearningServices/registries/delete 사용자가 레지스트리를 삭제하도록 허용합니다.

다음 단계