Azure CLI를 사용하여 Azure Machine Learning 작업 영역 관리

적용 대상:Azure CLI ml 확장 v2(현재)

이 문서에서는 Azure CLI를 사용하여 Azure Machine Learning 작업 영역을 만드는 방법을 알아봅니다. Azure CLI는 Azure 리소스 관리를 위한 명령을 제공하며, Azure를 빠르게 사용할 수 있도록 자동화에 초점을 두고 설계되었습니다. CLI에 대한 Machine Learning 확장은 Azure Machine Learning 리소스를 사용하기 위한 명령을 제공합니다.

Azure Portal 및 Python SDK 또는 Azure PowerShell을 사용하거나 VS Code 확장을 통해 작업 영역을 관리할 수도 있습니다.

필수 구성 요소

제한 사항

  • 새 작업 영역을 만들 때 작업 영역에 필요한 서비스를 자동으로 만들거나 기존 서비스를 사용할 수 있습니다. 작업 영역과 다른 Azure 구독의 기존 서비스를 사용하려면 해당 서비스가 포함된 구독에 Azure Machine Learning 네임스페이스를 등록해야 합니다. 예를 들어, 구독 B의 스토리지 계정을 사용하는 구독 A에서 작업 영역을 만드는 경우 작업 영역에서 스토리지 계정을 사용하려면 먼저 Azure Machine Learning 네임스페이스를 구독 B에 등록해야 합니다.

    Azure Machine Learning의 리소스 공급자는 Microsoft.MachineLearningServices입니다. 등록 여부를 확인하는 방법 및 등록하는 방법에 대한 자세한 내용은 Azure 리소스 공급자 및 형식 문서를 참조하세요.

    Important

    이는 Azure Storage Accounts, Azure Container Register, Azure Key Vault 및 Application Insights 등의 작업 영역을 만드는 동안 제공된 리소스에만 적용됩니다.

Azure Application Insights 인스턴스는 작업 영역을 만들 때 만들어집니다. 원하는 경우 클러스터를 만든 후 Application Insights 인스턴스를 삭제할 수 있습니다. 이 인스턴스를 삭제하면 작업 영역에서 수집되는 정보가 제한되며, 문제를 해결하기가 더 어려워질 수 있습니다. 작업 영역에서 만든 Application Insights 인스턴스를 삭제하는 경우 작업 영역을 삭제하고 다시 만들어야만 인스턴스를 다시 만들 수 없습니다.

이 Application Insights 인스턴스 사용에 대한 자세한 내용은 Machine Learning 웹 서비스 엔드포인트에서 데이터 모니터링 및 수집을 참조하세요.

보안 CLI 통신

일부 Azure CLI 명령은 인터넷을 통해 Azure Resource Manager와 통신합니다. 이러한 통신은 HTTPS/TLS 1.2를 사용하여 보호됩니다.

Azure Machine Learning CLI 확장 v2('ml')를 사용하면 모든 명령이 Azure Resource Manager와 통신합니다. 여기에는 YAML 매개 변수 및 메타데이터와 같은 작동 데이터가 포함됩니다. Azure Machine Learning 작업 영역이 공용인 경우(즉, 가상 네트워크 뒤에 있지 않음) 추가 구성이 필요하지 않습니다. 통신은 HTTPS/TLS 1.2를 사용하여 보호됩니다.

Azure Machine Learning 작업 영역에서 프라이빗 엔드포인트 및 가상 네트워크를 사용하고, 사용자가 CLI v2를 사용하는 경우 다음 구성 중 하나를 선택하여 사용합니다.

CLI v2 통신에 대한 자세한 내용은 CLI 설치 및 설정을 참조하세요.

Azure 구독에 CLI 연결

Important

Azure Cloud Shell을 사용하는 경우 이 섹션을 건너뛸 수 있습니다. Cloud Shell은 Azure 구독에 로그인하는 계정을 사용하여 사용자를 자동으로 인증합니다.

CLI에서 Azure 구독에 인증하는 방법에는 여러 가지가 있습니다. 가장 간단한 방법은 브라우저를 사용하여 대화형으로 인증하는 것입니다. 대화형으로 인증하려면 명령줄 또는 터미널을 열고 다음 명령을 사용합니다.

az login

CLI가 기본 브라우저를 열 수 있는 경우, 그렇게 하고 로그인 페이지를 로드합니다. CLI가 브라우저를 열 수 없는 경우에는 사용자가 브라우저를 열고 명령줄의 지침을 따릅니다. 지침에 따라 https://aka.ms/devicelogin으로 이동하고 인증 코드를 입력합니다.

로그인하면 Azure 계정에 연결된 구독 목록이 나타납니다. isDefault: true가 있는 구독 정보는 Azure CLI 명령에 대해 현재 활성화된 구독입니다. 이 구독은 Azure Machine Learning 작업 영역을 포함하는 구독과 동일해야 합니다. 작업 영역에 대한 개요 페이지를 방문하여 Azure Portal에서 구독 ID를 찾을 수 있습니다.

다른 구독을 선택하려면 az account set -s <subscription name or ID> 명령을 사용하고 전환할 구독 이름 또는 ID를 지정합니다. 구독 선택에 대한 자세한 내용은 여러 Azure 구독 사용을 참조하세요.

다른 인증 방법은 Azure CLI로 로그인을 참조하세요.

리소스 그룹 만들기

리소스 그룹 내에 Azure Machine Learning 작업 영역을 만들어야 합니다. 기존 리소스 그룹을 사용하거나 리소스 그룹을 새로 만들 수 있습니다. 새 리소스 그룹을 만들려면 다음 명령을 사용합니다. <resource-group-name>을 이 리소스 그룹에 사용할 이름으로 바꿉니다. <location>을 이 리소스 그룹에 사용할 Azure 지역으로 바꿉니다.

참고 항목

Azure Machine Learning을 사용할 수 있는 지역을 선택해야 합니다. 자세한 내용은 지역별 사용 가능한 제품을 참조하세요.

az group create --name <resource-group-name> --location <location>

이 명령의 응답은 다음 JSON과 비슷합니다. 출력 값을 사용하여 생성된 리소스를 찾거나 자동화를 위한 후속 CLI 단계에 대한 입력으로 구문 분석할 수 있습니다.

{
  "id": "/subscriptions/<subscription-GUID>/resourceGroups/<resourcegroupname>",
  "location": "<location>",
  "managedBy": null,
  "name": "<resource-group-name>",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": null
}

리소스 그룹 작업에 대한 자세한 내용은 az 그룹을 참조하세요.

작업 영역 만들기

Azure Machine Learning 작업 영역을 배포하는 경우, 종속 관련 리소스로 다른 다양한 서비스가 필요합니다. CLI를 사용하여 작업 영역을 만드는 경우, CLI는 사용자 대신 연결된 새 리소스를 만들거나 기존 리소스를 연결할 수 있습니다.

Important

사용자 고유의 스토리지 계정을 연결하는 경우 다음 조건을 충족하는지 확인합니다.

  • 스토리지 계정이 프리미엄 계정((Premium_LRS 및 Premium_GRS)이 아님
  • Azure Blob 및 Azure File 기능 모두 사용
  • Hierarchical Namespace(ADLS Gen 2)를 사용하지 않습니다. 이러한 요구 사항은 작업 영역에서 사용하는 기본 스토리지 계정에만 적용됩니다.

Azure 컨테이너 레지스트리를 연결할 때, Azure Machine Learning 작업 영역에서 사용할 수 있으려면 컨테이너 레지스트리에 관리자 계정을 사용하도록 설정해야 합니다.

서비스가 자동으로 생성되는 새 작업 영역을 만들려면 다음 명령을 사용합니다.

az ml workspace create -n <workspace-name> -g <resource-group-name>

Important

기존 리소스를 연결할 때 모든 리소스를 지정할 필요는 없습니다. 하나 이상의 리소스를 지정할 수 있습니다. 예를 들어, 기존 스토리지 계정을 지정할 수 있으며 작업 영역에서는 다른 리소스를 만듭니다.

작업 영역 생성 명령의 출력은 다음 JSON과 유사합니다. 출력 값을 사용하여 생성된 리소스를 찾거나 후속 CLI 단계에 대한 입력으로 구문 분석할 수 있습니다.

{
  "applicationInsights": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<application-insight-name>",
  "containerRegistry": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.containerregistry/registries/<acr-name>",
  "creationTime": "2019-08-30T20:24:19.6984254+00:00",
  "description": "",
  "friendlyName": "<workspace-name>",
  "id": "/subscriptions/<service-GUID>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>",
  "identityPrincipalId": "<GUID>",
  "identityTenantId": "<GUID>",
  "identityType": "SystemAssigned",
  "keyVault": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.keyvault/vaults/<key-vault-name>",
  "location": "<location>",
  "name": "<workspace-name>",
  "resourceGroup": "<resource-group-name>",
  "storageAccount": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.storage/storageaccounts/<storage-account-name>",
  "type": "Microsoft.MachineLearningServices/workspaces",
  "workspaceid": "<GUID>"
}

고급 구성

프라이빗 네트워크 연결을 위한 작업 영역 구성

사용 사례 및 조직 요구 사항에 따라 프라이빗 네트워크 연결을 사용하여 Azure Machine Learning을 구성할 수 있습니다. Azure CLI를 사용하여 작업 영역 리소스에 대한 작업 영역 및 프라이빗 링크 엔드포인트를 배포할 수 있습니다. 작업 영역에서 프라이빗 엔드포인트 및 VNet(가상 네트워크)를 사용하는 방법에 대한 자세한 내용은 가상 네트워크 격리 및 개인 정보 보호 개요를 참조하세요. 복잡한 리소스 구성의 경우, Azure Resource Manager를 비롯한 템플릿 기반 배포 옵션도 참조하세요.

프라이빗 링크를 사용하는 경우 docker 이미지 빌드를 위해 작업 영역에서 Azure Container Registry를 사용할 수 없습니다. 따라서 Docker 이미지 환경 빌드에 사용할 CPU 컴퓨팅 클러스터 이름으로 image_build_compute 속성을 설정해야 합니다. 또한 public_network_access 속성을 사용하여 인터넷을 통해 프라이빗 링크 작업 영역에 액세스할 수 있어야 하는지 여부를 지정할 수 있습니다.

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-privatelink-prod
location: eastus
display_name: Private Link endpoint workspace-example
description: When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.
image_build_compute: cpu-compute
public_network_access: Disabled
tags:
  purpose: demonstration
az ml workspace create -g <resource-group-name> --file privatelink.yml

작업 영역이 만들어지면 Azure 네트워킹 CLI 명령을 사용하여 작업 영역에 대한 프라이빗 링크 엔드포인트를 만듭니다.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <vnet-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

작업 영역에 대한 프라이빗 DNS 영역 항목을 만들려면 다음 명령을 사용합니다.

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.api.azureml.ms'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.api.azureml.ms' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.api.azureml.ms' \
    --zone-name 'privatelink.api.azureml.ms'

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.notebooks.azure.net'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.notebooks.azure.net' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.notebooks.azure.net' \
    --zone-name 'privatelink.notebooks.azure.net'

고객 관리형 키 및 높은 비즈니스 영향 작업 영역

기본적으로 작업 영역에 대한 메타데이터는 Microsoft에서 유지 관리하는 Azure Cosmos DB 인스턴스에 저장됩니다. 이 데이터는 Microsoft 관리형 키를 사용하여 암호화됩니다. Microsoft 관리형 키를 사용하는 대신 사용자 고유 키를 사용할 수도 있습니다. 이렇게 하면 Azure 구독에 데이터를 저장할 추가 리소스 집합이 생성됩니다.

암호화를 위해 사용자 고유의 키를 가져올 때 생성되는 리소스에 대한 자세한 내용은 Azure Machine Learning 사용하여 데이터 암호화를 참조하세요.

key_vaultkey_uri매개 변수를 포함하는 customer_managed_key 매개 변수를 사용하여 자격 증명 모음 내에서 키의 리소스 ID와 URI를 지정합니다.

Microsoft가 작업 영역에서 수집하는 데이터를 제한하려면, hbi_workspace 속성을 추가로 지정할 수 있습니다.

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-cmkexample-prod
location: eastus
display_name: Customer managed key encryption-example
description: This configurations shows how to create a workspace that uses customer-managed keys for encryption.
customer_managed_key: 
  key_vault: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>
  key_uri: https://<KEY_VAULT>.vault.azure.net/keys/<KEY_NAME>/<KEY_VERSION>
tags:
  purpose: demonstration

그런 다음, 작업 영역 만들기 CLI 명령의 일부로 이 구성 파일을 참조할 수 있습니다.

az ml workspace create -g <resource-group-name> --file cmk.yml

참고 항목

Machine Learning 앱(ID 및 액세스 관리에서)에 구독에 대한 기여자 권한을 부여하여 데이터 암호화 추가 리소스를 관리합니다.

참고 항목

Azure Cosmos DB는 모델 성능, 실험에서 기록한 정보 또는 모델 배포에서 기록된 정보 등의 정보를 저장하는 데 사용되지 않습니다.

Important

높은 비즈니스 영향을 선택하는 작업은 작업 영역을 만들 때만 수행할 수 있습니다. 작업 영역을 만든 후에는 이 설정을 변경할 수 없습니다.

고객 관리형 키 및 높은 비즈니스 영향 작업 영역에 대한 자세한 내용은 Azure Machine Learning에 대한 엔터프라이즈 보안을 참조하세요.

CLI를 사용하여 작업 영역 관리

작업 영역 정보 가져오기

작업 영역에 대한 정보를 가져오려면 다음 명령을 사용합니다.

az ml workspace show -n <workspace-name> -g <resource-group-name>

자세한 내용은 az ml workspace show 설명서를 참조하세요.

작업 영역 업데이트

작업 영역을 업데이트하려면 다음 명령을 사용합니다.

az ml workspace update -n <workspace-name> -g <resource-group-name>

자세한 내용은 az ml workspace update 설명서를 참조하세요.

종속 리소스의 키 동기화

작업 영역에서 사용하는 리소스 중 하나에 대한 액세스 키를 변경하는 경우 작업 영역이 새 키로 동기화되는 데 약 1시간이 소요됩니다. 작업 영역에서 새 키를 즉시 동기화하도록 하려면 다음 명령을 사용합니다.

az ml workspace sync-keys -n <workspace-name> -g <resource-group-name>

키 변경에 대한 자세한 내용은 스토리지 액세스 키 다시 생성을 참조하세요.

sync-keys 명령에 대한 자세한 내용은 az ml workspace sync-keys를 참조하세요.

작업 영역 삭제

Warning

작업 영역에 대해 일시 삭제가 사용하도록 설정된 경우 삭제 후 복구할 수 있습니다. 일시 삭제가 사용하도록 설정되지 않았거나 작업 영역을 영구적으로 삭제하는 옵션을 선택하면 복구할 수 없습니다. 자세한 내용은 삭제된 작업 영역 복구를 참조하세요.

더 이상 필요하지 않은 작업 영역을 삭제하려면 다음 명령을 사용합니다.

az ml workspace delete -n <workspace-name> -g <resource-group-name>

Important

작업 영역을 삭제해도 작업 영역에서 사용하는 애플리케이션 인사이트, 스토리지 계정, Key Vault 또는 컨테이너 레지스트리는 삭제되지 않습니다.

리소스 그룹에서 작업 영역 및 기타 모든 Azure 리소스를 삭제하는 리소스 그룹을 삭제할 수도 있습니다. 리소스 그룹을 삭제하려면 다음 명령을 사용합니다.

az group delete -g <resource-group-name>

자세한 내용은 az ml workspace delete 설명서를 참조하세요.

Azure Machine Learning의 기본 동작은 작업 영역을 일시 삭제하는 것입니다. 이는 작업 영역이 즉시 삭제되지 않고 대신 삭제 표시됨을 의미합니다. 자세한 내용은 일시 삭제를 참조하세요.

문제 해결

리소스 공급자 오류

Azure Machine Learning 작업 영역 또는 작업 영역에서 사용하는 리소스를 만들 때 다음 메시지와 유사한 오류가 발생할 수 있습니다.

  • No registered resource provider found for location {location}
  • The subscription is not registered to use namespace {resource-provider-namespace}

대부분의 리소스 공급자는 자동으로 등록되지만, 전부는 아닙니다. 이 메시지가 표시되면 언급된 제공자를 등록해야 합니다.

다음 표에는 Azure Machine Learning에 필요한 리소스 공급자 목록이 있습니다.

리소스 공급자 필요한 이유
Microsoft.MachineLearningServices Azure Machine Learning 작업 영역을 만듭니다.
Microsoft.Storage Azure Storage 계정은 작업 영역의 기본 스토리지로 사용됩니다.
Microsoft.ContainerRegistry Azure Container Registry는 작업 영역이 Docker 이미지를 빌드하는 데 사용됩니다.
Microsoft.KeyVault Azure Key Vault는 작업 영역에서 비밀을 저장하는 데 사용됩니다.
Microsoft.Notebooks Azure Machine Learning 컴퓨팅 인스턴스의 통합 Notebook.
Microsoft.ContainerService Azure Kubernetes Services에 학습된 모델을 배포하려는 경우.

Azure Machine Learning에서 고객 관리형 키를 사용하려는 경우 다음 서비스 공급자를 등록해야 합니다.

리소스 공급자 필요한 이유
Microsoft.DocumentDB 작업 영역의 메타데이터를 기록하는 Azure CosmosDB 인스턴스입니다.
Microsoft.Search Azure Search는 작업 영역에 대한 인덱싱 기능을 제공합니다.

Azure Machine Learning에서 관리형 가상 네트워크를 사용하려는 경우 Microsoft.Network 리소스 공급자를 등록해야 합니다. 이 리소스 공급자는 관리형 가상 네트워크에 대한 프라이빗 엔드포인트를 만들 때 작업 영역에서 사용됩니다.

리소스 공급자 등록에 대한 자세한 내용은 리소스 공급자 등록 오류 해결을 참조하세요.

작업 영역 이동

Warning

Azure Machine Learning 작업 영역을 다른 구독으로 이동하거나 소유하는 구독을 새 테넌트로 이동하는 것은 지원되지 않습니다. 이렇게 하면 오류가 발생할 수 있습니다.

Azure Container Registry 삭제

Azure Machine Learning 작업 영역에서는 일부 작업에 ACR(Azure Container Registry)을 사용합니다. 먼저 필요한 경우 ACR 인스턴스를 자동으로 만듭니다.

Warning

작업 영역에 대해 Azure Container Registry가 만들어지면 이를 삭제하지 마세요. 삭제하면 Azure Machine Learning 작업 영역이 중단됩니다.

다음 단계

기계 학습용 Azure CLI 확장에 대한 자세한 내용은 az ml 설명서를 참조하세요.

작업 영역에 대한 문제를 확인하려면 작업 영역 진단을 사용하는 방법을 참조하세요.

작업 영역을 새 Azure 구독으로 이동하는 방법을 알아보려면 작업 영역 이동 방법을 참조하세요.

최신 보안 업데이트로 Azure Machine Learning을 최신 상태로 유지하는 방법에 대한 자세한 내용은 취약성 관리를 참조하세요.