자습서: 템플릿을 사용하여 안전한 작업 영역을 만드는 방법

템플릿은 재현 가능한 서비스 배포를 만드는 편리한 방법을 제공합니다. 템플릿은 템플릿을 사용할 때 제공한 일부 정보를 사용하여 만들 항목을 정의합니다. 예를 들어 Azure Machine Learning 작업 영역에 대해 고유한 이름을 지정합니다.

이 자습서에서는 Microsoft BicepHashicorp Terraform 템플릿을 사용하여 다음 Azure 리소스를 만드는 방법에 대해 알아봅니다.

  • Azure Virtual Network. 이 VNet 내부에서 보호되는 리소스는 다음과 같습니다.
    • Azure Machine Learning 작업 영역
      • Azure Machine Learning 컴퓨팅 인스턴스
      • Azure Machine Learning 컴퓨팅 클러스터
    • Azure Storage Account
    • Azure Key Vault
    • Azure Application Insights
    • Azure Container Registry
    • Azure Bastion 호스트
    • Azure Machine Learning Virtual Machine(Data Science Virtual Machine)
    • Bicep 템플릿은 Azure Kubernetes Service 클러스터 및 이에 대한 별도의 리소스 그룹도 만듭니다.

이 문서의 단계 대신 Azure Machine Learning 관리형 가상 네트워크를 사용하는 것이 좋습니다. 관리되는 가상 네트워크를 통해 Azure Machine Learning은 작업 영역 및 관리 컴퓨팅에 대한 네트워크 격리 작업을 처리합니다. Azure Storage 계정과 같이 작업 영역에 필요한 리소스에 대한 프라이빗 엔드포인트를 추가할 수도 있습니다. 자세한 내용은 작업 영역 관리되는 네트워크 격리를 참조하세요.

필수 조건

이 문서의 단계를 사용하려면 먼저 Azure 구독이 있어야 합니다. Azure 구독이 없는 경우 무료 계정을 만드세요.

또한 Bash 또는 Azure PowerShell 명령줄이 있어야 합니다.

이 문서를 참조하는 경우 각 섹션의 탭을 사용하여 Bicep 또는 Terraform 템플릿을 사용하는 방법에 대한 정보를 볼지 여부를 선택합니다.

  1. 명령줄 도구를 설치하려면 Bicep 개발 및 배포 환경 설치를 참조합니다.

  2. 이 문서에서 사용되는 Bicep 템플릿은 https://github.com/Azure/azure-quickstart-templates/blob/master/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure에 있습니다. 다음 명령을 사용하여 GitHub 리포지토리를 개발 환경에 복제합니다.

    개발 환경에 git 명령이 없으면 https://git-scm.com/에서 설치할 수 있습니다.

    git clone https://github.com/Azure/azure-quickstart-templates
    cd azure-quickstart-templates/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure
    

템플릿 이해

Bicep 템플릿은 modules 하위 디렉터리에 있는 main.bicep.bicep 파일로 구성됩니다. 다음 표에서는 각 파일이 담당하는 작업에 대해 설명합니다.

파일 설명
main.bicep 매개 변수 및 변수입니다. 매개 변수 및 변수를 modules 하위 디렉터리의 다른 모듈에 전달합니다.
vnet.bicep Azure Virtual Network 및 서브넷을 정의합니다.
nsg.bicep VNet에 대한 네트워크 보안 그룹 규칙을 정의합니다.
bastion.bicep Azure Bastion 호스트 및 서브넷을 정의합니다. Azure Bastion을 사용하면 웹 브라우저를 사용하여 VNet 내의 VM에 쉽게 액세스할 수 있습니다.
dsvmjumpbox.bicep DSVM(Data Science Virtual Machine)을 정의합니다. Azure Bastion은 웹 브라우저를 통해 이 VM에 액세스하는 데 사용됩니다.
storage.bicep 기본 스토리지에 대한 작업 영역에서 사용하는 Azure Storage 계정을 정의합니다.
keyvault.bicep 작업 영역에서 사용하는 Azure Key Vault를 정의합니다.
containerregistry.bicep 작업 영역에서 사용하는 Azure Container Registry를 정의합니다.
applicationinsights.bicep 작업 영역에서 사용하는 Azure Application Insights 인스턴스를 정의합니다.
machinelearningnetworking.bicep Azure Machine Learning 작업 영역에 대한 프라이빗 엔드포인트 및 DNS 영역을 정의합니다.
Machinelearning.bicep Azure Machine Learning 작업 영역을 정의합니다.
machinelearningcompute.bicep Azure Machine Learning 컴퓨팅 클러스터 및 컴퓨팅 인스턴스를 정의합니다.
privateaks.bicep Azure Kubernetes Services 클러스터 인스턴스를 정의합니다.

Important

예제 템플릿이 항상 Azure Machine Learning용 최신 API 버전을 사용하는 것은 아닙니다. 템플릿을 사용하기 전에 최신 API 버전을 사용하도록 수정하는 것이 좋습니다. Azure Machine Learning용 최신 API 버전에 대한 자세한 내용은 Azure Machine Learning REST API를 참조하세요.

각 Azure 서비스에는 고유한 API 버전 세트가 있습니다. 특정 서비스의 API에 대한 정보는 Azure REST API 참조에서 서비스 정보를 확인합니다.

API 버전을 업데이트하려면 리소스 종류에 대한 Microsoft.MachineLearningServices/<resource> 항목을 찾아 최신 버전으로 업데이트합니다. 다음 예제는 2022-05-01의 API 버전을 사용하는 Azure Machine Learning 작업 영역에 대한 항목입니다.

resource machineLearning 'Microsoft.MachineLearningServices/workspaces@2022-05-01' = {

Important

DSVM 및 Azure Bastion은 이 자습서의 보안 작업 영역에 연결하는 쉬운 방법으로 사용됩니다. 프로덕션 환경에서는 Azure VPN 게이트웨이 또는 Azure ExpressRoute를 사용하여 온-프레미스 네트워크에서 직접 VNet 내의 리소스에 액세스하는 것이 좋습니다.

템플릿 구성

Bicep 템플릿을 실행하려면 main.bicep 파일이 있는 machine-learning-end-to-end-secure에서 다음 명령을 사용합니다.

  1. 새 Azure 리소스 그룹을 만들려면 다음 명령을 사용합니다. exampleRG를 리소스 그룹 이름으로 바꾸고, eastus를 사용하려는 Azure 지역으로 바꿉니다.

    az group create --name exampleRG --location eastus
    
  2. 템플릿을 실행하려면 다음 명령을 사용합니다. prefix를 고유한 접두사로 바꿉니다. 이 접두사는 Azure Machine Learning에 필요한 Azure 리소스를 만들 때 사용됩니다. securepassword를 점프 상자의 보안 암호로 바꿉니다. 암호는 점프 상자에 대한 로그인 계정에 대한 것입니다(아래 예제의 경우 azureadmin).

    prefix는 5자 이하여야 합니다. 완전히 숫자로만 이루어지거나 ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ? 문자를 포함할 수 없습니다.

    az deployment group create \
        --resource-group exampleRG \
        --template-file main.bicep \
        --parameters \
        prefix=prefix \
        dsvmJumpboxUsername=azureadmin \
        dsvmJumpboxPassword=securepassword
    

작업 영역에 연결

템플릿이 완료되면 다음 단계를 사용하여 DSVM에 연결합니다.

  1. Azure Portal에서 템플릿에 사용한 Azure 리소스 그룹을 선택합니다. 그런 다음, 템플릿에서 만든 Data Science Virtual Machine을 선택합니다. 찾는 데 문제가 있으면 필터 섹션을 사용하여 유형가상 머신으로 필터링합니다.

    Screenshot of filtering and selecting the vm.

  2. Virtual Machine의 개요 섹션에서 연결을 선택한 다음, 드롭다운에서 Bastion을 선택합니다.

    Screenshot of selecting to connect using Bastion.

  3. 메시지가 표시되면 템플릿을 구성할 때 지정한 사용자 이름암호를 입력한 다음, 연결을 선택합니다.

    Important

    DSVM 데스크톱에 처음 연결하면 PowerShell 창이 열리고 스크립트 실행이 시작됩니다. 이 작업이 완료될 때까지 기다린 후에 다음 단계를 계속합니다.

  4. DSVM 데스크톱에서 Microsoft Edge를 시작하고 주소로 https://ml.azure.com을 입력합니다. Azure 구독에 로그인한 다음, 템플릿에서 만든 작업 영역을 선택합니다. 작업 영역에 대한 스튜디오가 표시됩니다.

문제 해결

오류: Windows 컴퓨터 이름은 길이가 15자 이하이거나 전체가 숫자이거나 다음 문자를 포함할 수 없습니다.

이 오류는 DSVM 점프 상자의 이름이 15자보다 크거나 문자 ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ? 중 하나를 포함하는 경우에 발생할 수 있습니다.

Bicep 템플릿을 사용하는 경우 점프 상자 이름은 템플릿에 제공된 접두사 값을 사용하여 프로그래밍 방식으로 생성됩니다. 이름이 15자를 초과하지 않거나 잘못된 문자를 포함하지 않도록 하려면 5자 이하의 접두사를 사용하고 접두사에 ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ? 문자를 사용하지 않아야 합니다.

Terraform 템플릿을 사용하는 경우 dsvm_name 매개 변수를 사용하여 점프 상자 이름이 전달됩니다. 이 오류를 방지하려면 15자를 초과하지 않고 이름의 일부로 ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ? 문자를 사용하지 않아야 합니다.

다음 단계

Important

DSVM(Data Science Virtual Machine) 및 모든 컴퓨팅 인스턴스 리소스에 대한 요금은 실행되는 시간마다 청구됩니다. 과도한 요금을 방지하려면 이러한 리소스를 사용하지 않을 때 중지해야 합니다. 자세한 내용은 다음 문서를 참조하세요.

DSVM에서 보안 작업 영역을 사용하는 방법을 계속 알아보려면 자습서: 하루 만에 Azure Machine Learning을 참조하세요.

일반적인 보안 작업 영역 구성 및 입출력 요구 사항에 대한 자세한 내용은 Azure Machine Learning 보안 작업 영역 트래픽 흐름을 참조하세요.