Claude ScienceのHPC接続 — SSH・ログインノード経由の仕組み
Claude Scienceが研究室のHPCクラスタとどう繋がるかを、SSHホスト接続・リモートLinuxサーバー運用・Modal連携の3方式で解説します。ターミナルで完結するClaude Codeとの接続コストの違いも扱います。
Claude ScienceのSSHホスト接続とリモートLinuxサーバー運用は、データを研究室の外に出さずにHPCクラスタへ計算を投げられるように設計されています。仕組みは1つではありません。ジョブだけをSSH経由でHPCに送る「リモート計算クラスタ」接続と、アプリ本体をHPCログインノード上で動かし手元のブラウザから覗く「リモートLinuxサーバー」運用の、性格が違う2方式があります。GPUが必要になれば、利用者自身のModalアカウントへ計算を逃がす3つ目の経路も用意されていますが、こちらはデータがModalのクラウドに送られる点で前の2つとは性格が異なります。
Claude ScienceはHPCとどう繋がるのか
Claude Scienceの機能全体は60超の科学データベースに接続でき、幅広い解析スキルを備えています。本稿ではそのうち計算資源への繋ぎ方だけを掘り下げます。公式が案内する接続方式は大きく3つです。
- リモート計算クラスタ: Claude Science自体は手元のPCで動かしたまま、ジョブの実行だけをSSH経由でHPCクラスタや研究室のワークステーションに委ねる
- リモートLinuxサーバー: Claude Scienceのアプリ本体をクラウドVMやHPCログインノード上にインストールし、手元のブラウザからSSHトンネル越しに操作する
- Modal連携: 自前のクラスタを介さず、利用者自身のModalアカウントでGPUジョブをオンデマンド実行する
どれを選ぶかで、データがどこに置かれ、誰の権限でジョブが走るかが変わります。前の2つはどちらもSSHを土台にしていますが、アプリがどこで動くかが決定的に違います。
SSHホスト接続 — ジョブだけをHPCに投げる仕組み
Claude Scienceを手元のPCやラボのLinux機で動かしたまま、計算だけを別のマシンに投げるのが「リモート計算クラスタ」機能です。設定はSettings > Compute > SSH hosts > Add SSH hostから行い、追加するホストは自分の~/.ssh/configに書かれたエイリアスから選びます。アドレス・ユーザー名・ポート・ProxyJumpの設定は、すべてこの設定ファイルから読み込まれます。認証は自分の鍵かssh-agentが使われ、ホスト側へのインストールは不要です。ジョブスクリプトと入力は利用者のPCからホストへ直接送られ、出力も同じ経路で戻ります。Anthropicを経由しません。
ホストを追加すると、読み取り専用のプローブが自動で走ります。CPU数・メモリ量・GPUとCUDAドライバの有無・conda / モジュール環境 / Apptainerの有無・スクラッチディレクトリ・sbatchコマンドの有無を記録し、SLURMクラスタであればパーティション構成まで読み取ります。この結果はホスト詳細ページの編集可能なメモとして保存され、後からDetailsドキュメントに書き足せば、Claudeは次回以降のジョブ実行でその内容を参照します。環境の有効化方法やデータの置き場所、スケジューリングの慣習まで、ホストごとの「引き継ぎメモ」として機能する形です。
ジョブの実行方式はホストの種類で変わります。ワークステーションでは端末から切り離されたプロセス(detached process)として実行され、SLURMクラスタではsbatch経由で投入されます。接続が切れても実行は続きます。ホスト詳細ページでは、スクラッチディレクトリ(SLURMでは共有ファイルシステム上である必要があります)と同時実行数の上限(既定100)を設定できます。
Claudeがリモートジョブを提案すると、コマンドとスクリプトの内容を示す承認カードが出ます。承認の範囲は「今回のみ」「この会話」「このプロジェクト」「常時」の4段階から選べ、承認するとジョブスクリプトと入力ファイルがスクラッチディレクトリ配下のジョブ用ディレクトリにコピーされます。
ジョブの既定タイムアウトは30分です。長時間かかる計算は事前にClaudeへ伝える必要があります。ジョブが終わると出力はセッションに引き戻されますが、サイズが約100MBを超えるファイルはホスト上に残り、Claudeはそのパスだけを記録します。大きな中間ファイルをネットワーク越しにコピーし直さない設計です。
リモートLinuxサーバー運用 — アプリ本体をログインノードに置く
もう1つの方式は、Claude Science本体をクラウドVMやラボのLinuxサーバー、あるいはHPCログインノード自体にインストールし、手元のブラウザからSSHトンネル経由で操作するやり方です。前節の「SSHホスト接続」がジョブの投入先を切り替えるだけなのに対し、こちらはアプリと会話履歴、データの置き場所そのものをサーバー側に固定します。セットアップは5分程度、初回起動時の環境構築に数分がかかります。
サーバー側の要件はx64かつglibcベースのLinuxで、arm64やAlpineのようなmusl系ディストリビューションには対応していません。ディスク空き容量は約5GB、加えてサンドボックス実行に必要なbubblewrap(0.8.0以降)とsocatの2パッケージが要ります。Ubuntu 24.04は条件を満たしますが、22.04はbubblewrapのバージョンが古く、別途アップグレードが必要です。アカウント側の要件もあり、Pro・Max・Team・Enterpriseのいずれかのプランが必要です。Freeプランではサインインの手前で止まります。
sudo apt-get update && sudo apt-get install -y curl bubblewrap socat
curl -fsSL https://claude.ai/install-claude-science.sh | bashインストーラーは最新リリースを取得しチェックサムを検証したうえで、claude-scienceコマンドを~/.local/binに配置します。PATHの追記が必要な場合はインストーラーがその1行を表示するので、シェルの設定ファイルに足してからclaude-science --versionで確認します。
サーバーを起動する前に、ポートフォワードを先に済ませておく必要があります。起動時に表示されるサインインリンクの有効期限は約3分しかないためです。Claude Scienceはポートを2つ使います。Web画面用の8000番と、生成したHTMLのプレビュー専用の8001番(既定はWebアプリのポート+1)です。プレビューを別ポートの別オリジンで配信しているのは、プレビュー中のページがセッションを読めないようにするためです。
ssh -L 8000:localhost:8000 -L 8001:localhost:8001 you@server.example.comこのターミナルは開いたままにします。トンネルはSSH接続が続く間だけ有効です。VS CodeのRemote-SSH拡張機能を使っている場合は、使用中のポートを自動でフォワードしますが、Portsパネルで両方のポートが転送されているかは確認しておく必要があります。
サーバー側ではclaude-science serve --no-browserで起動します。バックグラウンドで動かし続けたいときは--detachedを付け、claude-science statusで稼働状況を、claude-science stopで停止できます。
claude-science serve --no-browser --detached
claude-science status初回起動時はhttp://localhost:8000/?nonce=...形式のサインインリンクがすぐ表示され、その裏でPythonとRの初期環境構築が進みます(数分・約5GBのディスクを消費)。ポート8000か8001がどちらかのマシンで使用中なら、--portで別ポートを指定し、ssh -L側のフォワード先も合わせて変更します。
ブラウザで開いたリンクは1回しか使えず、約3分で失効します。失効したら、サーバー上でclaude-science urlを実行すれば新しいリンクを出し直せます。claude-science stopのあとclaude-science serve --no-browserで起動し直しても新しいリンクが表示されます。サインインのリダイレクトがトンネル越しにうまく戻らない場合は、サインイン画面のPaste code insteadを選ぶと回避できます。更新はclaude-science updateで行います。
つまずきやすい点は決まっています。bwrap too oldというエラーはbubblewrapのバージョン不足が原因です。cannot create unprivileged user namespacesは、カーネルやAppArmorが名前空間の作成をブロックしている状態で、一部のUbuntu 24.04イメージで発生します。ブラウザからlocalhost:8000に届かないなら、単純にトンネル自体が張れていません。
GPUが必要ならModalという第三の経路
自前のクラスタを介さずにGPUを使いたい場合は、利用者自身のModalアカウントに計算を投げる経路があります。課金はModalから利用者に直接行われ、Anthropicは支払い方法を一切扱いません。modal token newでログイン済みなら、~/.modal.tomlを自動で読み込みます。そうでなければSettings > CredentialsにトークンIDとシークレットを貼り付けます。
GPUやメモリが必要な処理では、ClaudeがModalジョブを提案するカードが出ます。カードにはH100などの具体的なマシン仕様、秒単位課金である旨、上限時間が表示されます。承認はジョブ単位・会話単位・プロジェクト単位から選べます。同時実行数は既定10、コンテナのタイムアウトは既定12時間で最大23時間まで延長できます。入力ファイルは1回の投入につき1GiBまで、より大きなデータはModal Volumeにステージングしてジョブにマウントする形です。出力は./out/配下に書き出され、上限は5GiBです。
支出の上限そのものは設定できません。ジョブごとにマシン仕様と時間の上限を承認する形でコストを抑える設計で、実際の消費はModal側のダッシュボードで確認します。また、Claude Scienceのアプリを閉じても実行中のModalジョブは止まりません。終了かタイムアウトに達するまで課金が続きます。
SSHホスト接続・リモートLinuxサーバー・Modalの3方式は、組織側の管理コンソールでそれぞれ個別にオン・オフを切り替えられます。TeamプランとEnterpriseプランはSSHホスト接続が既定でオンです。Modalへの接続はTeamでは既定オンですが、Enterpriseでは既定オフです。HIPAA準拠が有効な組織では、SSHホストを含む接続系の機能はすべて既定でオフになります。管理者がSSHホスト接続をオフにしても、登録済みのホストは削除されず、新しいコマンドやファイル転送だけを拒むようになります。すでに走っているジョブは停止させて結果を回収できます。
アプリがclaude.aiに72時間届かない状態が続くと、SSHホストとModalへの接続はいったん一時停止し、再接続すると元に戻ります。
Claude Codeの接続方式と何が違うか
Claude CodeのSSH接続は、CLIとしてターミナルの中でそのまま動く前提に立っています。すでにSSHでHPCログインノードにログインしているなら、そのシェルの中でclaudeを起動するだけで完結し、Claude Science側のようなポートフォワードや専用トンネルは要りません。claude mcp login <name> --no-browserというコマンドもありますが、これはClaude Code本体のログインではなく、個々のMCPサーバーをCLIから認証するためのものです。Claude Codeの接続の軽さは、そもそもGUIを持たずターミナルに間借りする設計から来ています。
一方でClaude Scienceは、3D構造やゲノムブラウザトラック、化学構造をネイティブに描画するGUIアプリです。ブラウザ描画が前提になる以上、ログインノード上で本体を動かすなら手元にその画面を転送する経路が要り、それがSSHトンネルとポート転送という形を取っています。興味深いのは、Linux上のサンドボックス実行に使うパッケージがClaude Codeと共通している点です。どちらもbubblewrapとsocatを使ってコード実行を隔離しています。サンドボックスの基盤は共有していても、「リモートの計算資源にどう手を伸ばすか」という接続層の設計は、GUIかCLIかという製品の性格の違いをそのまま映しています。
どの方式を選ぶか
| 状況 | 向く方式 | 理由 |
|---|---|---|
| 手元のPCは使いたいが計算だけHPCに投げたい | 向く方式SSHホスト接続 | 理由アプリと会話履歴は手元に残り、ジョブだけがクラスタに渡る |
| ラボの共有Linux機やログインノードから常時使いたい | 向く方式リモートLinuxサーバー | 理由データと会話履歴をサーバー側に集約でき、複数端末からブラウザだけで参照できる |
| 自前のクラスタに空きがなくGPUが必要 | 向く方式Modal連携 | 理由秒単位課金でオンデマンドにGPUへスケールでき、自組織のクラスタ運用を待たない |
| すでにSSHでログインノードに入って作業している(Claude Code利用時) | 向く方式ターミナル内でそのまま起動 | 理由追加のトンネル設定なしに、今のセッションの中で完結する |
まとめ
Claude ScienceのHPC接続は、ジョブだけを委ねるSSHホスト接続、アプリ本体をログインノードに置くリモートLinuxサーバー運用、GPUをオンデマンドで借りるModal連携の3層で構成されています。いずれも認証は既存の~/.ssh/configやModalトークンに乗り、ホスト側への追加インストールを求めない設計です。リモートジョブがサンドボックスの外、利用者本人の権限で動く点は、導入前に把握しておく価値があります。ターミナルにそのまま間借りするClaude Codeと比べると、GUIを持つ製品ならではの接続コストがどこに表れているかも見えてきます。