クラウドに頼らない!オンプレAIサーバーをIIS × Docker × FastAPIで構築してみた【Windowsサーバー構成例】

目次

はじめに:AIサービス導入における課題と解決策

AIを業務で活用しようと思ったとき、「クラウドサービスを利用すればすぐに使える」という手軽さは魅力です。しかし、その裏にはいくつかの課題があります。

よくある課題

  • クラウドAIの月額課金や従量課金によるランニングコスト増大
  • 社内データや画像を扱う場合、機密情報が外部に送信されるリスク
  • オフライン環境や閉域網ではクラウドAIが利用できない制約

これらの課題を解消するには、自社サーバー上でAIを稼働(オンプレミス運用)する構成が効果的です。

オンプレミスで動かすことで得られるメリット

  • クラウド課金なし、定額のハードウェア運用コストでAIを運用可能
  • 社内ネットワーク内で処理が完結するため、セキュリティリスクを最小化
  • 自由にモデルやサーバー設定をカスタマイズできる柔軟性

本記事では、そんなオンプレAIの代表例である FastAPI(Docker)上のAIエンジンを、IISでSSL終端して安全に外部公開する手順をご紹介します。

構成イメージ

[Internet]
   ↓ HTTPS (443)
[IIS サーバー] ※SSL終端
   ↓ HTTP (localhost:8000)
[Docker上のFastAPI] ※AI APIなど

Step1. SSL証明書をIISにインストール

Let’s Encrypt企業認証SSL(RapidSSL、グローバルサインなど)で取得した証明書(.pfx)を以下の手順でIISにインポートします。

  • IISマネージャーを開く
  • 左のサーバー名を選択し、「サーバー証明書」をクリック
  • 右ペイン「証明書のインポート」からpfxファイルをインポート

Step2. HTTPSバインド設定

  • 対象のWebサイトを選択 → 「バインドの編集」
  • ポート「443」を追加し、証明書を選択
  • 「SNIを有効にする」にチェック(必要に応じて)

Step3. リバースプロキシ構成のためのモジュール追加

IISでFastAPIに中継するには以下2つのモジュールを追加します:

▶ Application Request Routing (ARR)
https://www.iis.net/downloads/microsoft/application-request-routing

インストール後: 「Application Request Routingキャッシュ」→「サーバープロキシ設定」→「プロキシを有効にする」にチェック

▶ URL Rewrite
https://www.iis.net/downloads/microsoft/url-rewrite

Step4. URL RewriteでFastAPIへ転送

  • 「URL Rewrite」を開く → 「ルールの追加」→「空白のルール」
  • ルール名を入力(例:ReverseProxyToFastAPI)
  • 一致条件:
    入力:{REQUEST_URI} / 一致:.*
  • アクションの種類:書き換え(Rewrite)
    URL:http://localhost:8000/{R:1}
    「処理を停止」にチェック

Step5. FastAPIサーバー(Docker)を起動

今回は、事前に構築・調整された LLaVA(Language-and-Vision Assistant)モデル を組み込んだ FastAPI サーバーを Docker コンテナとして起動します。

docker run -d \
  --name llava-api \
  -p 8000:8000 \
  your-llava-image-name

FastAPI側は 0.0.0.0:8000 で起動してください。IISから http://localhost:8000 に接続できる状態にしておきます。

Step6. WordPressからの連携例

fetch('/api/llava', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ prompt: "こんにちは" })
})
.then(res => res.json())
.then(data => {
  console.log(data);
});

https://yourdomain.com/api/llava にアクセスすることで、IIS経由でFastAPIサーバーにリクエストを転送できます。

セキュリティ上の注意点

  • FastAPIを localhost 限定でバインドし、外部アクセス不可にする
  • 必要に応じて、IISでベーシック認証・IP制限を導入
  • WordPressとのAPI連携時にはCSRFや認証対策を導入(例:nonce)

まとめ

IISでSSL終端し、FastAPIをDocker上で運用することで、セキュリティと柔軟性を両立したオンプレAIサーバー構築が手軽に実現できます。フロントエンドとの連携もスムーズで、社内AI活用を本格化させたい方におすすめの構成です。

ご相談・導入サポートはこちら

本記事で紹介した構成を導入したい、または自社環境に合わせたカスタマイズをご希望の方は、以下よりお気軽にご相談ください。

目次