Jupyter環境の起動方法

mdxII上に専用のJupyter環境を作成し、ご自身のブラウザからアクセスして計算する方法を解説します。
Jupyter環境を使用するまでコマンド操作は一切ありませんので、お気軽にお試しいただけます。

完成イメージ

作成方法

以下、3つのステップで環境を作成します。mdxII ポータルにログインできない場合は、問い合わせフォームからご連絡ください。
 ステップ1. Jupyter環境へのアクセス設定 (mdxII ポータル上での操作)
 ステップ2. Jupyter環境を立ち上げる (mdxII ポータル上での操作)
 ステップ3. Jupyter環境にアクセスする (ご自身のパソコンでの操作)

ステップ1. Jupyter環境へのアクセス設定 (mdxII ポータル上での操作)

ステップ1の目標:mdxIIのセキュリティグループ機能を使って、自分自身のパソコンからJupyter環境にアクセスできるように設定します。

1. mdxII ポータルへアクセスし、[プロジェクト]メニュー > [ネットワーク]パネル > [セキュリティグループ]タブをクリックします。
ご不明な場合はこちらからアクセスしてください。

2. [+セキュリティグループの作成]ボタンをクリックします。

3. 任意の名前の項目を入力して[セキュリティグループの作成]ボタンをクリックします。ここでは「test-sg」としています。

4. [+ルールの追加]ボタンをクリックします。

5. 以下の項目を入力して[追加]ボタンをクリックします。

ルール カスタムTCPルール
説明 記入なしでOK(任意)
方向 受信
開放するポート ポート
ポート 8888
(※注:Jupyter Notebookにおいては、一般に8888番ポートを使用します。変更することも可能です。)
接続する相手 CIDR
CIDR
(Jupyter環境にアクセスするIPアドレス)
0.0.0.0/0
※注:「0.0.0.0/0」と設定することで、すべてのIPアドレスからの接続を許可(=誰でもアクセスできる状態)になりますが、セキュリティ上非常に脆弱な状態となります。Jupyter環境にアクセスするIPアドレス(研究室のIPアドレスなど)をご確認いただき、入力いただくことをおすすめいたします。

6. 作成したルールが一覧に表示されます。これでステップ1は完了となります。

ステップ2. Jupyter環境を立ち上げる (mdxII ポータル上での操作)

ステップ2の目標:mdxIIのユーザポータルからインスタンス(仮想サーバ)を立ち上げ、Jupyter環境を起動します。

1. mdxII ポータルへアクセスし、[プロジェクト]メニュー > [コンピュート]パネル > [インスタンス]タブをクリックします。ご不明な方はこちらからアクセスしてください。

2. [インスタンスの起動]ボタンをクリックします。

3. [詳細]タブでインスタンス名を設定します。任意の名前を設定し、[次へ]をクリックしてください。ここでは インスタンス名:jupyter としております。

4. [ソース]タブでインスタンスのOSを選択してください。本手順は Ubuntu インスタンスでの実行を前提としているため、利用可能欄から「mdxII-Ubuntu-22.04-Server」の「↑」ボタンをクリックし、[次へ]ボタンをクリックします。

5. [フレーバー]タブでインスタンスの構成を選択してください。「vc1m2g」という構成(1vCPU+2GBメモリ)を選択し、[↑]ボタンをクリックして[次へ]ボタンをクリックします。

※「vc1m2g」は最小の構成となります。Jupyter環境で負荷の高い計算をする場合は、より大きな構成を選択することをおすすめします。
※黄色の三角マークが表示されているフレーバーは、プロジェクトで確保している資源を超過しているため利用できません。

6. [ネットワーク]タブでJupyter環境を接続するネットワークを選択します。ここでは「lustre-network」の[↑]ボタンをクリックしてください。「セキュリティグループ」タブをクリックします。

7. [セキュリティグループ]タブで、Jupyter環境にアクセスするルールを設定します。最初から設定されている「default」セキュリティグループでは、Jupyter環境にアクセスできません。
そのため、「default」の[↓]ボタンをクリックしてデタッチ(解除)し、ステップ1で作成したセキュリティグループの[↑]ボタンをクリックしてアタッチ(適用)してください。「設定」タブをクリックします。

8. [設定]タブで、仮想サーバ起動時の処理を記入します。カスタマイズスクリプト欄にJupyterを構築するスクリプト(以下)を貼り付け、「インスタンスの起動」ボタンをクリックしてください。


カスタマイズスクリプトの内容は以下のとおりです。MDXIIJUPYTERTOKENはJupyter環境を立ち上げた際に入力するトークンとなります。任意の値に変更いただくことをおすすめいたします。

#cloud-config
package_update: true
packages:
  - python3-pip
  - git

users:
  - default
  - name: jupyter-user
    shell: /bin/bash
    groups: users
    home: /home/jupyter-user

runcmd:
  - su - jupyter-user -c "echo 'export PATH=\$HOME/.local/bin:\$PATH' >> ~/.bashrc"
  - su - jupyter-user -c "pip3 install --user jupyterlab"
  - su - jupyter-user -c "mkdir -p /home/jupyter-user/notebooks"
  - su - jupyter-user -c "echo 'cd /home/jupyter-user/notebooks' > /home/jupyter-user/start_jupyter.sh"
  - su - jupyter-user -c "echo '/home/jupyter-user/.local/bin/jupyter lab  --NotebookApp.token=\"MDXIIJUPYTERTOKEN\" --ip=0.0.0.0 --no-browser &' >> /home/jupyter-user/start_jupyter.sh"
  - su - jupyter-user -c "chmod +x /home/jupyter-user/start_jupyter.sh"
  - su - jupyter-user -c '(crontab -l 2>/dev/null; echo "@reboot /home/jupyter-user/start_jupyter.sh") | crontab -'
  - su - jupyter-user -c "/home/jupyter-user/start_jupyter.sh"

9.インスタンスの一覧で作成したインスタンスが表示され、Statusが「稼働中」であることを確認します。

*「Status」が「稼働中」になるまでには、少し時間がかかります。

10. インスタンスの一覧画面で作成したインスタンスの「Floating IPの割当」ボタンをクリックします。

 ※Floating IP(グローバルアドレス)をインスタンスに割り当てることで、ブラウザからJupyter環境にアクセス可能となります。

11. Floating IPの割り当ての管理画面で、IPアドレス項目の「+」ボタンをクリックしてください。

12. Floating IPの確保画面で「IPの確保ボタン」をクリックします。

13. Floating IPの割当の管理画面で、今回確保したIPアドレスが表示されます。「割り当て」ボタンをクリックしてください。
確保したIPアドレスはJupyter環境にアクセスする際に使用しますので、お手元にお控えください!

14. これでステップ2は完了となります。インスタンス一覧画面にて、今回確保したIPアドレスが表示されていることを確認してください。

ステップ3. Jupyter環境にアクセスする (ご自身のパソコンでの操作)

ステップ3の目標:ご自身のパソコンでブラウザを立ち上げ、mdxII上のJupyter環境にアクセスします。

1. ステップ2で控えたFroating IPを用意してください。Jupyter環境のトークンを変更した場合はあわせてご準備ください。

ご不明な場合はインスタンス一覧画面で、確認してください。

2. 任意のインターネットブラウザを起動し、URL欄に「http://(Floating IP):8888/lab」と入力してアクセスしてください。以下の画面が表示されれば、Jupyter環境へアクセスが成功しておりますので、トークン(デフォルトではMDXIIJUPYTERTOKEN)を入力しログインしてください。

3. Jupyter環境での計算が可能となりました。