サブスクリプション間で Azure Machine Learning ワークスペースを移動する (プレビュー)

機械学習アプリケーションの要件が変更された場合は、ワークスペースを別の Azure サブスクリプションに移動することが必要になる場合があります。 たとえば、次の状況では、ワークスペースを移動することが必要になる場合があります。

  • テスト サブスクリプションから運用サブスクリプションにワークスペースを昇格させます。
  • アプリケーションの設計とアーキテクチャを変更します。
  • 使用可能なクォータを増やしたサブスクリプションにワークスペースを移動します。
  • 異なるコスト センターのサブスクリプションにワークスペースを移動します。

ワークスペースを移動すると、ワークスペースとそのコンテンツを 1 つの自動化された手順として移行できます。 次の表では、移動されるワークスペースのコンテンツについて説明します。

ワークスペースのコンテンツ ワークスペースと共に移動
データセット はい
実験実行 はい
環境 はい
ワークスペースに格納されているモデルとその他のアセット はい
コンピューティング リソース いいえ
エンドポイント いいえ

重要

ワークスペースの移動は現在パブリック プレビュー段階にあります。 このプレビュー版はサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

前提条件

  • ソース サブスクリプションの Azure Machine Learning ワークスペース。 詳細については、Azure Machine Learning ワークスペースの作成に関するページをご覧ください。

  • ソースとターゲットの両方のサブスクリプションのリソースを管理するためのアクセス許可を持っている必要があります。 たとえば、サブスクリプション レベルの共同作成者または所有者のロールです。 ロールの詳細については、Azure のロールに関するページをご覧ください。

  • 移動先のサブスクリプションが、リソース プロバイダーに登録されている必要があります。 次の表に、Azure Machine Learning で必要なリソース プロバイダーの一覧を示します。

    リソース プロバイダー 必要な理由
    Microsoft.MachineLearningServices Azure Machine Learning ワークスペースの作成。
    Microsoft.Storage Azure Storage アカウントは、ワークスペースの既定のストレージとして使用されます。
    Microsoft.ContainerRegistry Azure Container Registry は、Docker イメージを構築するためにワークスペースによって使用されます。
    Microsoft.KeyVault Azure Key Vault は、シークレットを格納するためにワークスペースによって使用されます。
    Microsoft.Notebooks/NotebookProxies Azure Machine Learning コンピューティング インスタンス上の統合されたノートブック。
    Microsoft.ContainerService トレーニング済みのモデルを Azure Kubernetes Service にデプロイすることを計画している場合。

    Azure Machine Learning でカスタマー マネージド キーを使用することを計画している場合は、以下のサービス プロバイダーを登録する必要があります。

    リソース プロバイダー 必要な理由
    Microsoft.DocumentDB/databaseAccounts ワークスペースのメタデータをログに記録する Azure CosmosDB インスタンス。
    Microsoft.Search/searchServices Azure Search では、ワークスペースのインデックス作成機能を提供します。

    リソースプロバイダーの登録については、「リソースプロバイダー登録エラーの解決」を参照してください。

  • Azure CLI

    ヒント

    移動操作では、機械学習用の Azure CLI 拡張機能は使用されません。

制限事項

  • ワークスペースの移動は、ワークスペースをレプリケートするためのものではなく、ワークスペース間でモデルやデータセットなどの個々の資産を移動するためのものでもありません。
  • ワークスペースの移動では、Azure リージョンまたは Azure Active Directory テナント間での移行をサポートしていません。
  • 移動操作中にワークスペースは使用しないでください。 すべての実験が実行され、データ プロファイルが実行され、プロジェクトにラベルが付けられていることを確認します。 また、推論エンドポイントが呼び出されていないことを確認します。
  • 移動中に、ワークスペースは使用できなくなります。
  • 移動の前に、コンピューティングと推論のエンドポイントをワークスペースから削除するか、デタッチする必要があります。

移動を準備して検証する

  1. Azure CLI で、元のワークスペースのサブスクリプションを設定します。

    az account set -s origin-sub-id
    
  2. 元のワークスペースが使用されていないことを確認します。 すべての実験が実行されている、データ プロファイルが実行されている、あるいはプロジェクトにラベルが付けられていることを確認します。 また、推論エンドポイントが呼び出されていないことを確認します。

  3. ワークスペースからコンピューティングを削除またはデタッチし、推論エンドポイントを削除します。 コンピューティングおよびエンドポイントの移動はサポートされていません。 移動中に、ワークスペースは使用できなくなることにも注意してください。

  4. 新しいサブスクリプションで、移動先のリソース グループを作成します。 このリソース グループには、移動後のワークスペースが含まれます。 移動先は、移動元と同じリージョンにある必要があります。

    az group create -g destination-rg -l my-region --subscription destination-sub-id                  
    
  5. 次のコマンドは、ワークスペースの移動操作を検証する方法を示しています。 ストレージ アカウント、コンテナー レジストリ、キー コンテナーキー、Application Insights など、関連付けられているリソースを resources の一覧に追加することによって、移動に含めることができます。 検証には数分かかる場合があります。 このコマンドでは、origin-rg は移動元のソース グループで、destination-rg は移動先です。 サブスクリプション ID は origin-sub-iddestination-sub-id で表されますが、ワークスペースは origin-workspace-name です。

    az resource invoke-action --action validateMoveResources --ids "/subscriptions/origin-sub-id/resourceGroups/origin-rg" --request-body "{  \"resources\": [\"/subscriptions/origin-sub-id/resourceGroups/origin-rg/providers/Microsoft.MachineLearningServices/workspaces/origin-workspace-name\"],\"targetResourceGroup\":\"/subscriptions/destination-sub-id/resourceGroups/destination-rg\" }"
    

ワークスペースの移動

検証が正常に完了したら、ワークスペースを移動します。 また、関連付けられているリソースを ids パラメーターに追加することによって、移動操作に含めることもできます。 この操作には数分かかる場合があります。

az resource move --destination-group destination-rg --destination-subscription-id destination-sub-id --ids "/subscriptions/origin-sub-id/resourceGroups/origin-rg/providers/Microsoft.MachineLearningServices/workspaces/origin-workspace-name"

移動が完了したら、コンピューティングを再作成し、Web サービスのエンドポイントを新しい場所に再デプロイします。

次の手順