Data Science Virtual Machine の共有プールを作成する

この記事では、チームで使用する Data Science Virtual Machine (DSVM) の共有プールを作成する方法について説明します。 共有プールを使用すると、次のような重要な利点があります。

  • リソース稼働率の向上
  • 簡単な共有とコラボレーション
  • DSVM リソースのより効果的な管理

多くの方法とテクノロジを使って、DSVM のプールを作成することができます。 この記事では、対話型仮想マシン (VM) のプールに焦点を当てます。 代替のマネージド コンピューティング インフラストラクチャには、Azure Machine Learning コンピューティングが関与します。 詳細については、コンピューティング クラスターの作成に関するページを参照してください。

対話型の VM プール

AI/データ サイエンス チーム全体で共有される対話型 VM のプールを使用すると、ユーザーは、ユーザーのセットごとに専用インスタンスを使用する代わりに、使用可能な DSVM インスタンスにサインインできます。 この方法により、可用性が向上し、リソース使用率が向上します。

対話型 VM プールの作成には、Azure 仮想マシン スケール セット テクノロジを使用します。 スケール セットを使って、負荷分散と自動スケーリングが行われる同一の VM のグループを作成して管理できます。

ユーザーは、メイン プールの IP または DNS アドレスにログインします。 スケール セットは、セッションをスケール セット内の使用可能な DSVM に自動的にルーティングします。 ユーザーは、サインインする VM に関係なく、一貫性のある使い慣れた環境を求めるため、スケール セット内の VM のすべてのインスタンスで共有ネットワーク ドライブがマウントされます。 これは、Azure Files 共有またはネットワーク ファイル システム (NFS) 共有に似ています。 通常、ユーザーの共有ワークスペースは各インスタンスにマウントされている共有ファイル ストアに保持されます。

Ubuntu DSVM インスタンスでスケール セットを作成する Azure Resource Manager テンプレートのサンプルが GitHub にあります。 Azure Resource Manager テンプレート用のパラメーター ファイルのサンプルも同じ場所にホストされています。

Azure CLI でパラメータ ファイルの値を指定し、Azure Resource Manager テンプレートからスケール セットを作成します。

az group create --name [[NAME OF RESOURCE GROUP]] --location [[ Data center. For eg: "West US 2"]
az deployment group create --resource-group  [[NAME OF RESOURCE GROUP ABOVE]]  --template-uri https://raw.githubusercontent.com/Azure/DataScienceVM/master/Scripts/CreateDSVM/Ubuntu/dsvm-vmss-cluster.json --parameters @[[PARAMETER JSON FILE]]

これらのコマンドは、次の機能があることを前提としています。

  • パラメーター ファイルのコピーと、スケール セットのインスタンスに指定されている値
  • VM インスタンスの数
  • Azure Files 共有へのポインター
  • 各 VM にマウントされるストレージ アカウントの資格情報

コマンドは、パラメーター ファイルをローカルで参照します。 パラメーターをインラインで渡すか、スクリプトで要求することもできます。

上記のテンプレートは、フロントエンドのスケール セットから Ubuntu DSVM のバックエンド プールへの SSH と JupyterHub ポートも有効にします。 ユーザーは、Secure Shell (SSH) または JupyterHub 上の VM に通常の方法でサインインします。 VM インスタンスは動的にスケールアップまたはスケールダウンできるので、マウントされた Azure Files 共有に状態を保存する必要があります。 同じアプローチを使用して、Windows DSVM のプールを作成できます。

Azure ファイル共有をマウントするスクリプトも、GitHub の Azure DataScienceVM リポジトリにあります。 スクリプトは、パラメーター ファイルで指定されているマウント ポイントに Azure ファイル共有をマウントします。 またスクリプトは、初期ユーザーのホーム ディレクトリにマウントされたドライブへのソフト リンクも作成します。 Azure Files 共有内のユーザー固有の notebook ディレクトリは $HOME/notebooks/remote ディレクトリにソフトリンクされており、ユーザーは Jupyter ノートブックにアクセスしてそれを実行および保存できます。 VM 上に追加ユーザーを作成して各ユーザーの Jupyter ワークスペースで Azure Files 共有をポイントするときも同じ規則を使用できます。

仮想マシン スケール セットは自動スケーリングをサポートします。 さらにインスタンスを作成するとき、およびインスタンスをスケールダウンするときのルールを設定できます。 たとえば、VM がまったく使われていないときは、ゼロ インスタンスにスケールダウンしてクラウド ハードウェア使用コストを節約できます。 仮想マシン スケール セットのドキュメント ページには、自動スケーリングに関する詳しい手順が記載されています。

次のステップ