チュートリアル: テンプレートを使用して安全なワークスペースを作成する方法
テンプレートを使用すると、便利な方法で再現可能なサービスのデプロイを作成できます。 このテンプレートは、テンプレートを使用するときにユーザーが提供するいくつかの情報を使用して、何を作成するかを定義します。 たとえば、Azure Machine Learning ワークスペースの一意の名前を指定します。
このチュートリアルでは、Microsoft Bicep または Hashicorp Terraform テンプレートを使用して、Azure 仮想ネットワークとその背後でセキュリティ保護される以下の Azure リソースを作成する方法を学習します。
- Azure Machine Learning ワークスペース
- Azure Machine Learning コンピューティング インスタンス
- Azure Machine Learning コンピューティング クラスター
- Azure Storage アカウント
- Azure Key Vault
- Azure Application Insights
- Azure Container Registry
- Azure Bastion ホスト
- Azure Machine Learning Data Science Virtual Machine (DSVM)
この Bicep テンプレートでは、Azure Kubernetes Service クラスターと、その AKS クラスター用の個別のリソース グループも作成されます。
ヒント
この記事の手順ではなく、Azure Machine Learning のマネージド仮想ネットワークを使用できます。 マネージド仮想ネットワークを使用すると、Azure Machine Learning はワークスペースとマネージド コンピューティングのネットワーク分離のジョブを処理します。 また、ワークスペースに必要なリソース (Azure Storage アカウントなど) のプライベート エンドポイントを追加することもできます。 詳しくは、ワークスペースのマネージド ネットワーク分離に関する記事をご覧ください。
Bicep または Terraform の情報を表示するには、以下のセクションで Bicep または Terraform のタブを選択してください。
前提条件
無料版または有料版の Azure Machine Learning を使用する Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、始める前に無料アカウントを作成してください。
テンプレート リポジトリをクローンするための Git が開発環境にインストールされていること。
git
コマンドがない場合は、https://git-scm.com/ から Git をインストールできます。Azure CLI または Azure PowerShell コマンド ライン。
「Bicep 開発環境とデプロイ環境の設定」に従って Azure CLI または Azure PowerShell Bicep コマンド ライン ツールがインストールされていること。
以下のコマンドを実行することでローカルにクローンされ切り替えが行われた Bicep テンプレート Azure Machine Learning のエンドツーエンド セキュリティ保護セットアップを含む GitHub リポジトリ。
git clone https://github.com/Azure/azure-quickstart-templates cd azure-quickstart-templates/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure
テンプレートの理解
Bicep テンプレートは、main.bicep と modules サブディレクトリ内のその他の *.bicep ファイルで構成されています。 次の表では、各ファイルの役割について説明します。
ファイル | 説明 |
---|---|
main.bicep | modules サブディレクトリ内の他のモジュールにパラメーターと変数を渡します。 |
vnet.bicep | Azure 仮想ネットワークとサブネットを定義します。 |
nsg.bicep | 仮想ネットワークのネットワーク セキュリティ グループ ルールを定義します。 |
bastion.bicep | Azure Bastion ホストとサブネットを定義します。 Azure Bastion を使用すると、Web ブラウザーを使用して、仮想ネットワーク内の仮想マシン (VM) に簡単にアクセスできます。 |
dsvmjumpbox.bicep | DSVM を定義します。 Azure Bastion は、Web ブラウザーからこの VM にアクセスするために使用されます。 |
storage.bicep | 既定のストレージとしてワークスペースで使用される Azure Storage アカウントを定義します。 |
keyvault.bicep | ワークスペースで使用される Azure Key Vault を定義します。 |
containerregistry.bicep | ワークスペースで使用される Azure Container Registry を定義します。 |
applicationinsights.bicep | ワークスペースで使用される Azure Application Insights を定義します。 |
machinelearningnetworking.bicep | ワークスペースのプライベート エンドポイントとドメイン ネーム システム (DNS) ゾーンを定義します。 |
machinelearning.bicep | Azure Machine Learning ワークスペースを定義します。 |
machinelearningcompute.bicep | Azure Machine Learning コンピューティング クラスターおよびコンピューティング インスタンスを定義します。 |
privateaks.bicep | AKS クラスター インスタンスを定義します。 |
重要
各 Azure サービスには、独自の API バージョンのセットがあります。 サンプル テンプレートでは、Azure Machine Learning やその他のリソースに対して最新の API バージョンを使用していない場合があります。 使用の前に、最新の API バージョンを使用するようにテンプレートを変更する必要があります。
特定のサービスの API の詳細については、Azure REST API リファレンスのサービス情報を確認してください。 Azure Machine Learning の最新の API バージョンについては、「Azure Machine Learning REST API」を参照してください。
API バージョンを更新するには、該当リソースの種類の Microsoft.MachineLearningServices/<resource>
エントリを見つけて、それを最新バージョンに更新します。
重要
このチュートリアルでは、DSVM と Azure Bastion は、セキュリティで保護されたワークスペースに接続するための簡単な方法です。 運用環境では、Azure VPN ゲートウェイまたは Azure ExpressRoute を使用して、オンプレミス ネットワークから仮想ネットワーク内のリソースに直接アクセスする方が適切です。
テンプレートを構成する
Bicep テンプレートをデプロイするには、自分が main.bicep ファイルが置かれている machine-learning-end-to-end-secure ディレクトリ内にいることを確認し、以下のコマンドを実行します。
新しい Azure リソース グループを作成するには、次のコマンド例を、
<myrgname>
はリソース グループ名に、<location>
は使用したい Azure リージョンに置き換えて実行します。Azure CLI:
az group create --name <myrgname> --location <location>
Azure PowerShell:
New-AzResourceGroup -Name <myrgname> -Location <location>
テンプレートをデプロイするには、次のコマンドを、
<myrgname>
は作成したリソース グループの名前に、<pref>
は必要なリソースを作成するときに使用する一意のプレフィックスに置き換えて使用します。<mydsvmpassword>
を DSVM ジャンプ ボックス サインイン アカウントの安全なパスワード (以下の例ではazureadmin
) に置き換えます。ヒント
prefix
は 5 文字以下である必要があり、すべて数字にしたり、次の文字を含めたりすることはできません:~
、!
、@
、#
、$
、%
、^
、&
、*
、(
、)
、=
、+
、_
、[
、]
、{
、}
、\
、|
、;
、:
、.
、'
、"
、,
、<
、>
、/
、?
。Azure CLI:
az deployment group create \ --resource-group <myrgname> \ --template-file main.bicep \ --parameters \ prefix=<pref> \ dsvmJumpboxUsername=azureadmin \ dsvmJumpboxPassword=<mydsvmpassword>
Azure PowerShell:
$dsvmPassword = ConvertTo-SecureString "<mydsvmpassword>" -AsPlainText -Force New-AzResourceGroupDeployment -ResourceGroupName <myrgname> ` -TemplateFile ./main.bicep ` -prefix "<pref>" ` -dsvmJumpboxUsername "azureadmin" ` -dsvmJumpboxPassword $dsvmPassword
警告
スクリプト内またはコマンド ラインではプレーンテキスト文字列の使用を避ける必要があります。 プレーンテキストは、イベント ログとコマンド履歴に表示できます。 詳細については、「ConvertTo-SecureString」を参照してください。
重要
DSVM とコンピューティング リソースの課金は 1 時間の実行ごとに行われます。 余分な料金を回避するには、使用されていないときはこれらのリソースを停止する必要があります。 詳細については、次の記事をご覧ください。
ワークスペースに接続する
デプロイが完了したら、以下の手順を使用して DSVM に接続します。
Azure portal から、テンプレートで使用した Azure リソース グループを選択します。 次に、テンプレートによって作成された DSVM を選択します。 見つけられない場合は、[フィルター] セクションを使用して、[タイプ] に [仮想マシン] のフィルターを適用します。
DSVM の [概要] ページで、[接続] を選択した後、ドロップダウン リストから [Bastion を介して接続] を選択します。
入力を求められたら、テンプレートの構成時に指定したユーザー名と VM パスワードを入力した後、[接続] を選択します。
重要
DSVM デスクトップに初めて接続すると、PowerShell ウィンドウが開きスクリプトが実行されます。 スクリプトが完了してから、次の手順に進みます。
DSVM デスクトップから、Microsoft Edge を起動し、アドレスとして https://ml.azure.com を入力します。 Azure サブスクリプションにサインインした後、テンプレートによって作成されたワークスペースを選択します。 ワークスペース用のスタジオが表示されます。
トラブルシューティング
以下のエラーは、DSVM ジャンプ ボックスの名前が 15 文字を超えているか、次のいずれかの文字を含んでいる場合に表示されます: ~
、!
、@
、#
、$
、%
、^
、&
、*
、(
、)
、=
、+
、_
、[
、]
、{
、}
、\
、|
、;
、:
、.
、'
、"
、,
、<
、>
、/
、?
。
エラー: Windows のコンピューター名は、15 文字を超えること、すべて数字にすること、次の文字を含めることはできません ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , <> / ?。
この Bicep テンプレートは、テンプレートに指定されたプレフィックス値を使用して、ジャンプ ボックス名をプログラムで生成します。 名前が 15 文字を超えたり、無効な文字を含んでいたりしないようにするには、5 文字以下のプレフィックスを使用し、次の文字は使用しないでください: ~
、!
、@
、#
、$
、%
、^
、&
、*
、(
、)
、=
、+
、_
、[
、]
、{
、}
、\
、|
、;
、:
、.
、'
、"
、,
、<
、>
、/
、?
。
関連するコンテンツ
引き続き Azure Machine Learning の概要を確認するには、「クイックスタート: Azure Machine Learning の概要」を参照してください。
セキュリティで保護されたワークスペースの一般的な構成と入出力要件の詳細については、Azure Machine Learning のセキュリティで保護されたワークスペースのトラフィック フローに関する記事を参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示