プライベートAI第2部:Tailscale Apertureでどこからでも安全にアクセス
TailscaleのプライベートネットワークとAperture AIゲートウェイを使用して、セルフホストの大規模言語モデルに安全にリモートアクセスする方法を解説。パブリックインターネットに公開することなく利用できます。
「プライベートAI」シリーズの第1部では、GB10 NVIDIA DGX Spark上でQwen3.6-35B-A3B-FP8モデルを実行し、OpenAI互換APIを提供しました。しかし、このサービスはローカルホスト(localhost:8000)からのみアクセス可能でした。本記事では、第2部として、モデルをパブリックインターネットに公開することなく、任意のデバイスから安全にアクセスできるようにする手順を説明します。
基本コンセプト:2層の保護機構を採用します。Tailscaleはプライベートメッシュネットワークを提供し、デバイス間の暗号化された直接接続を実現します。ApertureはAIゲートウェイとして、リクエストをTailscale IDで認証し、すべての使用状況を集中管理します。
ステージ3:サーバーをプライベートネットワークに参加させる
まず、AIサーバー(例:DGX Spark)にTailscaleをインストールして起動します。
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up表示されたURLをブラウザで開き、Tailscaleアカウントでログインします。サーバーのTailscale IP(例:100.92.0.10)を控えておきましょう。ファイアウォールを使用している場合は、Tailscaleインターフェースのポート8000を許可します。
ステージ4:Apertureゲートウェイのデプロイ
aperture.tailscale.comにアクセスしてサインアップします(ベータ版は無料)。プロビジョニング後、ApertureはTailscaleネットワーク上にgatewayというホスト名で表示され、ダッシュボードはhttp://gateway/uiでアクセスできます。
ApertureダッシュボードのConfigurationで、providersブロックにカスタムプロバイダーを追加します。
"sovereign": {
"baseurl": "http://100.92.0.10:8000",
"apikey": "local-no-auth",
"models": ["Qwen/Qwen3.6-35B-A3B-FP8"]
}重要:baseurlには/v1を含めないでください。apikeyは任意の文字列で構いません。modelsはvLLMが提供する正確なモデルIDと一致させる必要があります。
次に、grantsブロックにアクセスルールを追加します。例として、全ユーザーに全モデルへのアクセスを許可する場合:
"grants": [
{
"src": ["*"],
"app": {
"tailscale.com/cap/aperture": [
{ "role": "admin" },
{ "models": "**" }
]
}
}
]設定を保存したら、ModelsタブでPlayボタンをクリックして接続をテストします。緑色のチェックマークが表示されれば成功です。
ステージ5:クライアントデバイスの接続
クライアント(例:ノートパソコン)にもTailscaleをインストールし、サーバーと同じアカウントでログインします。その後、次のコマンドで接続を確認します。
curl http://gateway/v1/modelsモデル一覧が返ってくればMagicDNSが機能しています。実際のリクエストを送信:
curl http://gateway/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"Qwen/Qwen3.6-35B-A3B-FP8","messages":[{"role":"user","content":"hello from my laptop"}]}'APIキーは不要で、Tailscale IDが認証として機能します。リクエストはApertureダッシュボードの使用ログに記録されます。
トラブルシューティング
- Playボタンが赤いX:Tailscale ACLでApertureノードからサーバーのポート8000へのアクセスを許可してください。
- パスエラー:baseurlに/v1が含まれていないか確認。
- モデルが表示されない:apikeyが空でないか、モデルIDが正しいか確認。
- gatewayが解決できない:MagicDNSを有効にするか、ApertureノードのTailscale IPを直接使用。
- アクセス拒否:grants設定を見直してください。
これで、プライベートで安全なリモートアクセス可能なAIモデルが完成しました。今後は、さまざまなアプリケーションをhttp://gateway/v1に接続してご利用ください。APIキーは任意のプレースホルダで問題ありません。