Share via


CLI v1을 사용하여 Azure Machine Learning 컴퓨팅 인스턴스 만들기 및 관리

적용 대상:Azure CLI ml 확장 v1Python SDK azureml v1

CLI v1을 사용하여 Azure Machine Learning 작업 영역에서 컴퓨팅 인스턴스를 만들고 관리하는 방법에 대해 알아봅니다.

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

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

이 문서에서는 다음 방법을 설명합니다.

  • 컴퓨팅 인스턴스 만들기
  • 컴퓨팅 인스턴스 관리(시작, 중지, 다시 시작, 삭제)

참고 항목

이 문서에서는 CLI v1을 사용하여 이러한 작업을 수행하는 방법만 설명합니다. 컴퓨팅 인스턴스를 관리하는 최신 방법은 Azure Machine Learning 컴퓨팅 클러스터 만들기를 참조하세요.

필수 조건

만들기

Important

아래에 표시된 항목(미리 보기)은 현재 공개 미리 보기로 제공됩니다. 미리 보기 버전은 서비스 수준 계약 없이 제공되며 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

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

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

컴퓨팅 인스턴스 만들기에 적용되는 VM 제품군 할당량 및 총 지역 할당량당 지역별 전용 코어는 Azure Machine Learning 학습 컴퓨팅 클러스터 할당량과 통합 및 공유됩니다. 컴퓨팅 인스턴스를 중지해도 컴퓨팅 인스턴스를 다시 시작할 수 있도록 할당량이 해제되지 않습니다. 컴퓨팅 인스턴스가 만들어지면 가상 머신 크기를 변경할 수 없습니다.

다음 예에서는 컴퓨팅 인스턴스를 만드는 방법을 보여줍니다.

적용 대상:Python SDK azureml v1

import datetime
import time

from azureml.core.compute import ComputeTarget, ComputeInstance
from azureml.core.compute_target import ComputeTargetException

# Choose a name for your instance
# Compute instance name should be unique across the azure region
compute_name = "ci{}".format(ws._workspace_id)[:10]

# Verify that instance does not exist already
try:
    instance = ComputeInstance(workspace=ws, name=compute_name)
    print('Found existing instance, use it.')
except ComputeTargetException:
    compute_config = ComputeInstance.provisioning_configuration(
        vm_size='STANDARD_D3_V2',
        ssh_public_access=False,
        # vnet_resourcegroup_name='<my-resource-group>',
        # vnet_name='<my-vnet-name>',
        # subnet_name='default',
        # admin_user_ssh_public_key='<my-sshkey>'
    )
    instance = ComputeInstance.create(ws, compute_name, compute_config)
    instance.wait_for_completion(show_output=True)

이 예제에 사용된 클래스, 메서드 및 매개 변수에 대한 자세한 내용은 다음 참조 문서를 확인하세요.

관리

컴퓨팅 인스턴스를 시작, 중지 다시 시작, 삭제합니다. 컴퓨팅 인스턴스는 자동으로 축소되지 않으므로 리소스를 중지하여 지속적으로 요금이 청구되지 않도록 방지해야 합니다. 컴퓨팅 인스턴스를 중지하면 할당을 취소합니다. 그런 다음, 필요할 때 다시 시작합니다. 컴퓨팅 인스턴스를 중지하면 컴퓨팅 시간에 대한 청구는 중지되지만 디스크, 공용 IP, 표준 부하 분산 장치에 대한 비용은 여전히 청구됩니다.

컴퓨팅 인스턴스에 120GB OS 디스크가 있습니다. 디스크 공간이 부족한 경우에는 터미널을 사용하여 최소 1~2GB를 지운 후 컴퓨팅 인스턴스를 중지하거나 다시 시작해야 합니다. 터미널에서 sudo shutdown을 실행하여 컴퓨팅 인스턴스를 중지하지 마세요. 컴퓨팅 인스턴스의 임시 디스크 크기는 선택한 VM 크기에 따라 다르며 /mnt에 탑재됩니다.

적용 대상:Python SDK azureml v1

아래의 예제에서 컴퓨팅 인스턴스의 이름은 instance입니다.

  • 상태 가져오기

    # get_status() gets the latest status of the ComputeInstance target
    instance.get_status()
    
  • 중지

    # stop() is used to stop the ComputeInstance
    # Stopping ComputeInstance will stop the billing meter and persist the state on the disk.
    # Available Quota will not be changed with this operation.
    instance.stop(wait_for_completion=True, show_output=True)
    
  • 시작

    # start() is used to start the ComputeInstance if it is in stopped state
    instance.start(wait_for_completion=True, show_output=True)
    
  • 다시 시작

    # restart() is used to restart the ComputeInstance
    instance.restart(wait_for_completion=True, show_output=True)
    
  • 삭제

    # delete() is used to delete the ComputeInstance target. Useful if you want to re-use the compute name
    instance.delete(wait_for_completion=True, show_output=True)
    

Azure RBAC를 사용하면 작업 영역에서 컴퓨팅 인스턴스를 생성, 삭제, 시작, 중지, 다시 시작할 수 있는 사용자를 제어할 수 있습니다. 작업 영역 기여자 및 소유자 역할의 모든 사용자는 작업 영역에서 컴퓨팅 인스턴스를 만들고, 삭제, 시작, 중지 및 다시 시작할 수 있습니다. 그러나 특정 계산 인스턴스의 작성자나 사용자를 대신하여 생성된 사용자만 해당 계산 인스턴스의 Jupyter, JupyterLab, RStudio, Posit Workbench(이전 RStudio Workbench)에 액세스할 수 있습니다. 컴퓨팅 인스턴스는 루트 액세스가 있는 단일 사용자 전용입니다. 해당 사용자는 인스턴스에서 실행되는 Jupyter/JupyterLab/RStudio/Posit Workbench에 액세스할 수 있습니다. 컴퓨팅 인스턴스는 단일 사용자 로그인을 사용하며, 모든 작업에는 Azure RBAC에 대한 해당 사용자의 ID 및 실험 실행의 특성이 사용됩니다. SSH 액세스는 공개/프라이빗 키 메커니즘을 통해 제어됩니다.

Azure RBAC는 다음 작업을 제어할 수 있습니다.

  • Microsoft.MachineLearningServices/workspaces/computes/read
  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/computes/delete
  • Microsoft.MachineLearningServices/workspaces/computes/start/action
  • Microsoft.MachineLearningServices/workspaces/computes/stop/action
  • Microsoft.MachineLearningServices/workspaces/computes/restart/action
  • Microsoft.MachineLearningServices/workspaces/computes/updateSchedules/action

컴퓨팅 인스턴스를 만들려면 다음 작업에 대한 사용 권한이 있어야 합니다.

  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/checkComputeNameAvailability/action

다음 단계