適用対象:Azure CLI ml extension v2 (現行)
Python SDK azure-ai-ml v2 (現行)
Azure Machine Learning ワークスペースでコンピューティング インスタンスを管理する方法について説明します。
コンピューティング インスタンスは、クラウド内で完全に構成され管理される自分の開発環境として使用します。 開発とテストの場合、このインスタンスをトレーニング コンピューティング ターゲットとして使うこともできます。 コンピューティング インスタンスは複数のジョブを並列に実行でき、ジョブ キューを備えています。 開発環境であるため、コンピューティング インスタンスをワークスペース内の他のユーザーと共有することはできません。
この記事では、コンピューティング インスタンスを開始、停止、再起動、削除する方法について説明します。 コンピューティング インスタンスを作成する方法については、「Azure Machine Learning コンピューティング インスタンスを作成する」をご覧ください。
注
この記事では、以下のセクションで CLI v2 について説明します。 CLI v1 をまだ使っている場合は、Azure Machine Learning コンピューティング クラスター CLI v1 の作成に関するページを参照してください。
前提条件
- Azure Machine Learning ワークスペース。 詳細については、Azure Machine Learning ワークスペースの管理に関するページを参照してください。
コンピューティング インスタンスの適切な管理方法に基づいて、前提条件の残りの部分に適したタブを選択します。
- Python SDK
- Azure CLI
-
[ スタジオ](#tab/azure-studio)
コンピューティング インスタンスでコードを実行していない場合は、Azure Machine Learning Python SDK をインストールします。 この SDK は、コンピューティング インスタンスに既にインストールされています。
Python スクリプトのワークスペースにアタッチします。
このコードを実行して Azure Machine Learning ワークスペースに接続します。
次のコードで、サブスクリプション ID、リソース グループ名、ワークスペース名を置き換えます。 これらの値を見つけるには:
- Azure Machine Learning Studio にサインインします。
- 使用するワークスペースを開きます。
- 右上の Azure Machine Learning スタジオ ツール バーで、ワークスペース名を選びます。
- ワークスペース、リソース グループ、サブスクリプション 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
は、他のリソースやジョブの管理に使うワークスペースに対するハンドラーです。
注
Azure Machine Learning ワークスペースとは異なるリソース グループにある仮想ネットワーク (VNet) を構成する場合は、ネットワーク セキュリティ グループ (NSG)、パブリック IP、ロード バランサーなどのリソースが VNet と同じリソース グループに作成されることに注意してください。 この動作により、適切なネットワーク管理と分離が保証されます。
管理する
コンピューティング インスタンスを開始、停止、再起動、削除します。 コンピューティング インスタンスは常に自動的にスケールダウンするとは限らないため、課金が継続されないように必ずリソースを停止してください。 コンピューティング インスタンスを停止すると、そのインスタンスは解放されます。 その後、必要なときにもう一度開始します。 コンピューティング インスタンスを停止するとコンピューティング時間の課金は停止されますが、ディスク、パブリック IP、Standard Load Balancer に対しては引き続き課金されます。
自動シャットダウンを有効にして、指定した時間後にコンピューティング インスタンスを自動的に停止することができます。
コンピューティング インスタンスが時刻と曜日に基づいて自動的に開始および停止するようにスケジュールを作成することもできます。
ヒント
コンピューティング インスタンスには 120 GB の OS ディスクがあります。 ディスク領域が不足する場合は、コンピューティング インスタンスを停止または再起動する前に、ターミナルを使用して少なくとも 5 GB をクリアしてください。 コンピューティング インスタンスは、sudo シャットダウンをターミナルから発行して停止しないでください。 コンピューティング インスタンスの一時ディスク サイズは、選択した VM サイズによって異なります。これは /mnt にマウントされます。
- Python SDK
- Azure CLI
-
[ スタジオ](#tab/azure-studio)
適用対象: Python SDK azure-ai-ml v2 (現行)
これらの例では、コンピューティング インスタンスの名前は変数 ci_basic_name
に格納されています。
状態を取得する
from azure.ai.ml.entities import ComputeInstance, AmlCompute # Get compute ci_basic_state = ml_client.compute.get(ci_basic_name)
止まれ
from azure.ai.ml.entities import ComputeInstance, AmlCompute # Stop compute ml_client.compute.begin_stop(ci_basic_name).wait()
[開始]
from azure.ai.ml.entities import ComputeInstance, AmlCompute # Start compute ml_client.compute.begin_start(ci_basic_name).wait()
やり直し
from azure.ai.ml.entities import ComputeInstance, AmlCompute # Restart compute ml_client.compute.begin_restart(ci_basic_name).wait()
削除
from azure.ai.ml.entities import ComputeInstance, AmlCompute ml_client.compute.begin_delete(ci_basic_name).wait()
注意事項
Machine Learning ワークスペースを含むリソース グループ、または仮想ネットワークを構成した別のリソース グループに、"削除" や "読み取り専用" などのリソース ロックを適用すると、これらのインスタンスの作成、サイズ変更、削除などの操作を防ぐことができます。 意図しない中断を回避するために、リソース ロックが適切に構成されていることを確かめてください。
Azure RBAC を使用すると、ワークスペース内のどのユーザーにコンピューティング インスタンスの作成、削除、開始、停止、再起動を許可するかを制御できます。 ワークスペースの共同作成者および所有者ロール内のユーザーはすべて、ワークスペース全体でコンピューティング インスタンスを作成、削除、開始、停止、および再起動することができます。 ただし、特定のコンピューティング インスタンスの作成者、またはその作成者に代わって作成された場合は割り当てられたユーザーのみが、そのコンピューティング インスタンス上の Jupyter、JupyterLab、および RStudio にアクセスすることが許可されます。 コンピューティング インスタンスは、ルート アクセス権を持つ 1 人のユーザー専用です。 そのユーザーは、インスタンスで実行されている Jupyter、JupyterLab、RStudio にアクセスできます。 コンピューティング インスタンスには、シングルユーザー サインインが用意され、すべてのアクションで、そのユーザーの ID が Azure RBAC と実験ジョブの属性に使われます。 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
コンピューティング インスタンスのバージョンの監査と監視
コンピューティング インスタンスがデプロイされると、自動更新されることはありません。 Microsoft リリースは、毎月新しい VM イメージをリリースします。 最新バージョンを使用して最新の状態を維持するためのオプションについては、脆弱性の管理に関するページを参照してください。
インスタンスのオペレーティング システムのバージョンが最新かどうかを追跡するには、CLI、SDK または Studio の UI を使用して、そのバージョンをクエリで照会できます。
- Python SDK
- Azure CLI
-
[ スタジオ](#tab/azure-studio)
適用対象: Python SDK azure-ai-ml v2 (現行)
from azure.ai.ml.entities import ComputeInstance, AmlCompute
# Display operating system version
instance = ml_client.compute.get("myci")
print instance.os_image_metadata
この例で使われているクラス、メソッド、パラメーターの詳細については、次のリファレンス ドキュメントをご覧ください。
IT 管理者は Azure Policy を使用して、Azure Policy コンプライアンス ポータルでワークスペース全体のインスタンスのインベントリを監視できます。 Azure サブスクリプションまたは Azure 管理グループ スコープに、組み込みのポリシー Audit Azure Machine Learning Compute Instances with an outdated operating system を割り当てます。