SabaKore

VPSにOllamaを入れてローカルLLMを動かす手順

Ubuntu 24.04 または 22.04 のVPSに、Ollama をインストールしてモデルを動かし、自分のPCから使うところまでの手順です。 所要時間はモデルのダウンロードを除けば10分ほどです。先に、動かしたいモデルがメモリに載るプランを選んでください(プランの選び方)。

1VPSに接続して、最新の状態にする

VPSを契約してOSにUbuntuを選んだら、SSHで接続します。ユーザー名とIPアドレスは、契約後の管理画面に出ています。

ssh ユーザー名@サーバーのIPアドレス

接続できたら、パッケージを更新し、このあと使う道具を入れます。

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl zstd

SSHの鍵認証やファイアウォールなど、契約直後の設定がまだなら先に済ませてください。SSHの守り方とファイアウォールの記事にまとめています。

2(任意)スワップを作る:メモリ不足の保険

載るかぎりぎりのモデルを動かすと、メモリが一瞬足りなくなってプロセスが落ちることがあります。 スワップ(ディスクをメモリの代わりに使う領域)があれば、落ちる代わりに遅くなって済みます。 ただしディスクはメモリよりずっと遅いので、メモリ不足の解決にはなりません。あくまで保険です。 すでにスワップがあるかは free -h の Swap の行で分かります。

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

3Ollamaをインストールする

公式のインストールスクリプトを実行します。実行前に中身を読みたい場合は、先にURLをブラウザで開けます。

curl -fsSL https://ollama.com/install.sh | sh

終わると、Ollamaがサービスとして登録され、自動で起動します。待ち受けは自分のサーバーの中だけ(127.0.0.1の11434番)です。 起動しているかを確かめます。

ollama -v
systemctl status ollama

active (running) と出ていれば成功です。

4モデルを取得して動かす

モデルは ollama run で取得と起動が同時にできます。 初回はダウンロードが走るので、サイズに応じて時間がかかります。まずは小さいモデルで試してください。

ollama run llama3.2:3b

入力欄が出たら日本語で話しかけられます。やめるときは /bye と入力します。 ほかのモデルはプラン診断で選ぶと、コマンドがそのまま出ます。

ollama list      # 取得済みのモデルと、ディスクの使用量
ollama ps        # いま読み込まれているモデルと、メモリの使用量
ollama rm モデル名  # 使わないモデルを消してディスクを空ける

プログラムから使うなら、HTTPのAPIが同じ11434番で動いています。サーバーの中から試すには次のようにします。

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2:3b",
  "prompt": "VPSとは何ですか。一文で答えてください。",
  "stream": false
}'

5自分のPCから使う:SSHトンネル(お勧め)

自分だけが使うなら、Ollamaを外へ公開せず、SSHの通り道を借りてPCから接続するのが最も安全です。 手元のPCで次を実行したままにすると、PCの11434番がVPSのOllamaにつながります。

ssh -N -L 11434:localhost:11434 ユーザー名@サーバーのIPアドレス
あなたのPCブラウザやアプリlocalhost:11434 に接続SSHの通り道22番ポート・暗号化VPSOllama127.0.0.1:11434(外には公開しない)
PCの11434番からSSHの通り道を通ってVPSのOllamaにつながる図。右側の点線は、インターネットから11434番へ直接は届かないことを示す。

この間、PC側のアプリやブラウザからは http://localhost:11434 で使えます。サーバーのポートは開けないままなので、新しい公開の心配が増えません。

6外から直接つなぐ場合の注意

Ollamaには認証がありません。外から届く状態にすると、誰でもあなたのサーバーでモデルを動かせます (CPUとメモリを使われ、VPSの料金やアカウントの停止にもつながります)。 どうしても直接つなぐなら、接続元のIPアドレスだけを許可してください。

sudo systemctl edit ollama
# 開いた画面に次の2行を書いて保存する
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"

sudo systemctl restart ollama
sudo ufw allow from 自分のIPアドレス to any port 11434 proto tcp

事業者側のファイアウォール(パケットフィルタ)がある場合は、そちらでも同じ制限が必要です。 複数の人で使うなら、認証をつけるリバースプロキシや、Open WebUI のようなログイン付きの画面を前に置きます。 ファイアウォールの設定を間違えやすい点はufwとfirewalldの記事で説明しています。

7つまずいたとき

  • 「Killed」と出て止まる / 勝手に終わる:メモリ不足でOSが強制終了した可能性が高いです。会話が長い、同時に使う人が多い、といったときはKVキャッシュで増えるため、モデルの表より多く要ります(メモリの見積もりツール)。sudo dmesg | grep -i -E "out of memory|killed process" で記録が残っているか確認します。残っていれば、小さいモデルにするか、メモリの大きいプランへ変更してください。
  • ダウンロードが途中で失敗する:ディスクの空きを df -h で確認します。モデルの大きさより十分に空きが必要です(必要なディスク容量)。
  • コマンドが応答しない:サービスのログを見ます。journalctl -u ollama -e
  • 応答が遅い:CPUだけで動かす以上、モデルが大きいほど遅くなります。 当サイトは速度を測っていないので、目安の数字は出せません。小さいモデルに替えて、使えるかを確かめてください。

8更新と後片付け

# Ollama本体の更新:インストールスクリプトをもう一度実行する
curl -fsSL https://ollama.com/install.sh | sh

# 自動起動をやめる・止める
sudo systemctl disable --now ollama

使わなくなったVPSは解約するまで料金がかかります。モデルのファイルはollama rmで消せます。

よくある質問

GPUが無いVPSでも動きますか

動きます。OllamaはCPUだけでも動作します。ただし応答は遅くなり、載せられるモデルはメモリで決まります。当サイトは速度を測っていないため、何秒かかるかは示せません。まず小さいモデルで試し、使い物になるかを自分で確かめてください。

メモリが足りないとどうなりますか

モデルの読み込みに失敗するか、動いている最中にOSがプロセスを強制終了します。画面には「Killed」と出るだけで理由は表示されません。原因は dmesg か journalctl で確認できます(この手順の「つまずいたとき」を参照)。

インターネットに公開してよいですか

お勧めしません。Ollamaには認証の仕組みがなく、公開すると誰でもあなたのサーバーでモデルを動かせます。自分だけが使うなら、SSHトンネルで接続するのが最も安全です(手順5)。

ToolkITBoxのAIツール・解説と併用する

姉妹サイトの、この記事と相性のいいページです。

コマンドはOllama公式の手順に沿っています。バージョンアップで挙動が変わることがあるため、うまくいかないときは公式のLinux向け手順もご確認ください。