vpsで起動したjupyter notebookをローカルマシンから使えるようにします。
サーバーのOSインストールからの手順を説明しています。
前提条件
・さくらvps(メモリ1Gプラン)
・ubuntu20.04(サーバーOS)
・Mac OS Mojave(ローカルマシン)
OSインストール
VPSコントロールパネルからOSインストールします。設定は以下のとおりです。
・OS ubuntu20.04 amd6
・「パケットフィルターを利用しない」
(参考)
サーバーマシンの初期設定
サーバーにsshでログインします。「xxx.xxx.xxx.xxx」はvpsのipアドレスです。
$ ssh ubuntu@xxx.xxx.xxx.xxx
一般ユーザーを作成します。
$ adduser test_user
作成した一般ユーザーにsudo権限付与します。
$ sudo gpasswd -a test_user sudo
test_userにログインしておきます。
(以下、この一般ユーザーで作業します。)
$ sh - test_user
python(Anaconda)とJupyterのインストール
pythonおよびjupyterのインストールを行います。
ここでは、Anacondaで環境構築します。
まずは、イントーラをダウンロードします。
$ wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
上記のURLはバージョンの変更により変わるので、公式サイトで確認してください。
https://www.anaconda.com/download
64-Bit (x86) Installer (1015.6 MB)
インストーラを実行します。ファイル名はバージョンにより適宜変更してください。
$ bash Anaconda3-2023.09-0-Linux-x86_64.sh
規約を読まされるので、
Last updated February 25, 2022
等が出た直後あたりで、
Do you accept the license terms? [yes|no]
ときかれるのでyesを入力する。prefixはデフォルトでOK。
Anacondaのインストールが終わったら、test_userに再ログインすると、
condaコマンドが利用可能になります。
環境を作成します。ここでは、python3.6をpy36という名前で作成します。
$ conda create -n py36 python=3.6
作成した環境をアクティベートします。
$ conda activate py36
jupyterのインストールします。
$ conda install jupyter
<<<秘密鍵・サーバー証明書の作成>>>
https通信を行うため、秘密鍵とサーバー証明書の作成を行います。
まず、Anaconda環境にopensslが入っていることを確認。
$ which openssl
/home/test_user/anaconda3/envs/py36/bin/openssl
以下のコマンドを実行します。
$ cd /home/test_user/.jupyter
$ openssl genrsa 2048 > server.key
$ openssl req -new -key server.key > server.csr
$ openssl x509 -req -days 3650 -signkey server.key < server.csr > server.crt
実行後には、/home/test_user/.jupyter
にserver.key
,server.csr
,server.crt
が生成されていることを確認してください。
詳しくは、以下のサイトも参考にしてください。
<<<秘密鍵・サーバー証明書の作成(おわり)>>>
さて、jupyterの設定ファイルのデフォルトをつくります。
$ jupyter notebook --generate-config
Writing default config to: /home/test_user/.jupyter/jupyter_notebook_config.py
設定ファイルを編集するため、viで開きます。
$ vi ~/.jupyter/jupyter_notebook_config.py
編集内容は以下のとおりです。
(コメントアウトされている行を有効化してください。)
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
c.NotebookApp.certfile = '/home/test_user/.jupyter/server.crt'
c.NotebookApp.keyfile = '/home/test_user/.jupyter/server.key'
jupyter notebookのパスワードを設定します。ローカルマシンからjupyter notebookにアクセスする際に入力するものになります。
$ jupyter notebook password
jupyterを起動します。単に、
$ jupyter notebook
としてもよいですが、nohupで起動しっぱなしにしておきましょう。こうしておけば、 sshをexitしてもOKです。
$ nohup jupyter notebook >> jupyter.log 2>&1 &
ここまでで、サーバー側の準備は完了です。ローカルマシンでブラウザを開き、
https://xxx.xxx.xxx.xxx:8888/
にアクセスします。
参考サイト
以下のサイト様を参考にさせていただきました。