다음을 통해 공유


Azure Machine Learning 컴퓨팅 인스턴스를 만듭니다.

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

Azure Machine Learning 작업 영역에서 컴퓨팅 인스턴스를 만드는 방법을 알아봅니다.

클라우드에서 완전 구성 및 관리형 개발 환경으로 컴퓨팅 인스턴스를 사용합니다. 개발 및 테스트를 위해 인스턴스를 학습 컴퓨팅 대상으로 사용할 수도 있습니다. 컴퓨팅 인스턴스는 여러 작업을 병렬로 실행할 수 있으며 1개의 작업 큐가 있습니다. 개발 환경에서는 컴퓨팅 인스턴스를 작업 영역에 있는 다른 사용자와 공유할 수 없습니다.

이 문서에서는 컴퓨팅 인스턴스를 만드는 방법을 알아봅니다. 컴퓨팅 인스턴스의 시작, 중지, 다시 시작, 삭제를 관리하는 단계는 Azure Machine Learning 컴퓨팅 인스턴스 관리를 참조하세요.

또한 설정 스크립트를 사용하여 고유한 사용자 지정 환경으로 컴퓨팅 인스턴스를 만들 수 있습니다.

컴퓨팅 인스턴스를 사용하면 기업에서 SSH 포트를 열지 않아도 가상 네트워크 환경에서 작업을 안전하게 실행할 수 있습니다. 작업은 컨테이너화된 환경에서 실행되며 모델 종속성을 Docker 컨테이너로 패키지합니다.

참고 항목

이 문서에서는 일부 예에서 CLI v2를 사용합니다. 여전히 CLI v1을 사용하는 경우 Azure Machine Learning 컴퓨팅 클러스터 CLI v1) 만들기를 참조하세요.

필수 조건

  • Azure Machine Learning 작업 영역 자세한 내용은 Azure Machine Learning 작업 영역 만들기를 참조하세요. 컴퓨팅 인스턴스 만들기가 성공하려면 스토리지 계정에서 "스토리지 계정 키 액세스 허용" 옵션을 사용하도록 설정해야 합니다.

다른 필수 구성 요소에 사용 중인 환경에 대한 탭을 선택합니다.

이 코드를 실행하여 Azure Machine Learning 작업 영역에 연결합니다.

다음 코드에서 구독 ID, 리소스 그룹 이름 및 작업 영역 이름을 바꿉니다. 이러한 값을 찾으려면 다음을 수행합니다.

  1. Azure Machine Learning Studio에 로그인합니다.
  2. 사용하려는 작업 영역을 엽니다.
  3. 오른쪽 위 Azure Machine Learning 스튜디오 도구 모음에서 작업 영역 이름을 선택합니다.
  4. 작업 영역, 리소스 그룹 및 구독 ID의 값을 코드에 복사합니다.

적용 대상: Python SDK azure-ai-ml v2(현재)

# Enter details of your AML workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AML_WORKSPACE_NAME>"
# get a handle to the workspace
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

ml_client = MLClient(
    DefaultAzureCredential(), subscription_id, resource_group, workspace
)

ml_client는 다른 리소스와 작업을 관리하는 데 사용할 작업 영역에 대한 처리기입니다.

만들기

예상 시간: 약 5분이 소요됩니다.

컴퓨팅 인스턴스 만들기는 작업 영역에 대한 일회성 프로세스입니다. 컴퓨팅을 개발 워크스테이션으로 다시 사용하거나 학습을 위한 계산 대상으로 재사용할 수 있습니다. 여러 컴퓨팅 인스턴스를 작업 영역에 연결할 수 있습니다.

컴퓨팅 인스턴스 만들기에 적용되는 VM 제품군 할당량 및 총 지역 할당량당 지역별 전용 코어는 Azure Machine Learning 학습 컴퓨팅 클러스터 할당량과 통합 및 공유됩니다. 컴퓨팅 인스턴스를 중지해도 컴퓨팅 인스턴스를 다시 시작할 수 있도록 할당량이 해제되지 않습니다. 할당량은 용량 보장이 아닌 Azure 리소스에 대한 크레딧 한도입니다. 컴퓨팅 인스턴스를 다시 시작하는 것은 여전히 해당 지역의 사용 가능한 용량에 따라 달라집니다. SKU에 대한 지역에 용량 문제가 있는 경우 컴퓨팅 인스턴스를 다시 시작하지 못할 수 있습니다. 컴퓨팅 인스턴스가 만들어지면 가상 머신 크기를 변경할 수 없습니다.

컴퓨팅 인스턴스를 만드는 가장 빠른 방법은 시작하는 데 필요한 리소스 만들기을 따르는 것입니다.

또는 다음 예제를 사용하여 더 많은 옵션을 사용하여 컴퓨팅 인스턴스를 만듭니다.

적용 대상: Python SDK azure-ai-ml v2(현재)

# Compute Instances need to have a unique name across the region.
# Here we create a unique name with current datetime
from azure.ai.ml.entities import ComputeInstance, AmlCompute
import datetime

ci_basic_name = "basic-ci" + datetime.datetime.now().strftime("%Y%m%d%H%M")
ci_basic = ComputeInstance(name=ci_basic_name, size="STANDARD_DS3_v2")
ml_client.begin_create_or_update(ci_basic).result()

컴퓨팅 인스턴스를 만들기 위한 클래스, 메서드 및 매개 변수에 대한 자세한 내용은 다음 참조 문서를 참조하세요.

Azure Resource Manager 템플릿을 사용하여 계산 인스턴스를 만들 수도 있습니다.

유휴 종료 구성

켜져 있지만 비활성 상태인 컴퓨팅 인스턴스에 대해 요금이 청구되지 않도록 비활성으로 인해 컴퓨팅 인스턴스를 종료할 시기를 구성할 수 있습니다.

아래 조건이 충족되면 컴퓨팅 인스턴스가 비활성으로 간주됩니다.

  • 활성 Jupyter 커널 세션 없음(Jupyter, JupyterLab 또는 대화형 Notebook을 통한 Notebook 사용 없음으로 변환됨)
  • 활성 Jupyter 터미널 세션 없음
  • 활성 Azure Machine Learning 실행 또는 실험 없음
  • VS Code 연결이 없습니다. 비활성으로 간주되려면 컴퓨팅 인스턴스에 대한 VS Code 연결을 닫아야 합니다. VS Code가 3시간 동안 작업을 검색하지 않으면 세션이 자동 종료됩니다.
  • 컴퓨팅에서 실행 중인 사용자 지정 애플리케이션이 없습니다.

사용자 지정 애플리케이션이 실행 중인 경우 컴퓨팅 인스턴스는 유휴 상태로 간주되지 않습니다. 사용자 지정 애플리케이션을 사용하여 컴퓨팅을 자동으로 종료하려면 일정을 설정하거나 사용자 지정 애플리케이션을 제거해야 합니다. 또한 비활성 기간에 대한 몇 가지 기본 경계가 있습니다. 컴퓨팅 인스턴스는 최소 15분에서 최대 3일 동안 비활성 상태여야 합니다. 또한 활동을 확인하기 위해 VS Code SSH 연결을 추적하지 않습니다.

또한 컴퓨팅 인스턴스가 일정 시간 동안 이미 유휴 상태이고 유휴 종료 설정이 현재 유휴 기간보다 짧은 시간으로 업데이트되면 유휴 시간 클록이 0으로 초기화됩니다. 예를 들어, 컴퓨팅 인스턴스가 이미 20분 동안 유휴 상태이고 종료 설정이 15분으로 업데이트된 경우 유휴 시간 클록은 0으로 초기화됩니다.

Important

컴퓨팅 인스턴스가 관리 ID로도 구성된 경우 관리 ID에 Azure Machine Learning 작업 영역에 대한 기여자 액세스 권한이 없으면 비활성으로 인해 컴퓨팅 인스턴스가 종료되지 않습니다. 권한 할당에 대한 자세한 내용은 Azure Machine Learning 작업 영역 액세스 관리를 참조하세요.

다음 인터페이스를 통해 컴퓨팅 인스턴스를 만드는 동안 또는 기존 컴퓨팅 인스턴스에 대해 설정을 구성할 수 있습니다.

적용 대상: Python SDK azure-ai-ml v2(현재)

새 컴퓨팅 인스턴스를 만들 때 idle_time_before_shutdown_minutes 매개 변수를 추가합니다.

# Note that idle_time_before_shutdown has been deprecated.
ComputeInstance(name=ci_basic_name, size="STANDARD_DS3_v2", idle_time_before_shutdown_minutes="30")

Python SDK를 사용하여 기존 컴퓨팅 인스턴스의 유휴 시간을 변경할 수 없습니다.

다음을 사용하여 유휴 시간을 변경할 수도 있습니다.

  • REST API

    엔드포인트:

    POST https://management.azure.com/subscriptions/{SUB_ID}/resourceGroups/{RG_NAME}/providers/Microsoft.MachineLearningServices/workspaces/{WS_NAME}/computes/{CI_NAME}/updateIdleShutdownSetting?api-version=2021-07-01
    

    본문:

    {
        "idleTimeBeforeShutdown": "PT30M" // this must be a string in ISO 8601 format
    }
    
  • ARM 템플릿: 새 컴퓨팅 인스턴스를 만드는 동안에만 구성 가능

    // Note that this is just a snippet for the idle shutdown property in an ARM template
    {
        "idleTimeBeforeShutdown":"PT30M" // this must be a string in ISO 8601 format
    }
    

자동 시작 및 중지 예약하기

자동 종료 및 자동 시작에 대한 여러 일정을 정의합니다. 예를 들어 월요일~목요일에는 오전 9시에 시작하여 오후 6시에 중지하는 일정을 만들고 금요일의 경우 오전 9시에 시작하여 오후 4시에 중지하는 두 번째 일정을 만듭니다. 컴퓨팅 인스턴스당 총 4개의 일정을 만들 수 있습니다.

컴퓨팅 인스턴스 대신 만들기에 대한 일정도 정의할 수 있습니다. 중지된 상태에서 컴퓨팅 인스턴스를 만드는 일정을 만들 수 있습니다. 중지된 컴퓨팅 인스턴스는 다른 사용자를 대신하여 컴퓨팅 인스턴스를 만들 때 특히 유용합니다.

예약된 종료 전에 사용자에게 컴퓨팅 인스턴스가 종료될 것임을 알리는 경고가 표시됩니다. 이 시점에서 사용자는 예정된 종료 이벤트를 해제하도록 선택할 수 있습니다. 예를 들어, 컴퓨팅 인스턴스를 사용하는 중인 경우입니다.

일정 만들기

적용 대상: Python SDK azure-ai-ml v2(현재)

from azure.ai.ml.entities import ComputeInstance, ComputeSchedules, ComputeStartStopSchedule, RecurrenceTrigger, RecurrencePattern
from azure.ai.ml.constants import TimeZone
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

ci_minimal_name = "ci-name"
ci_start_time = "2023-06-21T11:47:00" #specify your start time in the format yyyy-mm-ddThh:mm:ss

rec_trigger = RecurrenceTrigger(start_time=ci_start_time, time_zone=TimeZone.INDIA_STANDARD_TIME, frequency="week", interval=1, schedule=RecurrencePattern(week_days=["Friday"], hours=15, minutes=[30]))
myschedule = ComputeStartStopSchedule(trigger=rec_trigger, action="start")
com_sch = ComputeSchedules(compute_start_stop=[myschedule])

my_compute = ComputeInstance(name=ci_minimal_name, schedules=com_sch)
ml_client.compute.begin_create_or_update(my_compute)

Resource Manager 템플릿으로 일정 만들기

Resource Manager 템플릿을 사용하여 컴퓨팅 인스턴스의 자동 시작 및 중지를 예약할 수 있습니다.

Resource Manager 템플릿에서 다음을 추가합니다.

"schedules": "[parameters('schedules')]"

그런 다음 cron 또는 LogicApps 식을 사용하여 매개 변수 파일에서 인스턴스를 시작 또는 중지하는 일정을 정의합니다.

  "schedules": {
    "value": {
      "computeStartStop": [
        {
          "triggerType": "Cron",
          "cron": {
            "timeZone": "UTC",
            "expression": "0 18 * * *"
          },
          "action": "Stop",
          "status": "Enabled"
        },
        {
          "triggerType": "Cron",
          "cron": {
            "timeZone": "UTC",
            "expression": "0 8 * * *"
          },
          "action": "Start",
          "status": "Enabled"
        },
        {
          "triggerType": "Recurrence",
          "recurrence": {
            "frequency": "Day",
            "interval": 1,
            "timeZone": "UTC",
            "schedule": {
              "hours": [17],
              "minutes": [0]
            }
          },
          "action": "Stop",
          "status": "Enabled"
        }
      ]
    }
  }
  • 작업의 값은 Start 또는 Stop일 수 있습니다.

  • Recurrence 트리거 유형의 경우 이 반복 스키마와 함께 논리 앱과 동일한 구문을 사용합니다.

  • cron 트리거 유형의 경우 표준 크론 구문을 사용합니다.

    // Crontab expression format: 
    // 
    // * * * * * 
    // - - - - - 
    // | | | | | 
    // | | | | +----- day of week (0 - 6) (Sunday=0) 
    // | | | +------- month (1 - 12) 
    // | | +--------- day of month (1 - 31) 
    // | +----------- hour (0 - 23) 
    // +------------- min (0 - 59) 
    // 
    // Star (*) in the value field above means all legal values as in 
    // braces for that column. The value column can have a * or a list 
    // of elements separated by commas. An element is either a number in 
    // the ranges shown above or two numbers in the range separated by a 
    // hyphen (meaning an inclusive range). 
    

Azure Policy에서 일정을 기본값으로 지원

Azure Policy를 사용하여 구독의 모든 컴퓨팅 인스턴스에 대해 종료 일정이 존재하도록 하거나 아무것도 없는 경우 일정을 기본값으로 설정합니다. 다음은 10 PM PST에서 종료 일정을 기본값으로 하는 샘플 정책입니다.

{
    "mode": "All",
    "policyRule": {
     "if": {
      "allOf": [
       {
        "field": "Microsoft.MachineLearningServices/workspaces/computes/computeType",
        "equals": "ComputeInstance"
       },
       {
        "field": "Microsoft.MachineLearningServices/workspaces/computes/schedules",
        "exists": "false"
       }
      ]
     },
     "then": {
      "effect": "append",
      "details": [
       {
        "field": "Microsoft.MachineLearningServices/workspaces/computes/schedules",
        "value": {
         "computeStartStop": [
          {
           "triggerType": "Cron",
           "cron": {
            "startTime": "2021-03-10T21:21:07",
            "timeZone": "Pacific Standard Time",
            "expression": "0 22 * * *"
           },
           "action": "Stop",
           "status": "Enabled"
          }
         ]
        }
       }
      ]
     }
    }
}

대신 만들기

관리자는 데이터 과학자를 대신하여 컴퓨팅 인스턴스를 만들고 다음을 통해 해당 인스턴스를 할당할 수 있습니다.

보안을 강화하기 위해 데이터 과학자를 대신하여 컴퓨팅 인스턴스를 만들고 인스턴스를 할당할 때 컴퓨팅 인스턴스에 설치 스크립트 또는 사용자 지정 앱이 있는 경우 만드는 동안 SSO(Single Sign-On)가 사용하지 않도록 설정됩니다.

할당된 사용자는 컴퓨팅 인스턴스에서 SSO 설정을 업데이트하여 컴퓨팅이 할당된 후 컴퓨팅 인스턴스 자체에서 SSO를 사용하도록 설정해야 합니다. 할당된 사용자는 자신의 역할 MachineLearningServices/workspaces/computes/enableSso/action에 다음 권한/작업이 있어야 합니다. SSO를 사용하도록 설정하기 위해 사용자에게 할당된 컴퓨팅 쓰기(만들기) 권한이 필요하지 않습니다.

사용자에게 할당된 단계는 다음과 같습니다. 컴퓨팅 인스턴스 작성자는 보안상의 이유로 해당 컴퓨팅 인스턴스에서 SSO를 사용하도록 설정할 수 없습니다.

  1. Azure Machine Learning 스튜디오의 왼쪽 탐색 창에서 컴퓨팅을 클릭합니다.

  2. SSO를 사용하도록 설정해야 하는 컴퓨팅 인스턴스의 이름을 클릭합니다.

  3. Single Sign-On 세부 정보 섹션을 편집합니다.

    사용자에게 할당된 컴퓨팅 인스턴스 세부 정보 페이지에서 SSO를 업데이트할 수 있다는 것을 보여주는 스크린샷.

  4. Single Sign-On 토글을 사용하도록 설정합니다.

  5. 저장합니다. 업데이트하는 데 시간이 좀 걸립니다.

관리 ID 할당

시스템 또는 사용자가 할당한 관리 ID를 컴퓨팅 인스턴스에 할당하여 스토리지와 같은 다른 Azure 리소스에 대해 인증할 수 있습니다. 인증에 관리 ID를 사용하면 작업 영역 보안 및 관리를 개선하는 데 도움이 됩니다. 예를 들어 사용자가 컴퓨팅 인스턴스에 로그인할 때만 학습 데이터에 액세스하도록 허용할 수 있습니다. 또는 일반적인 사용자 할당 관리 ID를 사용하여 특정 스토리지 계정에 대한 액세스를 허용합니다.

Important

컴퓨팅 인스턴스가 유휴 종료로 구성된 경우 관리 ID에 Azure Machine Learning 작업 영역에 대한 기여자 액세스 권한이 없으면 비활성으로 인해 컴퓨팅 인스턴스가 종료되지 않습니다. 권한 할당에 대한 자세한 내용은 Azure Machine Learning 작업 영역 액세스 관리를 참조하세요.

SDK V2를 사용하여 시스템 할당 관리 ID를 할당하여 컴퓨팅 인스턴스를 만듭니다.

from azure.ai.ml import MLClient
from azure.identity import ManagedIdentityCredential
client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID", None)
credential = ManagedIdentityCredential(client_id=client_id)
ml_client = MLClient(credential, subscription_id, resource_group, workspace)

SDK V1을 사용할 수도 있습니다.

from azureml.core.authentication import MsiAuthentication
from azureml.core import Workspace
client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID", None)
auth = MsiAuthentication(identity_config={"client_id": client_id})
workspace = Workspace.get("chrjia-eastus", auth=auth, subscription_id=subscription_id, resource_group=resource_group, location="East US")

관리 ID가 만들어지면 데이터 저장소의 스토리지 계정에 대한 최소한 Storage Blob 데이터 읽기 권한자 역할을 관리 ID에 부여합니다. 스토리지 서비스 액세스를 참조하세요. 그런 다음, 컴퓨팅 인스턴스에서 작업할 때 관리 ID가 데이터 저장소에 대해 인증하는 데 자동으로 사용됩니다.

참고 항목

만들어진 시스템 관리 ID의 이름은 Microsoft Entra ID에서 /workspace-name/computes/compute-instance-name 형식입니다.

관리 ID를 수동으로 사용하여 다른 Azure 리소스에 대해 인증할 수도 있습니다. 다음 예제에서는 이 토큰을 사용하여 Azure Resource Manager 액세스 토큰을 가져오는 방법을 보여 줍니다.

import requests

def get_access_token_msi(resource):
    client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID", None)
    resp = requests.get(f"{os.environ['MSI_ENDPOINT']}?resource={resource}&clientid={client_id}&api-version=2017-09-01", headers={'Secret': os.environ["MSI_SECRET"]})
    resp.raise_for_status()
    return resp.json()["access_token"]

arm_access_token = get_access_token_msi("https://management.azure.com")

관리 ID와 함께 Azure CLI를 인증에 사용하려면 로그인할 때 ID 클라이언트 ID를 사용자 이름으로 지정합니다.

az login --identity --username $DEFAULT_IDENTITY_CLIENT_ID

참고 항목

관리 ID를 사용하려고 할 때 azcopy를 사용할 수 없습니다. azcopy login --identity가 작동하지 않습니다.

SSH 액세스 사용

SSH 액세스는 기본적으로 사용하지 않도록 설정되어 있습니다. 만들기 후에는 SSH 액세스를 사용하거나 사용하지 않도록 설정할 수 없습니다. VS Code 원격을 사용하여 대화형으로 디버깅하려면 액세스를 사용하도록 설정해야 합니다.

다음: 고급 설정을 선택한 후:

  1. SSH 액세스 사용을 설정합니다.
  2. SSH 공개 키 원본의 드롭다운에서 옵션 중 하나를 선택합니다.
    • 새 키 쌍을 생성하는 경우:
      1. 키 쌍 이름에 키의 이름을 입력합니다.
      2. 만들기를 실행합니다.
      3. 프라이빗 키 다운로드 및 컴퓨팅 만들기를 선택합니다. 키는 일반적으로 다운로드 폴더에 다운로드합니다.
    • Azure에 저장된 기존 공개 키 사용을 선택한 경우 저장된 키에서 키를 검색하여 선택합니다.
    • 기존 공개 키 사용을 선택하는 경우 단일 줄 형식("ssh-rsa"로 시작) 또는 다중 회선 PEM 형식으로 RSA 공개 키를 제공합니다. Linux 및 OS X에서 ssh-keygen을 사용하거나 Windows에서 PuTTYGen을 사용하여 SSH 키를 생성할 수 있습니다.

나중에 SSH 키 설정

만든 후에는 SSH를 사용하거나 사용하지 않도록 설정할 수 없지만 나중에 SSH 지원 컴퓨팅 인스턴스에서 SSH 키를 설정할 수 있는 옵션이 있습니다. 이를 통해 만들기 후 SSH 키를 설정할 수 있습니다. 이렇게 하려면 컴퓨팅 인스턴스에서 SSH를 사용하도록 설정하도록 선택하고 SSH 공개 키 원본으로 "나중에 SSH 키 설정"을 선택합니다. 컴퓨팅 인스턴스가 만들어진 후 컴퓨팅 인스턴스의 세부 정보 페이지를 방문하여 SSH 키를 편집하도록 선택할 수 있습니다. 여기에서 SSH 키를 추가할 수 있습니다.

이에 대한 일반적인 사용 사례의 예는 다른 사용자를 대신하여 컴퓨팅 인스턴스를 만드는 경우입니다(대신 만들기 참조). 다른 사용자를 대신하여 컴퓨팅 인스턴스를 프로비전할 때 SSH를 사용하도록 설정할 수 있습니다. 나중에 SSH 키 설정을 선택하여 새 컴퓨팅 인스턴스 소유자를 선택합니다. 이를 통해 컴퓨팅 인스턴스의 새 소유자는 이전 단계에 따라 컴퓨팅 인스턴스가 만들어지고 할당된 후 새로 소유한 컴퓨팅 인스턴스에 대한 SSH 키를 설정할 수 있습니다.

SSH와 연결

SSH 액세스를 사용하는 컴퓨팅을 만든 후 액세스하려면 다음 단계를 사용합니다.

  1. 작업 영역 리소스에서 컴퓨팅을 찾습니다.

    1. 왼쪽에서 Compute를 선택합니다.
    2. 위쪽에 있는 탭을 사용하여 컴퓨팅 인스턴스 또는 컴퓨팅 클러스터를 선택하여 사용자의 머신을 찾습니다.
  2. 리소스 목록에서 컴퓨팅 이름을 선택합니다.

  3. 연결 문자열을 찾습니다.

    • 컴퓨팅 인스턴스의 경우 세부 정보 섹션 맨 위에서 연결을 선택합니다.

      세부 정보 페이지 맨 위의 연결 도구를 보여 주는 스크린샷

    • 컴퓨팅 클러스터의 경우 위쪽에서 노드를 선택한 다음, 사용자 노드에 해당하는 테이블에서 연결 문자열을 선택합니다. 컴퓨팅 클러스터의 노드에 대한 연결 문자열을 보여 주는 스크린샷

  4. 연결 문자열을 복사합니다.

  5. Windows의 경우 PowerShell 또는 명령 프롬프트 창을 엽니다.

    1. 키가 저장된 디렉터리 또는 폴더로 이동합니다.

    2. 연결 문자열에 -i 플래그를 추가하여 프라이빗 키를 찾고 저장되는 위치를 가리킵니다.

      ssh -i <keyname.pem> azureuser@... (rest of connection string)

  6. Linux 사용자의 경우 Azure에서 Linux VM에 대한 SSH 키 쌍 만들기 및 사용의 단계를 수행합니다.

  7. SCP 사용:

    scp -i key.pem -P {port} {fileToCopyFromLocal } azureuser@yourComputeInstancePublicIP:~/{destination}

  • REST API

컴퓨팅 인스턴스를 만드는 데이터 과학자에게는 다음과 같은 Azure RBAC(Azure Role-based Access Control) 사용 권한이 필요합니다.

  • Microsoft.MachineLearningServices/workspaces/computes/start/action
  • Microsoft.MachineLearningServices/workspaces/computes/stop/action
  • Microsoft.MachineLearningServices/workspaces/computes/restart/action
  • Microsoft.MachineLearningServices/workspaces/computes/applicationaccess/action
  • Microsoft.MachineLearningServices/workspaces/computes/updateSchedules/action

데이터 과학자는 컴퓨팅 인스턴스를 시작, 중지, 다시 시작할 수 있습니다. 다음에 대해 컴퓨팅 인스턴스를 사용할 수 있습니다.

  • Jupyter
  • JupyterLab
  • RStudio
  • Posit Workbench(이전의 RStudio Workbench)
  • 통합 Notebook

RStudio 또는 Posit Workbench와 같은 사용자 지정 애플리케이션 추가

컴퓨팅 인스턴스를 만들 때 RStudio 또는 Posit Workbench(이전의 RStudio Workbench)와 같은 다른 애플리케이션을 설정할 수 있습니다. 스튜디오에서 다음 단계에 따라 컴퓨팅 인스턴스에 사용자 지정 애플리케이션을 설정합니다.

  1. 새 컴퓨팅 인스턴스 만들기 양식을 작성합니다.
  2. 애플리케이션을 선택합니다.
  3. 애플리케이션 추가를 선택합니다.

사용자 지정 서비스 설정을 보여 주는 스크린샷

Posit Workbench(이전의 RStudio Workbench) 설정

RStudio는 ML 및 데이터 과학 프로젝트를 위한 R 개발자들 사이에서 가장 자주 사용되는 IDE 중 하나입니다. 다른 개발 도구와 함께 RStudio에 대한 액세스를 제공하는 Posit Workbench를 쉽게 설정하여 자체 Posit 라이선스를 사용하여 컴퓨팅 인스턴스에서 실행하고 Posit Workbench가 제공하는 풍부한 기능 집합에 액세스할 수 있습니다.

  1. 컴퓨팅 인스턴스를 만들 때 위에 나열된 단계에 따라 애플리케이션 추가를 수행합니다.
  2. 애플리케이션 드롭다운에서 Posit Workbench(사용자 라이선스 사용)를 선택하고 라이선스 키 필드에 Posit Workbench 라이선스 키를 입력합니다. Posit Workbench 라이선스 또는 평가판 라이선스는 posit에서 가져올 수 있습니다.
  3. 만들기를 선택하여 Posit Workbench 애플리케이션을 컴퓨팅 인스턴스에 추가합니다.

Posit Workbench 설정을 보여 주는 스크린샷.

Important

프라이빗 링크 작업 영역을 사용하는 경우 docker 이미지, pkg-containers.githubusercontent.com 및 ghcr.io에 액세스할 수 있는지 확인합니다. 또한 8704-8993 범위에서 게시된 포트를 사용합니다. Posit Workbench(이전의 RStudio Workbench)의 경우 https://www.wyday.com에 대한 네트워크 액세스를 제공하여 라이선스에 액세스할 수 있는지 확인합니다.

참고 항목

  • Posit Workbench에서 작업 영역 파일 저장소에 액세스하기 위한 지원은 아직 제공되지 않습니다.
  • Posit Workbench의 여러 인스턴스에 액세스할 때 "400 잘못된 요청. 요청 헤더 또는 쿠키가 너무 큽니다." 오류가 표시되면 새 브라우저를 사용하거나 시크릿 모드의 브라우저에서 액세스합니다.

RStudio 설정(오픈 소스)

RStudio를 사용하려면 다음과 같이 사용자 지정 애플리케이션을 설정합니다.

  1. 컴퓨팅 인스턴스를 만들 때 이전 단계에 따라 애플리케이션을 추가합니다.

  2. 애플리케이션 드롭다운 목록에서 사용자 지정 애플리케이션을 선택합니다.

  3. 사용하려는 애플리케이션 이름을 구성합니다.

  4. 대상 포트 8787에서 실행되도록 애플리케이션을 설정합니다. 아래 나열된 RStudio 오픈 소스용 Docker 이미지는 이 대상 포트에서 실행되어야 합니다.

  5. 게시된 포트 8787에서 액세스할 수 있도록 애플리케이션을 설정합니다. 원하는 경우 다른 게시된 포트에서 액세스하도록 애플리케이션을 구성할 수 있습니다.

  6. Docker 이미지ghcr.io/azure/rocker-rstudio-ml-verse:latest로 가리킵니다.

  7. 만들기를 선택하여 RStudio를 컴퓨팅 인스턴스의 사용자 지정 애플리케이션으로 설정합니다.

RStudio를 사용자 지정 애플리케이션으로 설정하기 위한 양식을 보여 주는 스크린샷

Important

프라이빗 링크 작업 영역을 사용하는 경우 docker 이미지, pkg-containers.githubusercontent.com 및 ghcr.io에 액세스할 수 있는지 확인합니다. 또한 8704-8993 범위에서 게시된 포트를 사용합니다. Posit Workbench(이전의 RStudio Workbench)의 경우 https://www.wyday.com에 대한 네트워크 액세스를 제공하여 라이선스에 액세스할 수 있는지 확인합니다.

다른 사용자 지정 애플리케이션 설정

Docker 이미지에 애플리케이션을 제공하여 컴퓨팅 인스턴스에 다른 사용자 지정 애플리케이션을 설정합니다.

  1. 컴퓨팅 인스턴스를 만들 때 이전 단계에 따라 애플리케이션을 추가합니다.
  2. 애플리케이션 드롭다운에서 사용자 지정 애플리케이션을 선택합니다.
  3. 애플리케이션 이름, 애플리케이션을 실행할 대상 포트, 애플리케이션에 액세스하려는 게시된 포트 및 애플리케이션이 포함된 Docker 이미지를 구성합니다. 사용자 지정 이미지가 Azure Container Registry에 저장된 경우 애플리케이션 사용자에 대한 기여자 역할을 할당합니다. 역할 할당에 대한 자세한 내용은 Azure Machine Learning 작업 영역 액세스 관리를 참조하세요.
  4. 선택적으로 애플리케이션에 사용할 환경 변수를 추가합니다.
  5. 바인드 탑재를 사용하여 기본 스토리지 계정의 파일에 대한 액세스를 추가합니다.
    • 호스트 경로/home/azureuser/cloudfiles를 지정합니다.
    • 컨테이너 경로/home/azureuser/cloudfiles를 지정합니다.
    • 이 탑재를 추가하려면 추가를 선택합니다. 파일이 탑재되기 때문에 파일에 대한 변경 내용은 다른 컴퓨팅 인스턴스 및 애플리케이션에서 사용할 수 있습니다.
  6. 만들기를 선택하여 컴퓨팅 인스턴스에 사용자 지정 애플리케이션을 설정합니다.

사용자 지정 애플리케이션 설정을 보여 주는 스크린샷

Important

프라이빗 링크 작업 영역을 사용하는 경우 docker 이미지, pkg-containers.githubusercontent.com 및 ghcr.io에 액세스할 수 있는지 확인합니다. 또한 8704-8993 범위에서 게시된 포트를 사용합니다. Posit Workbench(이전의 RStudio Workbench)의 경우 https://www.wyday.com에 대한 네트워크 액세스를 제공하여 라이선스에 액세스할 수 있는지 확인합니다.

Studio에서 사용자 지정 애플리케이션에 액세스

Studio에서 설정한 사용자 지정 애플리케이션에 액세스합니다.

  1. 왼쪽에서 Compute를 선택합니다.
  2. 컴퓨팅 인스턴스 탭의 애플리케이션 열에서 애플리케이션을 확인합니다.

사용자 지정 애플리케이션에 대한 스튜디오 액세스를 보여 주는 스크린샷

참고 항목

링크를 통해 액세스할 수 있을 때까지 사용자 지정 애플리케이션을 설정한 후 몇 분 정도 걸릴 수 있습니다. 소요되는 시간은 사용자 지정 애플리케이션에 사용되는 이미지의 크기에 따라 달라집니다. 애플리케이션에 액세스하려고 할 때 502 오류 메시지가 표시되면 애플리케이션이 설정될 때까지 잠시 기다렸다가 다시 시도합니다. Azure Container Registry에서 사용자 지정 이미지를 가져오는 경우 작업 영역에 대한 기여자 역할이 필요합니다. 역할 할당에 대한 자세한 내용은 Azure Machine Learning 작업 영역 액세스 관리를 참조하세요.