Azure Machine Learning コンピューティング インスタンスを作成する
適用対象:Azure CLI ml extension v2 (現行)Python SDK azure-ai-ml v2 (現行)
Azure Machine Learning ワークスペースでコンピューティング インスタンスを作成する方法について説明します。
コンピューティング インスタンスは、クラウド内で完全に構成され管理される自分の開発環境として使用します。 開発とテストの場合、このインスタンスをトレーニング コンピューティング ターゲットとして使うこともできます。 コンピューティング インスタンスは複数のジョブを並列に実行でき、ジョブ キューを備えています。 開発環境であるため、コンピューティング インスタンスをワークスペース内の他のユーザーと共有することはできません。
この記事では、コンピューティング インスタンスを作成する方法について説明します。 コンピューティング インスタンスの開始、停止、再起動、削除を管理する手順については、「Azure Machine Learning コンピューティング インスタンスを管理する」を参照してください。
セットアップ スクリプトを使って、独自のカスタム環境でコンピューティング インスタンスを作成することもできます。
コンピューティング インスタンスは、企業で SSH ポートを開かなくても、仮想ネットワーク環境でジョブを安全に実行できます。 ジョブはコンテナー化された環境で実行され、モデルの依存関係が Docker コンテナーにパッケージ化されます。
Note
この記事では、いくつかの例で CLI v2 を使用します。 CLI v1 をまだ使っている場合は、Azure Machine Learning コンピューティング クラスター CLI (v1) の作成に関するページを参照してください。
前提条件
- Azure Machine Learning ワークスペース。 詳細については、Azure Machine Learning ワークスペースの作成に関するページをご覧ください。 ストレージ アカウントで、コンピューティング インスタンスの作成を成功させるには、[ストレージ アカウント キーのアクセスを許可する] オプションを有効にする必要があります。
追加の前提条件については、使用している環境のタブを選択してください。
- Python SDK
- Azure CLI
-
[ スタジオ](#tab/azure-studio)
- Python 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
は、他のリソースやジョブの管理に使うワークスペースに対するハンドラーです。
作成
推定所要時間: 約 5 分です。
コンピューティング インスタンスの作成は、ワークスペースに対する 1 回限りのプロセスです。 このコンピューティングは、開発ワークステーションとして、またはトレーニング用のコンピューティング先として再利用できます。 ワークスペースには複数のコンピューティング インスタンスをアタッチすることができます。
コンピューティング インスタンスの作成に適用されるリージョンあたりの専用コア数は、VM ファミリ クォータ別およびリージョン合計クォータ別に、Azure Machine Learning コンピューティング クラスターのクォータと統合され、共有されます。 コンピューティング インスタンスを停止しても、コンピューティング インスタンスを再起動できるようにクォータは解放されません。 コンピューティング インスタンスの仮想マシン サイズは、作成後は変更できません。
コンピューティング インスタンスを作成する最速の方法は、「作業を開始するために必要なリソースを作成する」の手順に従うことです。
または、次の例を使用し、より多くのオプションを使用してコンピューティング インスタンスを作成します。
- Python SDK
- Azure CLI
-
[ スタジオ](#tab/azure-studio)
適用対象: Python SDK azure-ai-ml v2 (現行)
# Compute Instances need to have a unique name across the region.
# Here we create a unique name with current datetime
from azure.ai.ml.entities import ComputeInstance, AmlCompute
import datetime
ci_basic_name = "basic-ci" + datetime.datetime.now().strftime("%Y%m%d%H%M")
ci_basic = ComputeInstance(name=ci_basic_name, size="STANDARD_DS3_v2")
ml_client.begin_create_or_update(ci_basic).result()
コンピューティング インスタンスを作成するためのクラス、メソッド、パラメーターについて詳しくは、次の参照ドキュメントをご覧ください。
また、Azure Resource Manager テンプレートを使用してコンピューティング インスタンスを作成することもできます。
アイドリングからのシャットダウンを構成する
オンになっているが非アクティブなコンピューティング インスタンスに対して課金されないように、非アクティブのためコンピューティング インスタンスをシャットダウンするタイミングを構成できます。
次の条件が満たされている場合、コンピューティング インスタンスは非アクティブと見なされます。
- アクティブな Jupyter カーネル セッションがない (これは、Jupyter、JupyterLab、または対話型のノートブックで Notebooks が使われていないことを意味します)
- アクティブな Jupyter ターミナル セッションがない
- アクティブな Azure Machine Learning の実行または実験がない
- VS コード接続がない。コンピューティング インスタンスが非アクティブと見なされるためには、VS Code 接続を閉じる必要があります。 VS コードで 3 時間アクティビティが検出されない場合、セッションは自動終了されます。
- コンピューティングでカスタム アプリケーションが実行されていない
カスタム アプリケーションが実行されている場合、コンピューティング インスタンスはアイドル状態とは見なされません。 カスタム アプリケーションでコンピューティングを自動的にシャットダウンするには、スケジュールを設定するか、カスタム アプリケーションを削除する必要があります。 また、非アクティブな期間に関するいくつかの基本的な境界もあります。コンピューティング インスタンスは、15 分以上、最大 3 日間非アクティブである必要があります。 また、アクティビティを特定するための VS Code SSH 接続も追跡しません。
また、コンピューティング インスタンスが既に一定時間アイドル状態になっている場合、アイドリングからのシャットダウン設定が現在のアイドル期間よりも短い時間に更新されると、アイドル時間クロックは 0 にリセットされます。 たとえば、コンピューティング インスタンスが既に 20 分間アイドル状態で、シャットダウン設定が 15 分に更新されている場合、アイドル時間クロックは 0 にリセットされます。
重要
コンピューティング インスタンスもマネージド ID で 構成されている場合、マネージド IDに Azure Machine Learning ワークスペースへの共同作成者アクセス権がない限り、非アクティブのためコンピューティング インスタンスは シャットダウンされません。 アクセス許可割り当ての詳細については、「Azure Machine Learning ワークスペースへのアクセスの管理」を参照してください。
この設定は、コンピューティング インスタンスの作成時に、または既存のコンピューティング インスタンスに対して、次のインターフェイスを使用して構成できます。
- Python SDK
- Azure CLI
-
[ スタジオ](#tab/azure-studio)
適用対象: Python SDK azure-ai-ml v2 (現行)
新しいコンピューティング インスタンスを作成するときに、idle_time_before_shutdown_minutes
パラメーターを追加します。
# Note that idle_time_before_shutdown has been deprecated.
ComputeInstance(name=ci_basic_name, size="STANDARD_DS3_v2", idle_time_before_shutdown_minutes="30")
Python SDK を使用して、既存のコンピューティング インスタンスのアイドル時間を変更することはできません。
次を使用してアイドル時間を変更することもできます。
REST API
エンドポイント:
POST https://management.azure.com/subscriptions/{SUB_ID}/resourceGroups/{RG_NAME}/providers/Microsoft.MachineLearningServices/workspaces/{WS_NAME}/computes/{CI_NAME}/updateIdleShutdownSetting?api-version=2021-07-01
本文は次のようになります。
{ "idleTimeBeforeShutdown": "PT30M" // this must be a string in ISO 8601 format }
ARM テンプレート: 新しいコンピューティング インスタンスの作成時にのみ構成可能
// Note that this is just a snippet for the idle shutdown property in an ARM template { "idleTimeBeforeShutdown":"PT30M" // this must be a string in ISO 8601 format }
自動開始と停止をスケジュール設定する
自動シャットダウンと自動開始のスケジュールを複数定義します。 たとえば、午前 9 時に開始し、午後 6 時に停止する月曜日から木曜日のスケジュールを作成し、2 番目のスケジュールを金曜日の午前 9 時に開始して午後 4 時に停止するように作成します。 コンピューティング インスタンスごとに合計 4 つのスケジュールを作成できます。
コンピューティング インスタンスの代理作成のためのスケジュールを定義することもできます。 コンピューティング インスタンスを停止状態で作成するスケジュールを作成できます。 停止したコンピューティング インスタンスは、別のユーザーの代わりにコンピューティング インスタンスを作成する場合に便利です。
スケジュールされたシャットダウンの前に、コンピューティング インスタンスがもうすぐシャットダウンすることを警告する通知がユーザーに表示されます。 その時点で、ユーザーは今後のシャットダウン イベントを無視することを選択できます。 たとえば、コンピューティング インスタンスを使用している最中などです。
スケジュールを作成する
- Python SDK
- Azure CLI
-
[ スタジオ](#tab/azure-studio)
適用対象: Python SDK azure-ai-ml v2 (現行)
from azure.ai.ml.entities import ComputeInstance, ComputeSchedules, ComputeStartStopSchedule, RecurrenceTrigger, RecurrencePattern
from azure.ai.ml.constants import TimeZone
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ci_minimal_name = "ci-name"
ci_start_time = "2023-06-21T11:47:00" #specify your start time in the format yyyy-mm-ddThh:mm:ss
rec_trigger = RecurrenceTrigger(start_time=ci_start_time, time_zone=TimeZone.INDIA_STANDARD_TIME, frequency="week", interval=1, schedule=RecurrencePattern(week_days=["Friday"], hours=15, minutes=[30]))
myschedule = ComputeStartStopSchedule(trigger=rec_trigger, action="start")
com_sch = ComputeSchedules(compute_start_stop=[myschedule])
my_compute = ComputeInstance(name=ci_minimal_name, schedules=com_sch)
ml_client.compute.begin_create_or_update(my_compute)
Resource Manager テンプレートでスケジュールを作成する
Resource Manager テンプレートを使用して、コンピューティング インスタンスの自動の開始と停止をスケジュール設定できます。
Resource Manager テンプレートに、以下を追加します。
"schedules": "[parameters('schedules')]"
次に、cron または LogicApps 式を使用して、パラメーター ファイル内のインスタンスを開始または停止するスケジュールを定義します。
"schedules": {
"value": {
"computeStartStop": [
{
"triggerType": "Cron",
"cron": {
"timeZone": "UTC",
"expression": "0 18 * * *"
},
"action": "Stop",
"status": "Enabled"
},
{
"triggerType": "Cron",
"cron": {
"timeZone": "UTC",
"expression": "0 8 * * *"
},
"action": "Start",
"status": "Enabled"
},
{
"triggerType": "Recurrence",
"recurrence": {
"frequency": "Day",
"interval": 1,
"timeZone": "UTC",
"schedule": {
"hours": [17],
"minutes": [0]
}
},
"action": "Stop",
"status": "Enabled"
}
]
}
}
アクションには、[
Start
] または [Stop
] の値を指定できます。Recurrence
のトリガーの種類では、このRecurrence
と一緒に、ロジック アプリと同じ構文を使用します。cron
のトリガーの種類には、次の標準の cron 構文を使用します。// Crontab expression format: // // * * * * * // - - - - - // | | | | | // | | | | +----- day of week (0 - 6) (Sunday=0) // | | | +------- month (1 - 12) // | | +--------- day of month (1 - 31) // | +----------- hour (0 - 23) // +------------- min (0 - 59) // // Star (*) in the value field above means all legal values as in // braces for that column. The value column can have a * or a list // of elements separated by commas. An element is either a number in // the ranges shown above or two numbers in the range separated by a // hyphen (meaning an inclusive range).
1 つのスケジュールを既定にするための Azure Policy サポート
Azure Policy を使用して、サブスクリプション内のすべてのコンピューティング インスタンスに対して存在するシャットダウン スケジュールを適用するか、何も存在しない場合のスケジュールを既定値として設定します。 午後 10 時 (太平洋標準時) のシャットダウン スケジュールを既定にするためのサンプル ポリシーを次に示します。
{
"mode": "All",
"policyRule": {
"if": {
"allOf": [
{
"field": "Microsoft.MachineLearningServices/workspaces/computes/computeType",
"equals": "ComputeInstance"
},
{
"field": "Microsoft.MachineLearningServices/workspaces/computes/schedules",
"exists": "false"
}
]
},
"then": {
"effect": "append",
"details": [
{
"field": "Microsoft.MachineLearningServices/workspaces/computes/schedules",
"value": {
"computeStartStop": [
{
"triggerType": "Cron",
"cron": {
"startTime": "2021-03-10T21:21:07",
"timeZone": "Pacific Standard Time",
"expression": "0 22 * * *"
},
"action": "Stop",
"status": "Enabled"
}
]
}
}
]
}
}
}
代理での作成
管理者は、データ科学者に代わってコンピューティング インスタンスを作成し、次のようにして彼らにそのインスタンスを割り当てることができます。
Studio で、この記事のセキュリティ設定を使用する。
Azure Resource Manager テンプレート このテンプレートに必要な TenantID と ObjectID を見つける方法の詳細については、「認証構成のための ID オブジェクト ID を見つける」を参照してください。 これらの値は Microsoft Entra 管理センターでも確認できます。
セキュリティをさらに強化するため、データ科学者に代わってコンピューティング インスタンスを作成しそのインスタンスをデータ科学者に割り当てると、そのコンピューティング インスタンスにセットアップ スクリプトやカスタム アプリが含まれている場合は、シングル サインオン (SSO) が作成時に無効になります。
割り当て先のユーザーは、コンピューティングが割り当てられた後、コンピューティング インスタンスの SSO 設定を更新することで、コンピューティング インスタンスの SSO を自身で有効にする必要があります。 割り当て先のユーザーは、自身のロール MachineLearningServices/workspaces/computes/enableSso/action に次のアクセス許可とアクションが必要です。 割り当て先ユーザーには、SSO を有効にするためにコンピューティング書き込み (作成) アクセス許可は必要ありません。
割り当て先ユーザーが実行する必要がある手順は次のとおりです。 セキュリティ上の理由により、コンピューティング インスタンスの作成者は、そのコンピューティング インスタンス上で SSO を有効にすることができないことに注意してください。
Azure Machine Learning スタジオの左側のナビゲーション ウィンドウで [コンピューティング] をクリックします。
SSO を有効にする必要があるコンピューティング インスタンスの名前をクリックします。
[シングル サインオンの詳細] セクションを編集します。
シングル サインオンの切り替えを有効にします。
保存。 更新には時間がかかります。
マネージド ID を割り当てる
システム割り当てまたはユーザー割り当てのマネージド ID をコンピューティング インスタンスに割り当てて、ストレージのような他の Azure リソースに対する認証を行うことができます。 認証にマネージド ID を使うと、ワークスペースのセキュリティと管理を向上させることができます。 たとえば、ユーザーがコンピューティング インスタンスにログインした場合にのみ、トレーニング データへのアクセスを許可できます。 または、共通のユーザー割り当てマネージド ID を使って、特定のストレージ アカウントへのアクセスを許可します。
重要
コンピューティング インスタンスもアイドル シャットダウン用に構成されている場合、マネージド ID に Azure Machine Learning ワークスペースへの共同作成者アクセス権がない限り、非アクティブのためコンピューティング インスタンスは シャットダウン されません。 アクセス許可割り当ての詳細については、「Azure Machine Learning ワークスペースへのアクセスの管理」を参照してください。
- Python SDK
- Azure CLI
-
[ スタジオ](#tab/azure-studio)
SDK V2 を使用して、システム割り当てマネージド ID を割り当ててコンピューティング インスタンスを作成します。
from azure.ai.ml import MLClient
from azure.identity import ManagedIdentityCredential
client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID", None)
credential = ManagedIdentityCredential(client_id=client_id)
ml_client = MLClient(credential, subscription_id, resource_group, workspace)
SDK V1 を使用することもできます。
from azureml.core.authentication import MsiAuthentication
from azureml.core import Workspace
client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID", None)
auth = MsiAuthentication(identity_config={"client_id": client_id})
workspace = Workspace.get("chrjia-eastus", auth=auth, subscription_id=subscription_id, resource_group=resource_group, location="East US")
マネージド ID が作成されたら、データストアのストレージ アカウントの、少なくともストレージ BLOB データ閲覧者ロールをマネージド ID に付与します (「ストレージ サービスへのアクセス」を参照)。 その後、コンピューティング インスタンスを使うときは、そのマネージド ID がデータストアに対する認証に自動的に使われます。
Note
作成されたシステム マネージド ID の名前は、Microsoft Entra ID では /<ワークスペース名>/computes/<コンピューティング インスタンス名> という形式になります。
マネージド ID を手動で使って、他の Azure リソースに対する認証を行うこともできます。 次の例では、それを使って Azure Resource Manager のアクセス トークンを取得する方法を示します。
import requests
def get_access_token_msi(resource):
client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID", None)
resp = requests.get(f"{os.environ['MSI_ENDPOINT']}?resource={resource}&clientid={client_id}&api-version=2017-09-01", headers={'Secret': os.environ["MSI_SECRET"]})
resp.raise_for_status()
return resp.json()["access_token"]
arm_access_token = get_access_token_msi("https://management.azure.com")
認証にマネージド ID と Azure CLI を使用するには、ログイン時にユーザー名として ID クライアント ID を指定します。
az login --identity --username $DEFAULT_IDENTITY_CLIENT_ID
Note
マネージド ID を使用する場合、azcopy
を使用できません。 azcopy login --identity
は機能しません。
Enable SSH access (SSH アクセスを有効にする)
SSH アクセスは既定では無効になっています。 作成後に SSH アクセスを有効または無効にすることはできません。 VS Code Remote を使用して対話形式でデバッグする場合は、アクセスを有効にする必要があります。
[Next: Advanced Settings](次へ: 詳細設定) を選択したら、次のようにします。
- [Enable SSH access](SSH アクセスを有効にする) をオンにします。
- [SSH public key source]\(SSH 公開キーのソース\) で、ドロップダウンから次のいずれかのオプションを選択します。
- [新しいキーの組を生成] の場合:
- [Key pair name](キーの組の名前) にキーの名前を入力します。
- [作成] を選択します
- [Download private key and create compute](秘密キーをダウンロードしてコンピューティングを作成する) を選択します。 キーは通常、 [ダウンロード] フォルダーにダウンロードされます。
- [Use existing public key stored in Azure](Azure に保存されている既存の公開キーを使用する) を選択した場合には、 [Stored key](保存されているキー) でキーを探して選択します。
- [既存の公開キーを使用] を選択した場合には、("ssh-rsa" から始まる) 1 行の形式か、複数行の PEM 形式で RSA 公開キーを入力します。 SSH キーは、Linux と OS X では ssh-keygen を、Windows では PuTTYGen を使用して生成できます。
- [新しいキーの組を生成] の場合:
SSH キーを後で設定する
作成後に SSH を有効または無効にすることはできませんが、SSH 対応のコンピューティング インスタンスで SSH キーを後で設定することができます。 これにより、作成後に SSH キーを設定できます。 これを行うには、コンピューティング インスタンスで SSH を有効にし、SSH 公開キーのソースとして [Set up an SSH key later] (SSH キーを後で設定する) を選択します。 コンピューティング インスタンスが作成されたら、コンピューティング インスタンスの [詳細] ページにアクセスし、選択して SSH キーを編集できます。 そこから、お使いの SSH キーを追加できます。
この一般的なユース ケースの例として、別のユーザーの代わりにコンピューティング インスタンスを作成する場合が挙げられます (「代理での作成」を参照)。別のユーザーの代わりにコンピューティング インスタンスをプロビジョニングする場合は、[SSH キーを後で設定する] を選択して、新しいコンピューティング インスタンス所有者に対して SSH を有効にすることができます。 これにより、コンピューティング インスタンスの新しい所有者は、前述の手順に従って、新しく所有するコンピューティング インスタンスの SSH キーが作成され割り当てられた後に設定できます。
SSH を使用した接続
SSH アクセスが有効なコンピューティングを作成したら、次の手順に従ってアクセスします。
ワークスペース リソースでコンピューティングを探します。
- 左側にある [コンピューティング] を選択します。
- 上部のタブを使用して、 [コンピューティング インスタンス] または [コンピューティング クラスター] を選択し、マシンを探します。
リソース一覧で、コンピューティング名を選択します。
接続文字列を探します。
コンピューティング インスタンスの場合は、 [詳細] セクションの上部にある [接続] を選択します。
コンピューティング クラスターの場合は、上部にある [ノード] を選択したうえで、ノードのテーブルにある [接続文字列] を選択します。
接続文字列をコピーします。
Windows の場合は、PowerShell またはコマンド プロンプトを開きます。
キーが格納されているディレクトリまたはフォルダーに移動します
秘密キーの場所を特定し、格納場所をポイントできるよう、接続文字列に -i フラグを追加します。
ssh -i <keyname.pem> azureuser@... (rest of connection string)
Linux ユーザーの場合は、Azure 内の Linux VM 用の SSH キーの組を作成して使用する方法に関する記事の手順に従ってください
SCP の場合は次を使用します。
scp -i key.pem -P {port} {fileToCopyFromLocal } azureuser@yourComputeInstancePublicIP:~/{destination}
- REST API
データ科学者向けにコンピューティング インスタンスを作成する場合は、次に示す Azure ロールベースのアクセス制御 (Azure RBAC) アクセス許可が必要です。
- Microsoft.MachineLearningServices/workspaces/computes/start/action
- Microsoft.MachineLearningServices/workspaces/computes/stop/action
- Microsoft.MachineLearningServices/workspaces/computes/restart/action
- Microsoft.MachineLearningServices/workspaces/computes/applicationaccess/action
- Microsoft.MachineLearningServices/workspaces/computes/updateSchedules/action
データ科学者は、コンピューティング インスタンスを開始、停止、再起動できます。 コンピューティング インスタンスは、次に使用できます。
- Jupyter
- JupyterLab
- RStudio
- Posit Workbench (旧称 RStudio Workbench)
- 統合されたノートブック
RStudio や Posit Workbench などのカスタム アプリケーションの追加
コンピューティング インスタンスの作成時に、RStudio や Posit Workbench (旧称 RStudio Workbench) などの他のアプリケーションを設定できます。 スタジオで次の手順に従い、コンピューティング インスタンスにカスタム アプリケーションを設定します
- フォームに入力して新しいコンピューティング インスタンスを作成します
- [アプリケーション] を選択します
- [アプリケーションの追加] を選択します
Posit Workbench (旧称 RStudio Workbench) の設定
RStudio は、ML とデータ サイエンス プロジェクトの R 開発者の間で最も人気のある IDE の 1 つです。 他の開発ツールと共に RStudio へのアクセスを提供する Posit Workbench を簡単に設定して、独自の Posit ライセンスを使用してコンピューティング インスタンス上で実行し、Posit Workbench が提供する豊富な機能セットにアクセスできます
- コンピューティング インスタンスを作成するときに、前述の手順でアプリケーションを追加します。
- [アプリケーション] ドロップダウンで [Posit Workbench (独自のライセンスを取得する)] を選び、[ライセンス キー] フィールドに Posit Workbench のライセンス キーを入力します。 Posit Workbench ライセンスまたは試用版ライセンスは、Posit から取得できます。
- [作成] を選び、Posit Workbench アプリケーションをコンピューティング インスタンスに追加します。
重要
プライベート リンク ワークスペースを使用している場合は、docker イメージ、pkg-containers.githubusercontent.com、ghcr.io にアクセスできることを確認します。 また、8704 から 8993 の範囲で公開ポートを使用します。 Posit Workbench (旧称 RStudio Workbench) の場合、https://www.wyday.com へのネットワーク アクセスを提供することで、ライセンスに確実にアクセスできるようにします。
注意
- Posit からワークスペース ファイル ストアにアクセスするためのサポートはまだ利用できません。
- Posit Workbench の複数のインスタンスにアクセスするときに、"400 無効な要求です。 要求ヘッダーまたは Cookie が大きすぎます" というエラーが表示される場合は、新しいブラウザーを使用するか、シークレット モードのブラウザーからアクセスしてください。
RStudio (オープンソース) の設定
RStudio を使うには、次のようにカスタム アプリケーションを設定します。
コンピューティング インスタンスを作成する際に、前述の手順でアプリケーションを追加します。
[アプリケーション] ドロップダウン リストで [カスタム アプリケーション] を選びます。
使用する [アプリケーション名] を構成します。
ターゲット ポート
8787
で動作するようにアプリケーションを設定します。以下の RStudio オープン ソースの Docker イメージは、このターゲット ポートで動作する必要があります。公開ポート
8787
でアクセスできるようにアプリケーションを設定します。必要に応じて、別の公開ポートでアクセスできるようにアプリケーションを構成することもできます。Docker イメージを
ghcr.io/azure/rocker-rstudio-ml-verse:latest
に指定します。[作成] を選び、RStudio をコンピューティング インスタンスのカスタム アプリケーションとして設定します。
重要
プライベート リンク ワークスペースを使用している場合は、docker イメージ、pkg-containers.githubusercontent.com、ghcr.io にアクセスできることを確認します。 また、8704 から 8993 の範囲で公開ポートを使用します。 Posit Workbench (旧称 RStudio Workbench) の場合、https://www.wyday.com へのネットワーク アクセスを提供することで、ライセンスに確実にアクセスできるようにします。
他のカスタム アプリケーションのセットアップ
Docker イメージ上のアプリケーションを指定し、コンピューティング インスタンスに他のカスタム アプリケーションを設定します。
- コンピューティング インスタンスを作成する際に、前述の手順でアプリケーションを追加します。
- [アプリケーション] ドロップダウンで [カスタム アプリケーション] を選びます。
- アプリケーション名、アプリケーションが実行するターゲット ポート、アプリケーションにアクセスする公開ポート、アプリケーションを含む Docker イメージを構成します。 カスタム イメージが Azure Container Registry に格納されている場合は、アプリケーションのユーザーに 共同作成者 ロールを割り当てます。 ロールの割り当てについては、「Azure Machine Learning ワークスペースへのアクセスの管理」を参照してください。
- 必要に応じて、アプリケーションに使う環境変数を追加します。
- [マウントをバインドする] を使用して、既定のストレージ アカウント内のファイルへのアクセスを追加します。
- ホスト パスとして /home/azureuser/cloudfiles を指定します。
- コンテナー パスとして /home/azureuser/cloudfiles を指定します。
- [追加] を選択してこのマウントを追加します。 ファイルはマウントされているため、これらに加えた変更は、他のコンピューティング インスタンスやアプリケーションで使用できます。
- [作成] を選び、コンピューティング インスタンスのカスタム アプリケーションを設定します。
重要
プライベート リンク ワークスペースを使用している場合は、docker イメージ、pkg-containers.githubusercontent.com、ghcr.io にアクセスできることを確認します。 また、8704 から 8993 の範囲で公開ポートを使用します。 Posit Workbench (旧称 RStudio Workbench) の場合、https://www.wyday.com へのネットワーク アクセスを提供することで、ライセンスに確実にアクセスできるようにします。
スタジオでのカスタム アプリケーションへのアクセス
スタジオで設定したカスタム アプリケーションにアクセスします。
- 左側にある [コンピューティング] を選択します。
- [コンピューティング インスタンス] タブで、[アプリケーション] 列のアプリケーションを確認します。
Note
リンクからアクセスできるようになるまで、カスタム アプリケーションを設定してから数分かかる場合があります。 所要時間は、カスタム アプリケーションに使用されるイメージのサイズによって異なります。 アプリケーションにアクセスしようとしたときに 502 エラー メッセージが表示される場合は、アプリケーションが設定されるまでしばらく待ってから、もう一度やり直してください。 カスタム イメージが Azure Container Registry からプルされる場合は、ワークスペースの 共同作成者 ロールが必要です。 ロールの割り当てについては、「Azure Machine Learning ワークスペースへのアクセスの管理」を参照してください。