はじめに: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活用を本格化させたい方におすすめの構成です。