チュートリアル: テンプレートを使用してセキュリティで保護されたワークスペースを作成する方法
テンプレートを使用すると、便利な方法で再現可能なサービスのデプロイを作成できます。 テンプレートでは、テンプレートを使用するときに提供する情報により、作成するものを定義します。 たとえば、Azure Machine Learning ワークスペースに一意の名前を指定します。
このチュートリアルでは、Microsoft Bicep および Hashicorp Terraform テンプレートを使用して、以下の Azure リソースを作成する方法について説明します。
- Azure Virtual Network。 次のリソースは、この VNet の背後でセキュリティ保護されています。
- 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)
- Bicep テンプレートでは、Azure Kubernetes Service クラスターと、そのクラスター用の別のリソース グループも作成されます。
- Azure Machine Learning ワークスペース
ヒント
Microsoft では、この記事の手順ではなく、Azure Machine Learning のマネージド仮想ネットワークの使用をお勧めしています。 マネージド仮想ネットワークを使用すると、Azure Machine Learning はワークスペースとマネージド コンピューティングのネットワーク分離のジョブを処理します。 また、ワークスペースに必要なリソース (Azure Storage アカウントなど) のプライベート エンドポイントを追加することもできます。 詳細については、「ワークスペース マネージド ネットワーク分離」を参照してください。
前提条件
この記事の手順を実行する前に、Azure サブスクリプションが必要です。 Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。
また、Bash または Azure PowerShell のいずれかのコマンドラインも必要です。
ヒント
この記事を読むときは、各セクションのタブを使用して、Bicep またはTerraform テンプレートの使用に関する情報を表示するかどうかを選択します。
コマンドライン ツールをインストールするには、Bicep の開発およびデプロイ環境のセットアップに関する記事を参照してください。
この記事で使用されている Bicep テンプレートは、https://github.com/Azure/azure-quickstart-templates/blob/master/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure にあります。 次のコマンドを使用して、GitHub リポジトリを開発環境に複製します。
ヒント
開発環境に
git
コマンドがない場合は、https://git-scm.com/ からインストールできます。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 Virtual Network とサブネットを定義します。 |
nsg.bicep | VNet のネットワーク セキュリティ グループの規則を定義します。 |
bastion.bicep | Azure Bastion ホストとサブネットを定義します。 Azure Bastion を使用すると、Web ブラウザーを使用して VNet 内の VM に簡単にアクセスできます。 |
dsvmjumpbox.bicep | Data Science Virtual Machine (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 | Azure Machine Learning ワークスペースのプライベート エンドポイントと DNS ゾーンを定義します。 |
Machinelearning.bicep | Azure Machine Learning ワークスペースを定義します。 |
machinelearningcompute.bicep | Azure Machine Learning コンピューティング クラスターおよびコンピューティング インスタンスを定義します。 |
privateaks.bicep | Azure Kubernetes Services クラスター インスタンスを定義します。 |
重要
テンプレートの例では、Azure Machine Learning の最新の API バージョンが常に使用されているわけではありません。 テンプレートを使用する前に、最新の API バージョンを使用するように変更することをお勧めします。 Azure Machine Learning の最新の API バージョンについては、Azure Machine Learning REST API を参照してください。
各 Azure サービスには、独自の API バージョンのセットがあります。 特定のサービスの API の詳細については、Azure REST API リファレンスのサービス情報を確認してください。
API バージョンを更新するには、該当リソースの種類の Microsoft.MachineLearningServices/<resource>
エントリを見つけて、それを最新バージョンに更新します。 次の例は、2022-05-01
の API バージョンを使用する Azure Machine Learning ワークスペースのエントリです。
resource machineLearning 'Microsoft.MachineLearningServices/workspaces@2022-05-01' = {
重要
このチュートリアルでは、DSVM と Azure Bastion は、セキュリティで保護されたワークスペースに簡単に接続する方法として使用されます。 運用環境では、Azure VPN ゲートウェイまたは Azure ExpressRoute を使用して、オンプレミス ネットワークから VNet 内のリソースに直接アクセスすることをお勧めします。
テンプレートを構成する
Bicep テンプレートを実行するには、main.bicep
ファイルがある machine-learning-end-to-end-secure
から次のコマンドを使用します。
新しい Azure リソース グループを作成するには、次のコマンドを使用します。
exampleRG
をリソース グループ名に置き換え、eastus
を使用する Azure リージョンに置き換えます。az group create --name exampleRG --location eastus
テンプレートを実行するには、次のコマンドを使用します。
prefix
を一意のプレフィックスに変更します。 このプレフィックスは、Azure Machine Learning に必要な Azure リソースの作成時に使用されます。securepassword
をジャンプ ボックスの安全なパスワードに変更します。 このパスワードはジャンプ ボックスのログイン アカウント用です (下の例のazureadmin
)。ヒント
prefix
は 5 文字以下にする必要があります。 全部数字にすることと、文字~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?
を使用することはできません。az deployment group create \ --resource-group exampleRG \ --template-file main.bicep \ --parameters \ prefix=prefix \ dsvmJumpboxUsername=azureadmin \ dsvmJumpboxPassword=securepassword
ワークスペースに接続する
テンプレートの処理が完了したら、次の手順を実行して DSVM に接続します。
Azure portal から、テンプレートで使用した Azure リソース グループを選択します。 次に、テンプレートによって作成された Data Science Virtual Machine を選択します。 見つけられない場合は、[フィルター] セクションを使用して、[タイプ] に [仮想マシン] のフィルターを適用します。
仮想マシンの [Overview](概要) セクションで [Connect](接続) を選択し、ドロップダウンから [Bastion] を選択します。
入力を求められたら、テンプレートの構成時に指定したユーザー名とパスワードを入力し、[Connect](接続) を選択します。
重要
DSVM デスクトップに初めて接続すると、PowerShell ウィンドウが開き、スクリプトの実行が開始されます。 完了するまで待ったら、次の手順に進みます。
DSVM デスクトップから、Microsoft Edge を起動し、アドレスとして
https://ml.azure.com
を入力します。 Azure サブスクリプションにサインインして、テンプレートで作成されたワークスペースを選択します。 ワークスペースのスタジオが表示されます。
トラブルシューティング
エラー: Windows のコンピューター名は、15 文字を超えること、すべて数字にすること、次の文字を含めることはできません
このエラーは、DSVM ジャンプ ボックスの名前が 15 文字を超えるか、文字 ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?
のいずれかが含まれる場合に発生します。
Bicep テンプレートの使用時、テンプレートに指定されているプレフィックス値を使用してジャンプ ボックスの名前が自動生成されます。 名前が 15 文字を超えることや名前に無効な文字が含まれることがないよう、5 文字以下のプレフィックスを使用し、文字 ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?
はプレフィックスに使用しないでください。
Terraform テンプレートを使用すると、ジャンプ ボックス名が dsvm_name
パラメーターを利用して渡されます。 このエラーを回避するため、15 文字を超えず、文字 ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?
が含まれない名前を使用してください。
次のステップ
重要
この Data Science Virtual Machine (DSVM) とコンピューティング インスタンス リソースでは、実行されている 1 時間ごとに料金が請求されます。 余分な料金を回避するには、これらのリソースが使用されていないときに停止する必要があります。 詳細については、次の記事を参照してください。
セキュリティで保護されたワークスペースを引き続き DSVM から使用する方法を学習するには、「チュートリアル: 1 日でわかる Azure Machine Learning」を参照してください。
セキュリティで保護されたワークスペースの一般的な構成と入出力要件の詳細については、Azure Machine Learning のセキュリティで保護されたワークスペースのトラフィック フローに関する記事を参照してください。