Azure Container Instances 웹 서비스에 대한 단계를 관리형 온라인 엔드포인트로 업그레이드

관리형 온라인 엔드포인트는 턴키 방식으로 ML 모델을 배포하는 데 도움이 됩니다. 관리형 온라인 엔드포인트는 확장성 있는 완전 관리형 방식으로 Azure의 강력한 CPU 및 GPU 머신에서 작동합니다. 관리형 온라인 엔드포인트는 모델 제공, 크기 조정, 보안 및 모니터링을 처리하여 기본 인프라를 설정하고 관리하는 오버헤드로부터 벗어날 수 있습니다. 자세한 내용은 온라인 엔드포인트를 사용하여 기계 학습 모델을 배포 및 점수 매기기에서 확인할 수 있습니다.

이전 모델과 환경을 사용하여 새 컴퓨팅 대상에 직접 배포하거나, Microsoft에서 제공하는 스크립트를 사용하여 현재 서비스를 내보낸 후 기존 서비스에 영향을 주지 않고 새 컴퓨팅에 배포할 수 있습니다. ACI(Azure Container Instances) 웹 서비스를 정기적으로 만들고 삭제하는 경우 스크립트를 사용하지 않고 직접 배포하는 것이 좋습니다.

중요

채점 URL은 업그레이드 후에 변경됩니다. 예를 들어 ACI 웹 서비스의 채점 URL은 http://aaaaaa-bbbbb-1111.westus.azurecontainer.io/score와 같습니다. 관리형 온라인 엔드포인트에 대한 채점 URI는 https://endpoint-name.westus.inference.ml.azure.com/score와 같습니다.

지원되는 시나리오 및 차이점

인증 모드

관리형 온라인 엔드포인트에는 인증이 지원되지 않습니다. 업그레이드 스크립트를 사용하는 경우 키 인증으로 변환됩니다. 키 인증의 경우 원래 키가 사용됩니다. 토큰 기반 인증도 지원됩니다.

TLS

HTTPS로 보호되는 ACI 서비스의 경우 더 이상 사용자 고유의 인증서를 제공할 필요가 없으며 모든 관리형 온라인 엔드포인트는 TLS로 보호됩니다.

사용자 지정 DNS 이름은 지원되지 않습니다.

리소스 요구 사항

ContainerResourceRequirements는 지원되지 않으며 유추에 적합한 SKU를 선택할 수 있습니다. 업그레이드 도구는 CPU/메모리 요구 사항을 해당 SKU에 매핑합니다. CLI/SDK V2를 통해 수동으로 다시 배포하도록 선택하는 경우 새 배포에 해당하는 SKU도 권장합니다.

CPU 요청 메모리 요청(GB) 제안된 SKU
(0, 1] (0, 1.2] DS1 V2
(1, 2] (1.2, 1.7] F2s V2
(1, 2] (1.7, 4.7] DS2 V2
(1, 2] (4.7, 13.7] E2s V3
(2, 4] (0, 5.7] F4s V2
(2, 4] (5.7, 11.7] DS3 V2
(2, 4] (11.7, 16] E4s V3

“(”는 보다 크거나 같음을 의미하고, “]”는 보다 작거나 같음을 의미합니다. 예를 들어 “(0, 1]”은 “0보다 크고 1보다 작거나 같음”을 의미합니다.

중요

ACI에서 업그레이드할 때 요금이 청구되는 방식에 몇 가지 변경 사항이 있습니다. 워크로드에 적합한 VM SKU를 선택하는 데 도움이 되는 대략적인 비용 비교는 블로그를 참조하세요.

네트워크 격리

비공개 작업 영역 및 VNet 시나리오의 경우 관리되는 온라인 엔드포인트에서 네트워크 격리 사용을 참조하세요.

중요

작업 영역 및 VNet에 대한 많은 설정이 있으므로 기계 학습을 위해 스크립트 도구 대신 Azure CLI 확장 v2를 통해 다시 배포하는 것이 좋습니다.

지원되지 않음

  • ACI 컨테이너에 대한 EncryptionProperties는 지원되지 않습니다.
  • deploy_from_model 및 deploy_from_image를 통해 배포된 ACI 웹 서비스는 업그레이드 도구에서 지원되지 않습니다. CLI/SDK V2를 통해 수동으로 다시 배포합니다.

업그레이드 단계

CLI 또는 SDK 사용

모델 파일 및 환경 정의를 사용하여 수동으로 다시 배포합니다. azureml-examples에서 예제를 찾을 수 있습니다. 특히 관리형 온라인 엔드포인트에 대한 SDK 예제입니다.

업그레이드 도구 사용

이 도구는 기존 웹 서비스를 기반으로 새 관리형 온라인 엔드포인트를 자동으로 만듭니다. 기존 서비스는 영향을 받지 않습니다. 트래픽을 새 엔드포인트로 안전하게 라우팅한 다음, 이전 엔드포인트를 삭제할 수 있습니다.

참고

업그레이드 스크립트는 샘플 스크립트로, SLA(서비스 수준 계약) 없이 제공됩니다.

다음 단계를 사용하여 스크립트를 실행합니다.

스크립트에서 만든 새 엔드포인트는 동일한 작업 영역 아래에 만들어집니다.

  1. bash 셸을 사용하여 스크립트를 실행합니다. 예를 들어 Linux의 터미널 세션 또는 WSL(Linux용 Windows 하위 시스템)입니다.

  2. Python SDK V1을 설치하여 Python 스크립트를 실행합니다.

  3. Azure CLI를 설치합니다.

  4. 로컬 환경에 리포지토리를 복제합니다. 예들 들어 git clone https://github.com/Azure/azureml-examples입니다.

  5. migrate-service.sh 파일에서 다음 값을 편집합니다. 값을 구성에 적용되는 값으로 바꿉니다.

    • <SUBSCRIPTION_ID> - 작업 영역을 포함하는 Azure 구독의 구독 ID입니다.
    • <RESOURCEGROUP_NAME> - 작업 영역을 포함하는 리소스 그룹입니다.
    • <WORKSPACE_NAME> - 작업 영역 이름입니다.
    • <SERVICE_NAME> - 기존 ACI 서비스의 이름입니다.
    • <LOCAL_PATH> - 스크립트에서 사용하는 리소스 및 템플릿이 다운로드되는 로컬 경로입니다.
    • <NEW_ENDPOINT_NAME> - 만들 새 엔드포인트의 이름입니다. 새 엔드포인트 이름은 이전 서비스 이름과 다른 것이 좋습니다. 그렇지 않으면 포털에서 엔드포인트를 확인하는 경우 원래 서비스가 표시되지 않습니다.
    • <NEW_DEPLOYMENT_NAME> - 새 엔드포인트에 대한 배포 이름입니다.
  6. bash 스크립트를 실행합니다. 예들 들어 ./migrate-service.sh입니다. 새 배포를 완료하는 데 약 5~10분이 걸립니다.

    스크립트가 실행 가능하지 않거나 스크립트를 실행하려고 할 때 편집기가 열리는 오류가 표시되면 다음 명령을 사용하여 스크립트를 실행 파일로 표시합니다.

    chmod +x migrate-service.sh
    
  7. 배포가 완료되면 az ml online-endpoint invoke 명령을 사용하여 엔드포인트를 확인할 수 있습니다.

문의처

업그레이드 스크립트에 대한 질문이나 피드백이 있는 경우 moeonboard@microsoft.com에 문의하세요.

다음 단계