ふくふくHukuhuku Inc.
EP.20Toolbox 13分公開: 2026-09-01

手元のモデルを社内で使える形にする ── 認証と制限の付け方

1台で動かしたものを何人かで使うとき、そのまま公開すると事故ります。認証・流量制限・記録を、アプリを改修せずに前段で足す構成を扱います。

#ローカルLLM#セキュリティ#運用#インフラ
執筆 / 監修
松尾 亮合同会社ふくふく 代表社員

データ基盤・データパイプライン構築 / BI / 生成 AI 活用支援を専門とするエンジニア (28 年)。 本記事は AI 利用ポリシーに基づき、生成 AI の補助で執筆 → 人間が監修・編集して公開しています。

プロフィール詳細
シェア

EP.14 で手元にモデルを立てる話をしました。そこで「社内で共有するなら認証は別途」と書いた宿題を、この回で回収します。

1台で自分だけが使う状態から、何人かで使う状態へ移るとき、そのまま公開すると事故ります。何を足す必要があるかを整理します。

1. そのまま公開すると何が起きるか

手元で動かす仕組みは、自分だけが使う前提で作られています。そのまま社内に開けると、いくつかの前提が崩れます。

1人用の前提が崩れる
前提崩れると
使うのは自分だけ誰が使ったか分からない
同時に1つしか処理しない同時実行で詰まる、または落ちる
変な入力は来ない想定外の入力で止まる
費用がかからない電力と機器の占有が増える
記録は要らない問題が起きても追えない

2行目が最初に問題になります。同時に複数の要求が来ると、順番待ちが発生します。上限を設けていないと、待ちが積み上がってメモリを使い果たします(パフォーマンスチューニング実践 EP.07 で扱った話と同じ構造です)。

社内でも認証は要る

「社内ネットワークだから」という理由で認証を省くのは危うい。無線経由で外から届くことがありますし、誰が使ったか分からない状態は、機微な情報を扱う仕組みでは避けるべきです。

2. 前段に層を置く

対処の基本は、元の仕組みを改修せず、前段に層を置くことです。 を使うと、認証・暗号化・・記録をまとめて扱えます。

役割の分担
担当改修の要否
前段の層認証・暗号化・流量制限・記録設定だけ
元の仕組み推論そのもの改修不要

この形にすると、元の仕組みを差し替えても前段はそのまま使えます。モデルを変えても、別のソフトに移行しても、認証の仕組みを作り直す必要がありません。

前段で認証・制限・記録をまとめて扱う
Code
# 流量の上限を定義する(1つのIPあたり毎秒2回まで)limit_req_zone $binary_remote_addr zone=llm:10m rate=2r/s;
# 同時接続数の上限limit_conn_zone $binary_remote_addr zone=llmconn:10m;
server {    listen 443 ssl;    server_name llm.internal.example.com;
    ssl_certificate     /etc/ssl/certs/internal.crt;    ssl_certificate_key /etc/ssl/private/internal.key;
    # 誰が使ったかを残す    access_log /var/log/nginx/llm_access.log combined;
    location / {        # 認証(社内の仕組みに合わせて置き換える)        auth_basic           "internal only";        auth_basic_user_file /etc/nginx/.htpasswd;
        # 流量と同時接続の上限        limit_req  zone=llm burst=5 nodelay;        limit_conn llmconn 2;
        # 生成は時間がかかるので、待ち時間を長めに取る        proxy_read_timeout 300s;        proxy_buffering    off;      # 逐次出力を止めない
        proxy_pass http://127.0.0.1:11434;        proxy_set_header X-Forwarded-For $remote_addr;    }}

`proxy_buffering off` が実務的な要点です。生成結果を逐次返す構成では、前段がまとめて溜めてしまうと出力が一気に来ることになり、使い勝手が大きく落ちます。

認証方式は社内の仕組みに合わせてください。上の例は最も単純な形です。既に が入っているなら、そちらに寄せるほうが管理が楽になります(エンジニアの引き継ぎ術 EP.02 参照)。

3. 上限を必ず設ける

認証と同じくらい重要なのが上限です。設けていないと、1つの誤った処理が全体を止めます

  • 同時実行数 — 機器が処理できる数に合わせる。超えたら待たせる
  • 1リクエストあたりの入力長 — 極端に長い入力を弾く
  • 1リクエストあたりの出力長 — 終わらない生成を防ぐ
  • 利用者あたりの頻度 — 誤ってループさせたときの被害を限定
  • 全体の待ち行列の長さ — 超えたら断る(待たせ続けない)

最下行が抜けやすい。待たせ続けるより、断るほうが親切です。10分待たされて結果が返るくらいなら、すぐ「いま混んでいます」と返すほうが、利用者は別の手段を取れます。

断ることを設計に入れる

手元の機器は資源が限られています。全部の要求に応えようとすると、全員が遅くなります。断る条件を決めておくほうが、結果として使える仕組みになります。

4. 記録を残す

── 誰が・いつ・何をしたか ── を残します。障害の調査だけでなく、適切に使われていることを示すためにも必要です。

残す項目
記録する項目用途
誰が利用状況の把握。問題時の連絡先
いつ時系列の追跡
どれくらい時間がかかったか性能の傾向を見る
入力・出力の長さ内容は残さず、量だけ
エラーの有無問題の検知

4行目が判断のいる箇所です。入力内容そのものを残すかどうか。残せば調査には有用ですが、機微な情報が記録に蓄積します。手元で動かす動機が「外に出さないため」なら、記録に残すのも慎重に判断してください。

実務的には、長さや件数などの量だけを残し、内容は残さないという選択が多くなります。それでも傾向は掴めますし、記録自体が新たなリスクになりません

5. 誰がどれだけ使っているかを見る

運用が始まったら、利用状況を定期的に見ます。想定と実態はずれます。

アクセス記録から利用状況を集計する
Bash
#!/usr/bin/env bashLOG="${1:-/var/log/nginx/llm_access.log}"
echo "=== 利用者別のリクエスト数(上位10)==="awk '{print $1}' "$LOG" | sort | uniq -c | sort -rn | head -10
echoecho "=== 時間帯別の分布 ==="awk -F'[:[]' '{print $3"時"}' "$LOG" | sort | uniq -c | sort -k2
echoecho "=== 上限に当たった回数(429)==="awk '$9 == 503 || $9 == 429 {n++} END {print n+0 " 件"}' "$LOG"

3番目の上限に当たった回数が重要な指標です。多いなら、上限が厳しすぎるか、機器の能力が足りていない。ゼロなら、上限が機能する場面がまだ来ていないということです。

時間帯の分布も見てください。特定の時間に集中しているなら、その時間だけ厳しくなります。処理の重い用途を別の時間に回してもらう、といった調整の材料になります。

6. どこまで作り込むか

最後に線引きです。社内向けの仕組みを作り込みすぎると、維持が負担になります

作り込みの線引き
対象必要性備考
認証必須省略しない
上限(同時実行・入出力長)必須無いと全体が止まる
通信の暗号化必須社内でも
基本的な記録必須量だけでよい
利用者ごとの細かい権限場合による人数が少なければ不要
専用の管理画面不要なことが多い記録の集計で足りる

上4つは必須ですが、下2つは規模しだいです。数人で使う仕組みに管理画面を作ると、作る手間と維持の手間のほうが大きくなります

そして、利用が増えて手元の機器で足りなくなったら、構成そのものを見直すという判断もあります。EP.17 で扱った複数台の構成や、用途によっては外部のサービスとの併用も選択肢に入ります。

ここまでのまとめ

1人用の前提(同時実行なし・記録不要)は、共有した瞬間に崩れます。対処は前段に層を置くこと(元の仕組みは改修しない)。認証・上限・暗号化・記録の4つは必須で、特に上限が無いと1つの誤りが全体を止めます。記録は内容ではなく量を残す。そして待たせ続けるより断るほうが、結果として使える仕組みになります。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp