Azure Container Instances Web サービスからマネージド オンライン エンドポイントのためのアップグレード ステップ

マネージド オンライン エンドポイントは、ターンキー ML モデルをデプロイするのに役立ちます。 マネージド オンライン エンドポイントは、スケーラブルでフル マネージドの方法で Azure の強力な CPU および GPU マシンと動作します。 マネージド オンライン エンドポイントは、モデルの提供、スケーリング、セキュリティ保護、監視を行います。基になるインフラストラクチャの設定と管理のオーバーヘッドがなくなります。 詳しくは、「オンライン エンドポイントを使用して機械学習モデルをデプロイおよびスコアリングする方法」をご覧ください。

以前のモデルと環境で新しいコンピューティング ターゲットに直接デプロイすることも、Microsoft が提供するスクリプトを使用して現在のサービスをエクスポートし、既存のサービスに影響を与えずに新しいコンピューティングにデプロイすることもできます。 Azure Container Instances (ACI) Web サービスを定期的に作成および削除する場合は、スクリプトを使用せず、直接デプロイすることを強くお勧めします。

重要

スコアリング URL はアップグレード後に変更されます。 たとえば、ACI Web サービスのスコアリング 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 Web サービスは、アップグレード ツールではサポートされていません。 CLI/SDK V2 を使用して手動で再デプロイします。

アップグレードの手順

CLI または SDK を使用する場合

モデル ファイルと環境定義を使用して手動で再デプロイします。 この例は azureml-examples にあります。 具体的には、マネージド オンライン エンドポイントの SDK の例です。

アップグレード ツールを使用する場合

このツールは、既存の Web サービスに基づいて新しいマネージド オンライン エンドポイントを自動的に作成します。 元のサービスが影響を受けることはありません。 トラフィックを新しいエンドポイントに安全にルーティングし、以前のエンドポイントを削除できます。

Note

アップグレード スクリプトはサンプル スクリプトであり、サービス レベル アグリーメント (SLA) なしで提供されます。

スクリプトを実行するには、次の手順を実行します。

ヒント

スクリプトによって作成された新しいエンドポイントは、同じワークスペースに作成されます。

  1. bash シェルを使用してスクリプトを実行します。 たとえば、Linux または Linux 用 Windows サブシステム (WSL) 上のターミナル セッションなどです。

  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 にお問い合わせください。

次のステップ