【2026年版】JupyterLabをVPSに導入してどこからでもブラウザでAI開発ができる環境作り
筆者の結論(最初に読んでください)
正直に言うと、Google Colabの無料枠でなんとかなってる人はまだ移行しなくていい。でも「90分で切れる」「GPUの割り当てが来ない」「せっかく走らせた処理が途中で死んだ」を3回以上経験したなら、VPS上のJupyterLabに移った方がトータルでラクです。自分はこの判断を早めにしたことを後悔していない。
用途別にざっくり判断を先に書いておきます。
| あなたの使い方 | 判断 |
|---|---|
| 統計分析・可視化・LLM API叩き | CPU VPSで十分。月1,000〜2,000円で完結 |
| sklearn・XGBoostで機械学習 | CPU VPS(RAM 8GB)。GPUは要らない |
| PyTorchで深層学習をガッツリ | GPU VPS。ただし月数万になるので覚悟して |
| ColabのT4が来ない問題を解決したいだけ | Colab Pro(月1,179円)の方が安上がりな場合も |
GPU VPSは「立ち上げが楽で趣味でやるなら全然あり」だけど、月2〜3万払える覚悟があるかどうかが判断の分かれ目。そこだけ最初にはっきり書いておきます。
データサイエンス・機械学習・AI開発の定番ツールであるJupyterLabを、VPSに常駐させることでPCを問わずどこからでもブラウザから接続できるようになります。Google Colabは無料枠のGPU時間制限や接続切れが悩みの種ですが、VPS上の自前JupyterLabならその制約がなく、大規模なデータ処理も中断なく走らせられます。
「PCをつけっぱなしにしてlocalhostで動かせばいいじゃん」という意見もあると思うんですが、それだと何かあったときにリモートデスクトップで入らなきゃいけないし、そもそもPC電源が切れたら終わり。全然「手放し」にならないんですよね。VPSにしてsystemdで常駐させておけば、そういう精神的なモヤモヤがなくなります。これが自分がVPSを使う一番の理由です。
Google Colab vs VPS上のJupyterLab
| 比較軸 | Google Colab(無料) | VPS上のJupyterLab |
|---|---|---|
| GPU利用 | 時間制限あり(~数時間/日) | 別途GPU VPSで無制限 |
| セッション切れ | 90分アイドルで切断 | systemdで常時稼働 |
| ストレージ | Googleドライブ依存 | VPS SSDに永続保存 |
| 月額コスト | 無料〜Colab Pro+ | VPS代のみ(固定費) |
| カスタム拡張 | 制限あり | 完全自由 |
自分の場合、Colabで一番きつかったのが「ストレージがGoogleドライブ依存」なところでした。大きめのデータセットをマウントして使ってると、読み込みが遅い・セッション切れのたびにマウントし直し・Driveの容量を圧迫する、の三重苦。VPS上のSSDに直接置いておける安心感は、使ってみると思ったより大きいです。「あーまたマウントし直しか」というストレスが完全になくなるのは体感的にかなり違います。
推奨VPSスペック
CPU構成(LLM API利用・データ分析)
| 用途 | CPU | RAM | ストレージ |
|---|---|---|---|
| 統計分析・可視化 | 2コア | 4GB | 50GB |
| 機械学習(sklearn/XGBoost) | 4コア | 8GB | 100GB |
| LLM API + 大規模データ | 8コア | 16GB | 200GB |
ここは断言する。LLM APIを叩いてデータ分析や自動化をする用途には、GPUは一切必要ありません。 API経由でClaude・GPT・Geminiを使うのはCPUの仕事です。それなのに「AI開発にはGPU VPS!」と推してくる記事は、GPU VPSの方がアフィリエイト報酬が高いからそう書いてる可能性が高い。用途に合わないスペックに余計なお金を使わないでください。「AI」という言葉が入っているだけでGPUが必要だと思い込まされるのが一番もったいないパターンです。
月額の目安でいうと:
- CPU 2コア / 4GB RAM → 約880〜1,100円/月(1日あたり約30〜37円)
- CPU 4コア / 8GB RAM → 約1,760〜2,200円/月(1日あたり約60〜73円)
コーヒー1杯分で24時間動き続ける環境が持てると思えば、悪くないと思います。
XServerとKAGOYAの損益分岐点について先に書いておくと:月76時間以上JupyterLabを起動しているならXServerの830円固定プランがお得、未満ならKAGOYAの時間課金の方が安い。 使い始めは週数時間程度が多いと思うので、最初はKAGOYAで試して慣れてきたらXServerに切り替えるのが無駄のない順番です。
ステップ1: Python環境とJupyterLabのインストール
# システム更新とPython環境整備
sudo apt update && sudo apt install -y python3-pip python3-venv
# JupyterLab専用仮想環境
python3 -m venv ~/jupyterlab-env
source ~/jupyterlab-env/bin/activate
# JupyterLab本体+データサイエンス主要ライブラリ
pip install jupyterlab \
numpy pandas matplotlib seaborn plotly \
scikit-learn xgboost lightgbm \
requests ipywidgets
# 起動確認(ブラウザを開かず起動)
jupyter lab --no-browser --port=8888
仮想環境(venv)を作るのがポイントです。システムのPythonに直接インストールすると、後からパッケージが競合したときに詰みます。「なんかよくわからないエラーが出て環境が壊れた」という状況を経験したことがある人なら刺さると思うんですが、最初から分けておくのを強くすすめます。再現性のある環境をキープする意味でも、venvは癖にしておいた方がいいです。
ステップ2: パスワード認証の設定
# パスワードハッシュを生成
python3 -c "from jupyter_server.auth import passwd; print(passwd())"
# → argon2:xxxxx... のような文字列をコピー
# jupyter_server_config.pyを作成
mkdir -p ~/.jupyter
cat > ~/.jupyter/jupyter_server_config.py << 'EOF'
c.ServerApp.ip = '127.0.0.1'
c.ServerApp.port = 8888
c.ServerApp.open_browser = False
c.ServerApp.password = 'argon2:YOUR_HASHED_PASSWORD_HERE'
c.ServerApp.allow_remote_access = True
c.ServerApp.root_dir = '/home/YOUR_USER/notebooks'
EOF
mkdir -p ~/notebooks
ip = '127.0.0.1'(localhost)にしておくのが重要です。ここを0.0.0.0にして直接外部公開するのはセキュリティ的にやめた方がいい。「動いた!」で満足してそのまま放置するのが一番怖いパターンです。nginxを噛ませてHTTPSで公開するのが正しい順番です(ステップ4でやります)。面倒くさく見えるかもしれないけど、ここを省くのはノーヘルで走るようなものなので飛ばさないでください。
ステップ3: systemdで常駐化
sudo nano /etc/systemd/system/jupyterlab.service
[Unit]
Description=JupyterLab Server
After=network.target
[Service]
Type=simple
User=YOUR_USER
WorkingDirectory=/home/YOUR_USER/notebooks
ExecStart=/home/YOUR_USER/jupyterlab-env/bin/jupyter lab \
--config=/home/YOUR_USER/.jupyter/jupyter_server_config.py
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now jupyterlab
# 状態確認
sudo systemctl status jupyterlab
Restart=on-failureを入れておくと、何かの拍子にJupyterLabが落ちても自動で再起動してくれます。これがあるのとないのとでは、深夜に走らせた処理の生存率がだいぶ変わります。自分はこれで何度か助かりました。「朝起きたら処理が死んでた」の精神的ダメージがゼロになるだけで、この設定をする価値は十分あります。
ステップ4: nginxでHTTPS公開
sudo apt install -y nginx certbot python3-certbot-nginx
sudo certbot --nginx -d jupyter.your-domain.example.com
# /etc/nginx/sites-available/jupyterlab
server {
listen 443 ssl;
server_name jupyter.your-domain.example.com;
location / {
proxy_pass http://127.0.0.1:8888;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 86400; # 長時間実行のタイムアウト対策
}
}
proxy_read_timeout 86400(24時間)は地味に大事です。デフォルト値だと長時間の計算中にnginxがタイムアウトしてブラウザ側で切断されます。「VPSに移ったのにまた途中で切れる」という状況になりたくなければ、長時間バッチを流す用途なら必ず設定してください。これを知らずにデフォルトのまま使って「なんか切れる」と悩むのが一番もったいない。
ドメインはお名前.comやCloudflareで年数百〜千円程度で取れます。サブドメインをJupyter専用にしておくと管理がラクです。
ステップ5: カーネル管理と複数Python環境
# 別の仮想環境をカーネルとして登録
python3 -m venv ~/ml-env
source ~/ml-env/bin/activate
pip install ipykernel torch torchvision
python3 -m ipykernel install --user --name="ml-env" --display-name="ML (PyTorch)"
# JupyterLabのカーネルセレクターに「ML (PyTorch)」が追加される
これが自前JupyterLabの強みのひとつで、「分析用のPython」「PyTorch用のPython」「APIクライアント用のPython」みたいにカーネルを分けて管理できます。Colabだと毎回!pip installするか、環境ごとにノートブックを別けるしかなかったのが、ここで一気に解消されます。「あのライブラリどのノートブックで入れたっけ」という無駄な時間が完全になくなるので、地味だけどかなり効いてきます。
ステップ6: おすすめ拡張機能
source ~/jupyterlab-env/bin/activate
# LSP(コード補完・定義ジャンプ)
pip install jupyter-lsp python-lsp-server
# Git連携パネル
pip install jupyterlab-git
# 変数ビューワ(DataFrameの中身をGUIで確認)
pip install lckr-jupyterlab-variableinspector
# 拡張を有効化
jupyter labextension list # インストール済み一覧
自分が実際によく使うのはjupyterlab-gitとjupyter-lspの2つです。特にLSPはコード補完が効くようになるので、IDE感覚で書けるようになります。全部いっぺんに入れなくても、まず本体を動かしてから必要なものを足していけばいいです。最初から全部入れようとして詰まるより、動く状態をひとつ作ってから積み上げる方が確実です。
GPU VPSでのCUDA対応(PyTorch)
# CUDA Toolkitのインストール(GPU VPS前提)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update && sudo apt install -y cuda-toolkit-12-4
# PyTorch(CUDA対応版)をインストール
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
# GPU認識確認(Notebookセルで実行)
# import torch; print(torch.cuda.is_available()) # → True
GPU VPSについての正直な話をします。PyTorchで深層学習をやるなら確かに速くなります。ただし月額が跳ね上がります。
KAGOYA CLOUD VPSの時間課金でGPUプランを使った場合、たとえば1時間あたり数百円かかるプランだと1日8時間使うだけで月数万円になります。「Stable Diffusionを週末だけ動かしたい」なら時間課金のGPU VPSは全然ありです。でも「常時JupyterLabを動かしながら学習も走らせたい」なら固定費として月2〜3万の覚悟が要ります。これが「まぁまぁ高い」と感じるかどうかで、GPU VPSを使うべきかどうかが決まります。正直、趣味の範囲なら覚悟さえあれば止めません。
用途と予算を見てから判断してください。「試しにGPUを使ってみたい」程度なら、KAGOYAの14日無料お試し期間を使うのが一番手堅い。週末が2回入るので、平日は仕事で触れなくても2回の週末でGPU環境を試すには十分な時間があります。「使えるかどうかわからないまま月契約する」よりずっといい判断の仕方です。
まとめ:あなたの使い方で選ぶ
| あなたの状況 | おすすめ構成 | 月額目安 | 判断 |
|---|---|---|---|
| Colabの接続切れが嫌・LLM APIを叩くだけ | CPU VPS 2コア/4GB + JupyterLab | 約880〜1,100円 | 今すぐ移行していい |
| sklearn・XGBoostで機械学習 | CPU VPS 4コア/8GB + JupyterLab | 約1,760〜2,200円 | GPUは不要。CPU VPSで十分 |
| PyTorchで深層学習・モデル訓練 | GPU VPS(週末だけ時間課金) | 使った分だけ | 時間課金でまず試す |
| PyTorchを毎日常時動かしたい | GPU VPS 固定プラン | 月2〜3万〜 | 予算と相談。覚悟が要る |
| とにかく無料で試したい | Colab無料 + KAGOYAの14日お試し | 無料 | まずここから |
XServer vs KAGOYA の損益分岐点をもう一度書いておくと:月76時間以上JupyterLabを動かすならXServerの830円固定プランがお得、未満ならKAGOYAの時間課金の方が安い。 1日あたりに換算すると2.5時間が分岐点です。「気が向いたときだけ」という使い方なら最初はKAGOYA、「毎日がっつり使う」が決まってるならXServerを選べばいい。これだけ覚えておけば迷いません。
JupyterLabをVPSにsystemdで常駐化し、nginxとHTTPSでセキュアに公開することで、Google Colabの時間制限・接続切れから解放されたパーソナルAI開発環境が完成します。月額1,000〜2,000円のCPU VPSでも統計分析・APIベースのLLM開発には十分で、GPU VPSにアップグレードすれば深層学習も完全自走できます。
合わなかったらやめればいい。それだけの話だ。「思ってたのと違った」ならプランを変えればいい。14日お試しがあるうちに動かしてみる方が、記事を読み続けるより100倍早く判断できます。