Claude CodeをさくらVPSに常駐させる最小構成(AIエージェント24時間運用)

Claude CodeをさくらVPSに常駐させる最小構成(AIエージェント24時間運用)

Claude CodeはAnthropicが提供するターミナルベースのAIエージェントです。ローカルPCで動かすのが手軽ですが、「PCを閉じたら止まる」「cronで定期実行したい」「Slackに通知を飛ばしたい」といった要件が出てきたとき、VPS上への常駐が現実的な解になります。

この記事では、さくらインターネットのVPS(さくらのVPS)を使ってClaude Codeを24時間常駐させる最小構成を解説します。初めてVPSを触る個人開発者でも再現できるよう、手順を段階的に示します。

この記事の結論

  • 定期実行・Slack通知が欲しい→ systemd または pm2 で常駐化し、cronと組み合わせるのが最安定
  • コストを最小化したい→ さくらのVPS最小プランで十分動作(公式で最新プラン・価格を確認)
  • セキュリティが心配→ SSH鍵認証+パスワードログイン無効化+最小権限ユーザーで運用
  • 国内でデータ処理を完結させたい→ さくらのAI Engineと組み合わせると国内GPU上でLLM推論が可能(詳細は後述)
当ページのリンクには広告が含まれています。
目次

Claude Code VPS常駐の全体像

Claude CodeをさくらVPSで24時間運用するまでの全体フロー
Claude CodeをさくらVPSで24時間運用するまでの全体フロー

全体の流れは6ステップです。さくらのVPSを契約し、Node.jsなどの前提環境を整えてClaude Codeをインストール。その後、tmux・systemd・pm2のいずれかでプロセスを常駐させ、SSH鍵認証とファイアウォールでサーバーを保護します。最後にcronやWebhookと連携させれば、PCを起動していなくてもAIエージェントが自律的に動き続ける環境が完成します。

他のVPSとの比較や選び方はVPSおすすめ比較記事も参照してください。シンVPSでの同様の構成はシンVPS常駐ガイド、XServer VPSとの組み合わせはXServer VPS×Claude Codeで詳しく解説しています。

さくらのVPS契約とプラン選び

プランの目安(公式で最新を確認)

Claude Code本体は軽量ですが、実行するタスクによってメモリ消費が変動します。メモリ1〜2GB・CPU1〜2コアのエントリープランから始め、負荷を見て増強するのが現実的です。ストレージはSSDプランを選ぶとパッケージインストールが速くなります。プラン名・スペック・価格はさくらインターネット公式サイトで最新情報を確認してください。

こんな人におすすめ
・Claude Codeを月額固定コストで24時間動かしたい個人開発者
・cron+AIエージェントで定期タスクを自動化したい中小企業担当者
・国内データセンターにこだわりがある方(さくらは国内自社DC運営)

OSイメージの選択

Ubuntuの最新LTS(22.04または24.04)が保守のしやすさと情報量の多さから無難です。CentOSは2024年にEOLを迎えているため新規構築には推奨しません。コントロールパネルからOS再インストールが容易な点もさくらVPSの利点です。

前提環境の構築手順

ステップ1:初回ログインとユーザー設定

VPSを契約するとroot公開鍵またはパスワードでSSHログインできます。まず一般ユーザーを作成し、sudoグループに追加します。

# rootでログイン後
adduser deployer
usermod -aG sudo deployer

以後の作業はこの一般ユーザーで行います。

ステップ2:パッケージ更新とNode.jsのインストール

Claude CodeはNode.js 18以上が必要です(公式ドキュメントで必要バージョンを確認してください)。nvmを使うとバージョン管理が楽になります。

sudo apt update && sudo apt upgrade -y

# nvmのインストール(公式GitHubのインストールコマンドを使用)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc

nvm install --lts
nvm use --lts
node -v  # バージョン確認

ステップ3:Git・その他の前提ツール

sudo apt install -y git curl build-essential
# tmuxも後で使うので入れておく
sudo apt install -y tmux
ポイント
Claude Codeがツールとして呼び出すコマンド(gh CLI、ripgrep、jq等)も事前にインストールしておくと、エージェントが途中で止まりにくくなります。

Claude Codeのインストールと初期設定

ステップ4:Claude Codeのインストール

Claude CodeはAnthropicの公式npmパッケージとして配布されています。インストールコマンドは公式ドキュメントで確認してください。バージョンが頻繁に更新されるため、公式の手順が最も確実です。

# 公式の最新インストールコマンドを参照のこと
npm install -g @anthropic-ai/claude-code
claude --version

ステップ5:APIキーの設定

Claude CodeはAnthropicのAPIキーを必要とします。キーはAnthropicコンソールから取得し、環境変数に設定します。

echo 'export ANTHROPIC_API_KEY="sk-ant-xxxx"' >> ~/.bashrc
source ~/.bashrc
注意
APIキーは絶対にGitリポジトリにコミットしないでください。.envファイルに書く場合は.gitignoreへの追加を忘れずに。VPS上ではchmod 600 .envでアクセス権を制限するのが基本です。

常駐化の方法(tmux・systemd・pm2)

Claude Codeを24時間動かし続けるには、セッションが切れてもプロセスが生き残る仕組みが必要です。代表的な3つの方法を紹介します。

方法A:tmux(最も手軽)

tmuxはターミナルの仮想セッションを作成し、SSHを切断してもプロセスを継続させます。動作確認や試し運用に最適です。

# セッションの作成
tmux new -s claude-agent

# セッション内でエージェントを起動
claude --dangerously-skip-permissions ...

# セッションからデタッチ(Ctrl+B, D)
# 再接続
tmux attach -t claude-agent

方法B:systemdサービス(本番向け)

systemdに登録すると、VPS再起動時に自動起動し、クラッシュ時も自動再起動できます。

# /etc/systemd/system/claude-agent.service
[Unit]
Description=Claude Code Agent
After=network.target

[Service]
Type=simple
User=deployer
WorkingDirectory=/home/deployer/agent
EnvironmentFile=/home/deployer/.env
ExecStart=/home/deployer/.nvm/versions/node/vXX.X.X/bin/node 
  /home/deployer/.nvm/versions/node/vXX.X.X/bin/claude 
  --dangerously-skip-permissions ...
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable claude-agent
sudo systemctl start claude-agent
sudo systemctl status claude-agent

方法C:pm2(Node.js系に慣れた方向け)

pm2はNode.jsプロセスマネージャーです。ログ管理やクラスタモードが使いやすく、すでにNode.jsサービスを運用している方に向いています。

npm install -g pm2
pm2 start "claude --dangerously-skip-permissions ..." --name claude-agent
pm2 save
pm2 startup  # 表示されたコマンドをsudoで実行
どれを選ぶか
試作段階→tmux、長期運用→systemd、既存のpm2エコシステムがある→pm2、という使い分けが実用的です。

cron連携で定期実行

「毎朝9時にレポートを生成する」といった定期タスクは、cronからClaude Codeを呼び出す形にします。

# crontab -e
0 9 * * * ANTHROPIC_API_KEY=sk-ant-xxxx /home/deployer/.nvm/versions/node/vXX.X.X/bin/claude 
  -p "月次レポートを生成してSlackに送信してください" >> /home/deployer/logs/cron.log 2>&1

セキュリティ設定

SSH鍵認証の設定とパスワードログイン無効化

# ローカルPCで鍵ペアを生成
ssh-keygen -t ed25519 -C "your_email@example.com"

# 公開鍵をVPSにコピー
ssh-copy-id deployer@

公開鍵を転送したら、/etc/ssh/sshd_config を編集してパスワード認証を無効化します。

PasswordAuthentication no
PermitRootLogin no
sudo systemctl reload sshd
注意
SSH鍵をコピーする前にパスワード認証を無効化すると、サーバーに入れなくなります。必ず鍵でのログインが成功したことを確認してから無効化してください。

UFWファイアウォールの設定

sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

Webサーバーも動かす場合はsudo ufw allow 80および443を追加します。それ以外のポートは原則として閉じておきます。

最小権限での運用

Claude Codeを動かすユーザーには、タスクに必要な最小限の権限だけを付与します。特にルートディレクトリへの書き込みやsudoの無制限利用は避けてください。エージェントが誤ったコマンドを実行するリスクを最小化するのが目的です。

さくらのAI Engineとの組み合わせ

さくらインターネットは2025年9月に「さくらのAI Engine」のGA(一般公開)を開始しました。国内GPU上でLLM推論を実行するAPIサービスで、基盤モデルの無償利用枠も用意されています。Claude Code自体はAnthropicのAPIを使いますが、エージェントのサブタスクとして「国内でテキスト生成・分類・要約を処理したい」場面でAI Engineを組み合わせることができます。

「外部APIを一切使わず国産モデルのみで完結する」というわけではなく、Claude CodeはAnthropicのAPIと通信しますが、特定の処理を国内完結させる手段としてAI Engineが選択肢に入ります。Difyとさくらのお手頃な活用例はDify×さくらAI Engine連携記事も参照してください。

注意点

注意
APIコストに注意してください。Claude Codeを常駐させると、エージェントがタスクを実行するたびにAnthropicのAPIトークンが消費されます。特にループ処理や大量のファイル操作を自動化する場合、予想外にコストが膨らむことがあります。Anthropicのコンソールで利用上限(spending limit)を設定し、定期的に確認する習慣をつけてください。
注意
--dangerously-skip-permissionsフラグの扱い。VPS上で非インタラクティブ実行する際にこのフラグを使う場合、エージェントがファイル削除・外部コマンド実行・Webリクエストなどを確認なしに行います。信頼できるプロンプトと限定された作業ディレクトリの組み合わせで使用範囲を制限してください。
注意
Node.jsのパスに注意。nvmでインストールしたNode.jsはユーザーのシェル環境に依存するため、systemdやcronから呼び出す際はフルパスを指定する必要があります。which nodeでパスを確認してサービスファイルやcrontabに記述してください。

よくある質問

さくらのVPS以外でも同じ手順で動きますか?

基本的な手順(Node.jsのインストール、Claude Codeのセットアップ、systemd/pm2での常駐化)はUbuntuを使うVPS全般に共通です。シンVPSでの構成はシンVPS常駐ガイド、XServer VPSとの比較はXServer VPS×Claude Code記事を参照してください。

Claude Codeの料金はどうなりますか?

Claude Codeの利用料金はAnthropicのAPIトークン消費量に基づきます。VPS代とは別にAPIコストが発生するため、Anthropicの公式サイトで最新の価格と無料枠の条件を確認してください。使いすぎを防ぐため、コンソールでの利用上限設定を強く推奨します。

エージェントがクラッシュしたとき自動で再起動できますか?

systemdでRestart=on-failureを設定するか、pm2のデフォルト動作(クラッシュ時自動再起動)を利用してください。ただし、バグや無限ループが原因のクラッシュは再起動しても繰り返すため、ログ監視と再起動回数の上限設定(StartLimitIntervalSec/StartLimitBurst)も合わせて設定することを推奨します。

Slackへの通知はどう実装しますか?

Claude Codeのエージェントに「タスク完了後にSlack Webhook URLへPOSTリクエストを送る」よう指示するか、シェルスクリプト側でcurlを使って通知を送る構成が一般的です。Slack Webhook URLは環境変数として管理し、コードに直書きしないようにしてください。Claude Codeを使ったAIエージェント全体の設計については完全ガイド記事も参考にしてください。

まとめ

この記事の結論

  • 定期実行・Slack通知が欲しい→ systemd または pm2 で常駐化し、cronと組み合わせるのが最安定
  • コストを最小化したい→ さくらのVPS最小プランで十分動作(公式で最新プラン・価格を確認)
  • セキュリティが心配→ SSH鍵認証+パスワードログイン無効化+最小権限ユーザーで運用
  • 国内でデータ処理を完結させたい→ さくらのAI Engineと組み合わせると国内GPU上でLLM推論が可能

ローカルPCに縛られないAIエージェント環境を一度構築してしまえば、あとはプロンプトを変えるだけでさまざまなタスクを自動化できます。まずは最小プランで試し、使い方が固まってからスペックを上げていくのが無駄のないアプローチです。

会員登録でお役立ち資料をダウンロードできます

低コストかつスピーディーなシステム構築を実現できる「ノーコード開発ツール」の選び方ガイドをプレゼント中!

目次